QQ登录

只需一步,快速开始

快捷登录

登录 或者 注册 请先

UG爱好者

查看: 14472|回复: 18

[原创] 你了解真正的变量宏吗?(一)

[复制链接]

少尉

Rank: 5Rank: 5

29

主题

123

帖子

2097

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


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

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

(1)   执行顺序。普通宏的执行顺序是由上而下的,就像高空中的水滴。而变量宏像自来水,一条供水渠道,多条分支,多家使用。
(2)   预判性。我举一个新建刀具的例子,例子中的D10刀具已经存在,但是我们的宏依旧要创建一把这个名称的刀具。
CREATE TOOL ‘D10’ ENDMILL
EDIT TOOL ; DIAMETER "10"
2.png

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



评分

参与人数 1G币 +20 收起 理由
3D世界网-零 + 20 不错,支持你!

查看全部评分

版权声明  
本人声明此帖为本人原创帖,未经允许,不得转载!

有奖推广贴子: 

回复

使用道具 举报

上等兵

Rank: 1

0

主题

31

帖子

164

积分
发表于 2019-6-8 11:13:44 | 显示全部楼层
因为种种原因,我已经一年没有来这个论坛了; 因为种种原因,我曾经不愿意分享自己的东西了; 还好有你们,我有朋友!谢谢你们的支持与帮助。在这里感谢你们!感觉在茫茫人海中的相识,感谢在茫茫人海中遇到志同道合的你们!感谢宏门中有你! ----写在前面的废话 ========================================================= 上接 你了解真正的变量宏吗?(一) http://www.ugsnx.com/forum.php?m ... amp;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变量宏这么强大,我们有什么理由不去了解下?不去学习下呢?
回复 支持 1 反对 0

使用道具 举报

少尉

Rank: 5Rank: 5

0

主题

148

帖子

2362

积分
发表于 2018-11-14 23:05:14 | 显示全部楼层
前来学习学习
回复 支持 1 反对 0

使用道具 举报

六级士官

Rank: 4

1

主题

244

帖子

1244

积分
发表于 2018-11-12 14:29:56 | 显示全部楼层
前来学习学习.
回复 支持 反对

使用道具 举报

少校

Rank: 6Rank: 6

4

主题

113

帖子

7622

积分
发表于 2018-11-15 08:06:29 | 显示全部楼层
高手!感謝有你.
你消失滿久了
回复 支持 反对

使用道具 举报

五级士官

Rank: 4

0

主题

85

帖子

880

积分
发表于 2018-12-8 10:12:56 | 显示全部楼层
高手!感謝有你. 你消失滿久了
回复 支持 反对

使用道具 举报

上等兵

Rank: 1

0

主题

13

帖子

56

积分
发表于 2019-5-31 12:26:54 | 显示全部楼层
PM也用了多年只知有外挂,不知变量宏惭愧惭愧
回复 支持 反对

使用道具 举报

列兵

Rank: 1

0

主题

8

帖子

37

积分
发表于 2019-6-3 23:38:37 | 显示全部楼层
33333333333
回复 支持 反对

使用道具 举报

三级士官

Rank: 3Rank: 3

0

主题

9

帖子

520

积分
发表于 2021-2-15 23:41:28 | 显示全部楼层
感谢,你给我打开一扇崭新的窗口,让我看到了从没看到的风景
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

 
 
QQ:1359218528
工作时间:
9:00-17:00
 
微信公众号
手机APP
机械社区
微信小程序

手机版|UG爱好者论坛 ( 京ICP备10217105号-2 )    论坛管理员QQ:1359218528

本站信息均由会员发表,不代表本网站立场,如侵犯了您的权利请联系管理员,邮箱:1359218528@qq.com  

Powered by UG爱好者 X3.2  © 2001-2014 Comsenz Inc. GMT+8, 2024-11-5 22:04

返回顶部