一种基于CREO的三维模型着色系统的设计方法与流程

文档序号:23338870发布日期:2020-12-18 16:32阅读:871来源:国知局
一种基于CREO的三维模型着色系统的设计方法与流程

本发明属于民营企业软件应用二次开发的技术领域,涉及一种基于creo的三维模型着色系统的设计方法。



背景技术:

目前大多数民营企业大都采用creo、autocad、catia、ug等通用cad软件建立三维模型,随着计算机技术的发展,cad技术已经具备从最初处理简单模型到处理复杂模型的能力,但是一个复杂的装配体往往由成百上千个零部件装配而成,每个零件又包含无数个细节特征,会引起技术人员修改、阅读模型的不适。所以后期技术人员建立模型对模型进行着色区分,主要两种方式:第一种主要在建模零件模型时就给模型上色,为以后装配体改辨识度;第二种主要是在装配体装配完成后,对辨识度低的零件进行单独着色区别。主要弊端主要表现在:

i、creo自带的外观渲染库对模型进行着色操作复杂,而且自带外观库中备选颜色可选择性少;

ii、creo自带外观库中颜色无法做到rgb精确无偏差设置;

iii、当三维模型包含零件成百上千时,需要设计人员大量重复操作,浪费时间,严重影响工作效率。



技术实现要素:

本发明为解决上述现有技术中存在的不足之处,提出一种基于creo的三维模型着色系统的设计方法,以期能满足多选择颜色种类、自定义选择着色和自动随机着色,实现三维模型的快速、高效、准确的着色,从而减少设计人员不必要的重复操作,提高建模效率和质量,并节约设计时间。

为了达到上述目的,本发明所采用的技术方案为:

本发明一种基于creo软件的三维模型着色系统的设计方法的特点是按如下步骤进行:

步骤1:设计零件模型的自定义着色模块的功能;

步骤1.1、使用单选按钮控件对常用颜色进行编序;

步骤1.2、对当前零件进行任意颜色rgb属性着色;

步骤2、设计装配体模型的自动随机着色模块的功能;

步骤2.1、通过函数promdltypeget()函数获取装配体模型的类型为pro_mdl_assembly,表明当前装配体模型为一级装配体;

步骤2.2、通过prosolidfeatvisit()函数对装配体模型进行特征遍历,得到特征总数量;

步骤2.3、根据所述特征总数量,利用for循环对每个装配体特征进行访问;

步骤2.4、在访问过程中对每一个元件特征进行类型判断,若当前元件特征的类型为零件,则进行步骤2.5;若当前元件特征的类型为装配体,则进行步骤2.2;

步骤2.5、通过promdltomodelitem()函数将步骤2.4中获取的零件promdl句柄转换为promodelitem句柄;

步骤2.6、通过prosurfaceappearancepropsget()函数获取相应零件的表面属性proprop1;并根据表面属性proprop1判断相应零件的proprop1.color_rgb属性值是否为空,若为空,则执行步骤2.7;否则返回步骤2.4;

步骤2.7、过rand()函数产生0.0~1.0之间的随机数color[v];

步骤2.8、根据表面属性proprop1,新建prosurfaceappearanceprops结构体proprop,包括:将结构体中的proprop.ambient环境对象设置为0.5、将结构体中的proprop.diffuse扩散对象设置为0.5、将结构体中的proprop.highlite高亮对象设置为0.5、将结构体中的proprop.shininess亮度对象设置为0.5、将结构体中的proprop.transparency透明度对象设置为0.0、将结构体中的=proprop.color_rgbrgb对象设置为所用的颜色对应的rgb的值、将结构体中的proprop.highlight_color高亮颜色对象设置为{0,0,1};

步骤2.9、通过prosurfaceappearancepropsset()函数将零件表面属性参数proprop1重新添加;

步骤2.10、通过prosolidregenerate()函数重新生成着色后的零件模型;

步骤3、设计清除模型全部外观模块的功能;

步骤3.1、获取轨迹文件中相对应的宏命令语句;

