Journaling 技术在U G二次开发中的运用

2014-12-25 02:16李大琳吉林大学珠海学院广东519041
山东工业技术 2014年8期
关键词:二次开发初学者起点

李大琳(吉林大学珠海学院广东519041)

孙 岩(江城电器安装有限公司310000)

Unigraphics(UG)软件是一套以机械产品为主的CAD/CAE/CAM一体化软件,是通用的设计与制造平台,专业针对性较差。那么根据具体需求,进行相应的二次开发十分必要。

UG的二次开发接口是多语言支持、全开放的编程接口,虽然这让用户能够像UG的研发人员一样开发自己的UG功能,但是问题是:接口太多、太复杂了。如何迅速找到可用的开发接口和正确的语法逻辑完成开发,又成为UG二次开发者的新难题。

好在UG提供了Journaling技术,用户将自己的操作记录并生成代码,然后在此基础上修改代码来作为自己的二次开发代码使用。

一、关于Journaling技术

Journaling是一种软件自动化技术,具有该技术的软件中最著名的就是Microsoft的宏(Macro)。用户在使用软件时避免重复相同的动作,把常用的动作写成宏,工作时,利用宏来自动运行,以实现自动化。

Journaling的实现也是通过录制,把前次的建模等相关操作记录成日志文件,下次再使用时,直接执行该文件即可完成建模。

然而UG的使用者几乎不会每次都建相同的模型。而且UG的特点是参数化建模,如果只是按照“录制->重放”的思路来使用Journaling,就无法参数化。

因此,Journaling的一般思路是“录制->生成代码文件->修改代码文件->生成单独的DLL文件和UG命令”。这样Journaling代码就成为UG菜单上一个独立的、参数化的命令。

二、Journaling在二次开发中的意义

笔者认为,Journaling的意义在于为初学者和虽然建模经验丰富、但是编程经验不足的人提供了示范作用和快速获得代码的途径。例如下面这段代码:

Dim point1 As Point(1)

p o i n t 1 = b l o c k F e a t u r e B u i l d e r 1.O r i g i n P o i n t(2)

b l o c k F e a t u r e B u i l d e r 1.O r i g i n P o i n t = p o i n t 1(3)

Dim originPoint1 As Point3d = New Point3d(0.0, 0.0, 0.0)(4)

blockFeatureBuilder1.SetOriginAndLengths(originPoint1, "100", "100","200")(5)

blockFeatureBuilder1.SetBooleanOperationAndTarget(Features.Feature.BooleanType.Create, nullBody) (6)

这是绘制一条直线,直线的起点是(0,0,0),终点是(100,100,200),代码首先用点point1来获得系统当前初始点。然后用点originPoint1作为直线的起点,最后通过方法SetOriginAndLengths()设置直线的起点和长度。这段代码中的Point3d和blockFeatureBuilder数据类型都是NX Open API对象模型中定义的变量。

三、Journaling技术的关键点:

对于使用者,Journaling并不是什么复杂的操作。把复杂的问题简单化是一款优秀软件最基本的特征。但是Journaling生成的代码中有大量的冗余代码,上例中的代码行(1)、(2)、(3)就是冗余的。

这三句获得了当前系统原点位置,但是绘制一条直线,只要知道起点和终点或者起点和长度就足够了。因此,做好Journaling代码优化,建立高质量代码就是Journaling二次开发的关键。

要实现这个目标是一个长期的过程,初学者可以分两个阶段实现:

1.正确性,可以使用UG的“日志回放”功能作为调试器。调试通过后,再进行DLL文件开发。实践证明这是一个高效的方法。

2.提高质量,这是一个需要长时间磨练的过程。国内当前UG二次开发主要还是沿用UG Open接口,是C语言开发。很难找到很好的关于Journaling技术的开发资料。为大家推荐下面这个网站:

http://www.nxjournaling.com/。这是一个Journaling技术交流论坛。

基于上述,前面的代码可以优化成以下形式:

Dim originPoint1 As Point3d = New Point3d(-0.0, -0.0, -0.0)

blockFeatureBuilder1.SetOriginAndLengths(originPoint1, 100, 100, 100)

总结:

Journaling是UG提供的一种自动生成代码的软件自动化技术。是开发者学习UG二次开发的最好教材,然而,国内深入讨论Journaling技术的资料不多。希望本文能为UG开发者抛砖引玉,重视起Journaling的代码示范作用。

猜你喜欢
二次开发初学者起点
轮滑冰球初学者运动体适能与专项技能发展的相关性研究
初学者,赶紧看过来
六月·起点
浅谈CAD软件二次开发的方法及工具
关于平面设计软件二次开发的分析与探讨
弄清楚“起点”前面有多少
例谈课本习题的“二次开发”
疯狂迷宫大作战
给会计初学者的几点实用性建议
新年的起点