首页/文章/ 详情

基于DeepSeek通用LLM的CATIA自然语言指令建模技术

2天前浏览17

摘要  

    本文通过在Python程序中调用DeepSeek通用模型的api,并解析AI对于自然语言指令的答案,从而调用CATIA二次开发函数实现对应软件动作,最终实现自然语言指令控制CATIA进行建模、参数修改等操作。  

    关键词:CATIA;人工智能;大语言模型;二次开发;Python


 

Abstract  

    This research explores the use of natural language instructions to control CATIA for tasks such as modeling and parameter modification. This is achieved by calling the DeepSeek general-purpose model's API within a Python program. The AI's response to the natural language instructions is then parsed, and corresponding CATIA automation functions are called to execute the desired software actions.  

    Keywords: CATIA; Artificial Intelligence; Large Language Model; Automation; Python


 

引言  

    CATIA作为一款被各行业广泛使用的计算机辅助三维工业设计软件,需要使用者花费较高的学习成本才能使用。如今:  

    随着人工智能及大预言模型的发展,计算机已经可以一定程度理解人类的自然语言;同时,基于CATIA Automation Objects的二次开发,软件操作者可以将一些常用的建模动作写成程序代码,运行对应代码即可实现对应的建模动作。  

    本研究尝试将上述两种技术进行结合,以实现软件操作者通过输入自然语言指令,即可控制CATIA软件完成对应的模型建立、参数更新等动作,从而达到在降低软件使用者操作熟练度要求的同时,提高建模的效率与准确性。


 

1 Python程序中调用大语言模型api,实现问答功能  

截止到2025/5,国内外已有很多成熟的大预言模型,如GPT-4oDeepseek等,且已经被广泛应用于各种应用行业及企业。通过网页端的对话形式,该技术可以一定程度代替传统搜索引擎解决用户的需求。但网页端的对话形式,对于与程序集成有很大的局限性。因此,本研究使用python语言调用deepseek在线模型的api,以实现在自己编写的程序中实现“问-答”功能。  

一段使用python语言调用deep seek api实现问答功能的程序代码如下:  

上述程序运行后,将返回deep seek LLM模型对于“Hello”这一用户指令作出的回答。


 

2 Python语言做基于PycatiaCATIA二次开发  

2.1 CATIA Automation Objects  

    为了满足不同行业、不同企业、不同标准下的用户对软件功能的需求,CATIA为用户提供了一套逻辑与关系都十分严谨的自动化对象,它们从CATIAApplication)向下分支。每个自动化对象(Automation Object,以下简称Object)都有各自的方法与属性。用户使用程序语言调用这些Object的属性与方法,即可控制CATIA软件进行部分操作的自动执行。  

2.2 二次开发的语言选择  

    CATIA软件的用户可以使用VBAPythonVB.NetC#等不同支持com接口的程序语言进行CATIA Automation二次开发。各语言仅在语法上有差异,对于自动化对象调用的属性和方法的原理是相通的。由于Python语言中包含丰富的第三方库,如Requests,可以实现用简单的语句发送请求。因此,本研究采用python语言作为程序语言。  

2.3 Pycatia  

    使用Python进行CATIA Automation二次开发时,我们可以通过纯com接口的方式,即使用win32com.Client.Dispatch(“Catia.Application”)的语句返回CATIA Application对象。但此种方式无法实现对象函数的自动补全。  

    因此,本研究中将安装pycatia库,通过在com对象外层封装class,来实现对象属性和方法的自动补全,以提高代码编写效率和准确率。  

2.4 建模函数库的编写  

    为了实现自然语言控制CATIA的目的,本研究中将编写几个示例功能函数,以实现简单的建模及修改参数动作。部分功能函数代码如下:


 

3 使用Python程序将大预言模型与pycatia二次开发结合  

    基于上述内容,程序已经可以分别实现与大语言模型的对话,以及控制CATIA软件执行建模动作。接下来,本研究将阐述如何用python将这上述两个功能进行结合。  

    图3.1中的流程图展示了程序运行的基本逻辑:

 

3.1 程序运行基本逻辑  

    将用户输入的指令,转换为合适的prompts,并通过api发送给LLMLLM对用户指令进行解析,提取用户意图可能要调用的函数功能,及函数对应的参数,并以json对象的格式返回。最终在程序中对response中的json对象进行解析,进而调用对应的函数,并传入从用户指令中提取到的参数,实现控制CATIA执行对应的建模动作。  

接下来,本研究将从程序的三个关键功能进行分别阐述。  

3.1 提示词的编写  

    为了让LLM针对用户指令给出期望的答案,用户需要输入足够清晰的prompts。因此,在给LLM进行身份设定时,我们需要给它一个可用的函数库。其中应包含函数名称、函数功能描述、输入参数、函数返回值等信息。为了使代码规范清晰、便于理解,本研究中将函数库以json的格式进行表达。以下为一个json对象,其中包含了“创建直线”,“创建圆”两个函数的函数名、功能描述、参数信息。  

 

    LLMapi需要用户输入的提示词为string类型,因此还需要一个函数,将上述json对象转换为纯文本格式。此功能可以通过自定义函数实现。  

    最终,本研究中,通过如下自定义函数,将用户输入的自然语言指令,整理为发送给LLM的提示词。  

 

3.2 Response的解析  

基于前文的代码,假设用户输入“画个边长为15正方形”这一指令,LLM经过思考,会理解用户的意图可以通过四根长度相同、首位相接、两两垂直的直线,并按规定格式返回一个如下的json对象,包含4create_line函数及对应参数。  

 

3.3 功能函数的调用  

得到上述Response后,程序的最后一步是解析这个json对象,并从中提取函数名及参数,进而调用对应的功能函数,并传入参数。  

解析json对象的代码如下。  

 

调用功能函数的代码如下。  


 

4 结束语  

    通过将上述代码进行整合,本研究已经可以实现使用自然语言指令来控制CATIA进行简单的建模操作。  

示例:  

    当用户输入指令“10个正方形。要求:1、这10个正方形同心。2、最里面的正方形边长为103、从内向外,正方形的边长递增,增幅为20”时,程序在CATIA中绘制出的图形如图4.1所示。

 

4.1 根据用户自然语言指令绘制的图形  

    对于手动建模,无论多复杂的模型,用户都是通过CATIA软件提供的几十个常用命令,通过不同的参数设置组合而成。后续如果将这些基础命令全部写成可以被机器调用的库函数,同时提供足够多的优质代码片段和对应模型,来支持训练用于CATIA建模的专用大模型,那么“通过自然语言输入产品定义描述,软件自动给出若干组3D模型方案”的工作方式,将对三维结构设计行业产生颠覆性的影响。

来源:CATIA那点事儿
ACT二次开发通用CATIApython控制人工智能
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-05-21
最近编辑:2天前
CATIA那点事儿
本科 CATIA小狼。微信公众号:CATIA那...
获赞 135粉丝 262文章 31课程 16
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