步骤3.2、通过promacroload()函数调用宏命令。

本发明所述的三维模型的着色系统的设计方法的特点也在于,所述步骤1.1是如下过程进行:

步骤1.1.1、对常用颜色和调色板分别设置相应的单选按钮控件;

步骤1.1.2、设定所有单选按钮控件的tab顺序;

步骤1.1.3、将第一个单选按钮控件的属性中的group属性设置为true,其余单选按钮控件的属性中的group属性设置为false;从而得到分为一组的单选按钮控件;

步骤1.1.4、将group属性为true的单选按钮控件关联名称为m_danxuan1的变量;

步骤1.1.5、若变量m_danxuan1的值为“-1”,则表示未选中相应组的单选按钮控件;若变量m_danxuan1的值为“0”,则表示选中相应组的单选按钮控件;

步骤1.1.6、调用对话框构造函数获取变量m_nradio1的值,若所述变量m_nradio1的值为“-1”;则表示未选中group属性为true的单选按钮控件;若所述变量m_nradio1的值为“0”;则表示选中group属性为true的单选按钮控件并作为默认按钮;

步骤1.1.7、利用updatedata()函数将变量m_danxuan1的值更新为每个单选按钮控件的状态值,从而选中各个单选按钮控件。

所述步骤1.2是如下过程进行:

步骤1.2.1、判断所用的颜色是否属于常用颜色,若是,则选取相应颜色的单选按钮控件,否则,调用调色板所对应的单选按钮控件,

步骤1.2.2、通过proselect()函数选择需要着色的零件;再通过proselectionmodelitemget()函数获取当前选择零件的属性promodelitem;

步骤1.2.3、通过prosurfaceappearancepropsget()函数获取相应零件的表面属性proprop1;

步骤1.2.4、参照表面属性proprop1,新建prosurfaceappearanceprops结构体proprop,包括:将结构体中的proprop.ambient环境对象设置为0.5、将结构体中的proprop.diffuse扩散对象设置为0.5、将结构体中的proprop.highlite高亮对象设置为0.5、将结构体中的proprop.shininess亮度对象设置为0.5、将结构体中的proprop.transparency透明度对象设置为0.0、将结构体中的=proprop.color_rgbrgb对象设置为所用的颜色对应的rgb的值、将结构体中的proprop.highlight_color高亮颜色对象设置为{0,0,1};

步骤1.2.5、通过prosurfaceappearancepropsset()函数将零件表面属性proprop1设置为修改后;

步骤1.2.6、通过prosolidregenerate()函数重新生成着色后的零件。

所述步骤2.2是如下过程进行:

步骤2.2.1、设置特征遍历函数prosolidfeatvisit()的访问函数featureasmvisitacfn1()的功能,包括:

通过prosolidfailedfeatslist()函数访问装配体模型中生成失败的特征;

通过profeatureisincomplete()函数访问不完整的特征;

通过profeaturestatusget()函数访问未激活或者被隐含的特征;

通过profeaturevisibilityget()函数访问可见的特征;

步骤2.2.2、设置特征遍历函数prosolidfeatvisit()的过滤函数featfilteraction()的功能,包括:

通过profeaturetypeget()函数设置允许访问可见特征、不允许访问基准面特征、不允许访问坐标系特征、运行访问倒角、孔、拉伸的常规特征。

与已有技术相比,本发明的有益效果为:

1、本发明基于creo软件平台,利用toolkit工具包以及mfc可视化界面对三维模型的表面外观属性进行了自定义,解决了模型外观渲染操作复杂、外观渲染效率低下、外观渲染选择少、不可自定义外观渲染的颜色、不可精确外观渲染的颜色等问题,避免了技术人员重复操作,并给出相关算法和处理方法,显著提升了铸造三维零件模型的处理效率,打破了原有功能的使用局限,具有较好的应用效果。

2、本发明可调用系统调色板,实现了颜色多样选择、自定义设置,操作简单,大大增加了操作人员多重选择性,提高了模型可视化辨识度。

