帮助块插入宏wi
长期潜伏者,第一次海报。我最近一直在断断续续地研究这个宏,但我似乎做不好。我在DIESEL解释器调用变量的方式上遇到了一些困难,并且一直在尝试使用嵌套使代码工作。
^C^C^C_setvar;userr1;$m=$(if,$(=,$(getvar,cvport),1),1/96,1);
_setvar;userr2;$(if,$(=,$(getvar,cvport),1),0.125,$(*,0.125,$(getvar,dimscale)));
-INSERT;2x2_r_n;\"$m=$(getvar,userr1)";;\\
-attedit;;;;;L;A;0;H;""$m=$(getvar,userr2)"";;
第一行取消,然后将变量userr1在图纸空间中设置为1/96,在模型空间中设置为1。
第二行将变量userr2在图纸空间中设置为0.125,在绘图空间中设置为dimscale*0.125。
第三行插入我的块(一个2'x2'凹进的普通功率灯,用描述符属性按比例绘制),然后将其缩放到userr1定义的值。
最后一行编辑插入块的属性,使其角度为0,高度由变量userr2定义。
我从中了解到,DIESEL并没有按照我想要的方式进行评估。。。
我嵌套了最后的变量调用(userr1一次;userr2两次),目的是在评估之前将新值传递给它们,但它工作不太正常,我有点沮丧。
目前,当我使用宏时,如果我没有在使用之间更改cvport或dimscale,它在第二次调用时会正常工作。我认为这告诉我,尽管我尝试嵌套,但在块插入和属性编辑之前,条件语句仍然没有正确更新变量。
我非常感谢在使其正常运行和更好地理解DIESEL评估逻辑方面提供的任何帮助(我在这里找到了很好的材料){http://www.crlf.de/Dokumente/Diesel/Diesel1.html},但我的理解显然还有差距)。 嗯,我自己想出来的。工作代码如下:
^C^C^C_setvar;userr1;$m=$(if,$(=,$(getvar,cvport),1),1/96,1);
_setvar;userr2;$(if,$(=,$(getvar,cvport),1),0.125,$(*,0.125,$(getvar,dimscale)));
-INSERT;2x2_r_n;\"$m=$(getvar,userr1)";;\\
-attedit;;;;;L;A;0;H;"$m=$(getvar,userr2)";;
干得好,克里斯!多棒的宏。我花了很长时间才发现这两个版本之间有什么不同!
我向你致敬,因为你解决了这个问题。我从未能够在一个宏中定义和返回用户变量。在我看来,在宏完成之前,它不会删除记录,从而使getvar无效。我甚至尝试了setvar,然后为getvar调用了一个脚本,但没有用。
但不知怎么的,你似乎工作得很好。我要再检查一遍。还感谢Diesel链接。 我很高兴我的解决方案对其他人有帮助。解决这个问题令人恼火。
页:
[1]