xingyue* 发表于 2018-11-12 09:48:41

你了解真正的变量宏吗?(一)

因为种种原因,我已经一年没有来这个论坛了;因为种种原因,我曾经不愿意分享自己的东西了;还好有你们,我有朋友!谢谢你们的支持与帮助。在这里感谢你们!感觉在茫茫人海中的相识,感谢在茫茫人海中遇到志同道合的你们!感谢宏门中有你!----写在前面的废话你是否有过这些疑惑?宏是什么?什么又是PM变量宏?变量宏能干什么?为什么要学变量宏?我想学变量宏,但是我英文基础差,能不能学变量宏?能不能学会变量宏?你带着这些问题,我带着你走进变量宏。首先,我们了解宏这个概念。计算机科学里的宏(Macro),是一种批量处理的称谓。在很多软件里都有这个功能。那么,我们PM的宏是什么?当我们操作PM软件的时候,总会产生一系列与之对应的字符串,我们把这个字符串输入到命令视窗后,回车,又可以实现我们的这些操作。这个字符串就是我们常说的宏命令。举一个打开毛坯编辑窗口的例子。当你打开这个窗口的时候,命令视窗会显示对应的字符串:FORM BLOCK(图一中的红色框)。当你接受设置或者取消的时候,会显示:BLOCK ACCEPT(图一中的天蓝色框)。这些字符串(后文统称:宏命令)也可以直接输入到命令视窗里,然后回车,就会打开或者关闭毛坯编辑窗口。

通过这个例子我们对PM宏有一个简单的概念,那么什么又是变量宏?和宏有什么区别?

执行顺序预判性批量性简洁性
普通宏由上而下不能不能差
变量宏多条分支能能优

(1)   执行顺序。普通宏的执行顺序是由上而下的,就像高空中的水滴。而变量宏像自来水,一条供水渠道,多条分支,多家使用。
(2)   预判性。我举一个新建刀具的例子,例子中的D10刀具已经存在,但是我们的宏依旧要创建一把这个名称的刀具。CREATE TOOL ‘D10’ ENDMILLEDIT TOOL ; DIAMETER "10"
运行一下,跳出一个错误窗口。这是普通宏的写法。下面我们看一下变量宏的写法:if not entity_exists('Tool','D10') {CREATETOOL ‘D10’ ENDMILLEDITTOOL ; DIAMETER "10"}这个宏首先判断D10的刀具是否存在,不存在就创建这把刀具;存在不进行任何处理。当然,你也可以做一些别的处理,主要看个人需求。=======================================================================                                 帖子太长,只能分两个帖子=======================================================================------------------------------------后记---------------------------------------------------当你因为一个问题,苦苦思考而不得其解的时候;当你因为一个错误,苦苦寻觅而不得其咎的时候;当你因为一个想法,苦苦探索而不得其终的时候;你是否会仰天长叹,倍感我道孤独?那你是否知道有一个名叫:宏门的群,它会伴随你前进,成长!你还在等待你还在犹豫你还在苦苦思考,苦苦寻觅,苦苦探索你还在浪费时间你还在浪费生命!!!……在物欲横流,人人都渴望快速成长,快速致富的年代,匠心代表的不仅仅是一种专注,还有一种精神和态度。人们之所以关注匠心,大抵是因为人人都尊重和崇拜这样的生活与工作态度,但轮到自己,却怎么也做不到。加入宏门,我们立志做这污浊俗世中的一股清流,不辜负,对技术的执着。


wtukl 发表于 2019-6-8 11:13:44

因为种种原因,我已经一年没有来这个论坛了; 因为种种原因,我曾经不愿意分享自己的东西了; 还好有你们,我有朋友!谢谢你们的支持与帮助。在这里感谢你们!感觉在茫茫人海中的相识,感谢在茫茫人海中遇到志同道合的你们!感谢宏门中有你! ----写在前面的废话 ========================================================= 上接 你了解真正的变量宏吗?(一) http://www.ugsnx.com/forum.php?mod=viewthread&tid=216256&fromuid=2759808 =========================================================== (3)   批量性。普通宏不能够做一些重复的动作。普通宏: RENAME TOOLPATH “1” “1-D10” RENAME TOOLPATH “2” “2-D10R0.5” RENAME TOOLPATH “3” “3-B10” …… 变量宏: INT i=1 FOREACH Tp IN folder('TOOLPATH') { stringNewName=string(i)+"-"+$tp.tool.name RENAME TOOLPATH $Tp.name $NewName $i=i+1 }   两个宏对比下,高下立判。普通宏写的不能够通用,每次使用的时候,软件里的刀路,名称必须严格要求,顺序不能乱,名称不能错,即使这样,当刀路很多的时候,这个宏几乎没有了作用。这一点,你可以想象的到。而变量宏通过FOREACH,遍历了所有的刀路,然后来命名,它对你软件里原有的刀路名称,刀路顺序没有任何要求。是不是很方便? 变量宏的这个功能,让你可以实现批量命令,批量碰撞或者过切计算,批量仿真等。(4)   简洁性。通过批量性能的对比,你也可以也应该能感受到变量宏语句的简介性。变量宏,提供WHILE,DO-WHILE,SWITCH,FOREACH等语句,来处理重复的批量的操作。也提供了一些磁盘文件操作的函数或者命令,可以读写,删除,判断。    说了那么多,变量宏可以干什么呢?    除了前文中说的批量命令,批量碰撞或者过切计算,批量仿真外,还可以实现直身面边界的制作,插角功能的实现。批量输入模型,分离模型,批量计算,批量设置各种刀路参数等。也可以结合用户参数,模型颜色,层和组合等来实现参数化编程。    既然PM变量宏这么强大,我们有什么理由不去了解下?不去学习下呢?

←¢塰涯の誌 发表于 2018-11-14 23:05:14

前来学习学习

845636194 发表于 2018-11-12 14:29:56

前来学习学习.

peynan 发表于 2018-11-15 08:06:29

高手!感謝有你.
你消失滿久了

¥¥ 发表于 2018-12-8 10:12:56

高手!感謝有你. 你消失滿久了

luyijie00 发表于 2019-5-31 12:26:54

PM也用了多年只知有外挂,不知变量宏惭愧惭愧

清風じ☆ve‰ 发表于 2019-6-3 23:38:37

33333333333

大榕樹之子 发表于 2019-6-16 13:24:57

授之以渔

gjy68826882 发表于 2021-2-15 23:41:28

感谢,你给我打开一扇崭新的窗口,让我看到了从没看到的风景
页: [1] 2
查看完整版本: 你了解真正的变量宏吗?(一)