3、本发明提出了一种随机数分配rgb属性值得设计方法,该方法能产生0.0~1.0之间包含所有颜色rgb属性的数值,真正做到对装配体模型自动随机外观渲染,而且随机着色后的装配体模型还可以通过零件外观渲染模块进行局部零件表面颜色属性修改,从而实现了三维装配体模型一键自动随机着色功能,提高了工作效率。

4、本发明将零件外观渲染和装配体外观渲染分开,零件可进行多种外观颜色选择,装配体外观渲染自动随机着色,提高了建模效率,增强了实用价值。

附图说明

图1为本发明设计方法设计结构图;

图2为本发明三维模型着色设计方法结构图;

图3为本发明调色板模块操作示意图;

图4为本发明radiobutton控件布局过程图;

图5为本发明零件自定义着色逻辑实现图;

图6为本发明装配体自动随机着色逻辑实现图。

具体实施方式

为了更好地理解本发明的技术方案,以下通过附图和具体实施例作进一步说明。

本实施例中,三维模型着色系统的设计方法是基于creo软件平台,利用toolkit工具包以及mfc可视化界面对三维模型着色系统进行了设计,如图1所示。

依照本发明方法对三维模型快速着色,将零件外观渲染和装配体外观渲染分开:三维零件模型具备多种外观颜色进行着色,三维装配体模型自动随机着色,提高了建模效率,增强了实用价值,设计方法结构图如图2所示,

本实施例中,一种基于creo软件的三维模型着色系统的设计方法是按如下步骤进行:

步骤1:设计零件模型的自定义着色模块的功能,首先用户根据模型所需,当需要着色的模型是零件模型时,如果需要的颜色在常用八种颜色中直接使用相应的单选按钮,否则使用调色板单选按钮,进行选取或者自定义所需颜色,操作示意图如图3所示。

步骤1.1、使用单选按钮控件对常用八种颜色和调色板进行编序,如图4所示,是按照如下步骤进行的:

步骤1.1.1、对常用八种颜色:黑色、灰色、红色、绿色、黄色、墨绿、紫色、蓝色和调色板分别设置相应的单选按钮控件;

步骤1.1.2、通过工具栏“格式”—>“tab键顺序”选项(或者按键ctrl+d)修改显示的所有单选按钮的默认顺序,从而设定所有单选按钮控件想要的tab顺序;

步骤1.1.3、将步骤1.1.2中设置的第一个黑色单选按钮控件的属性中的group属性设置为true,其余7个常用颜色和调色板单选按钮控件的属性中的group属性设置为false;从而得到分为一组的单选按钮控件;

步骤1.1.4、将group属性为true的黑色单选按钮控件关联名称为m_danxuan1的变量;

步骤1.1.5、若变量m_danxuan1的值为“-1”,则表示未选中相应组的单选按钮控件;若变量m_danxuan1的值为“0”,则表示选中相应组的单选按钮控件;

步骤1.1.6、调用对话框构造函数获取变量m_nradio1的值,若变量m_nradio1的值为“-1”;则表示未选中group属性为true的单选按钮控件;若变量m_nradio1的值为“0”;则表示选中group属性为true的单选按钮控件并作为默认按钮;

步骤1.1.7、利用updatedata()函数将变量m_danxuan1的值更新为每个单选按钮控件的状态值,从而选中各个单选按钮控件。

步骤1.2、使用常用八种颜色或者调色板对当前零件进行任意颜色rgb属性着色;也可以按住电脑ctrl键进行零件多选着色,如图5所示,是按照如下步骤进行的;

步骤1.2.1、判断所用的颜色是否属于常用颜色,若是,则选取相应颜色的单选按钮控件,否则,调用调色板所对应的单选按钮控件,

步骤1.2.2、通过proselect()函数选择需要着色的零件;再通过proselectionmodelitemget()函数获取当前选择零件的属性promodelitem;

步骤1.2.3、通过prosurfaceappearancepropsget()函数获取相应零件的表面属性proprop1;

步骤1.2.4、参照表面属性proprop1,新建prosurfaceappearanceprops结构体proprop,包括:将结构体中的proprop.ambient环境对象设置为0.5、将结构体中的proprop.diffuse扩散对象设置为0.5、将结构体中的proprop.highlite高亮对象设置为0.5、将结构体中的proprop.shininess亮度对象设置为0.5、将结构体中的proprop.transparency透明度对象设置为0.0、将结构体中的=proprop.color_rgbrgb对象设置为所用的颜色对应的rgb的值、将结构体中的proprop.highlight_color高亮颜色对象设置为{0,0,1};

步骤1.2.5、通过prosurfaceappearancepropsset()函数将零件表面属性proprop1设置为修改后;

步骤1.2.6、通过prosolidregenerate()函数重新生成着色后的零件。

步骤2、设计装配体模型的自动随机着色模块的功能,是可以对装配体模型下元件无论是零件还是子装配体都可以进行随机着色、相同零件相同色、不同零件不同色,如图6所示,是按照如下步骤进行的;

步骤2.1、通过函数promdltypeget()函数获取装配体模型的类型为pro_mdl_assembly,表明当前装配体模型为一级装配体;

步骤2.2、通过prosolidfeatvisit()函数对装配体模型进行特征遍历,得到特征总数量;

步骤2.2.1、设置特征遍历函数prosolidfeatvisit()的访问函数featureasmvisitacfn1()的功能,包括:

通过prosolidfailedfeatslist()函数访问装配体模型中生成失败的特征;

通过profeatureisincomplete()函数访问不完整的特征;

通过profeaturestatusget()函数访问未激活或者被隐含的特征;

通过profeaturevisibilityget()函数访问可见的特征;

步骤2.2.2、设置特征遍历函数prosolidfeatvisit()的过滤函数featfilteraction()的功能,包括:

通过profeaturetypeget()函数设置允许访问可见特征、不允许访问基准面特征、不允许访问坐标系特征、运行访问倒角、孔、拉伸的常规特征。

步骤2.3、根据特征总数量,利用for循环对每个装配体特征进行访问;

步骤2.4、在访问过程中对每一个元件特征进行类型判断,若当前元件特征的类型为零件,则进行步骤2.5;若当前元件特征的类型为装配体,则进行步骤2.2;

步骤2.5、通过promdltomodelitem()函数将步骤2.4中获取的零件promdl句柄转换为promodelitem句柄;

步骤2.6、通过prosurfaceappearancepropsget()函数获取相应零件的表面属性proprop1;并根据表面属性proprop1判断相应零件的proprop1.color_rgb属性值是否为空,若为空,则执行步骤2.7;否则返回步骤2.4;

步骤2.7、过rand()函数产生0.0~1.0之间的随机数color[v];

步骤2.8、根据表面属性proprop1,新建prosurfaceappearanceprops结构体proprop,包括:将结构体中的proprop.ambient环境对象设置为0.5、将结构体中的proprop.diffuse扩散对象设置为0.5、将结构体中的proprop.highlite高亮对象设置为0.5、将结构体中的proprop.shininess亮度对象设置为0.5、将结构体中的proprop.transparency透明度对象设置为0.0、将结构体中的=proprop.color_rgbrgb对象设置为所用的颜色对应的rgb的值、将结构体中的proprop.highlight_color高亮颜色对象设置为{0,0,1};

步骤2.9、通过prosurfaceappearancepropsset()函数将零件表面属性参数proprop1重新添加;

步骤2.10、通过prosolidregenerate()函数重新生成着色后的零件模型;

当通过三维装配体模型自动随机着色,如果对局部零件的表面颜色不符合要求,还可以通过零件自定义着色功能进行三维装配体模型局部零件表面颜色的重新着色,

步骤3、设计清除模型全部外观模块的功能;

步骤3.1、获取轨迹文件中相对应的宏命令语句;

步骤3.2、通过promacroload()函数调用宏命令。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1