找回密码
 注册
Simdroid-非首页
查看: 173|回复: 6

[HyperWorks Enterprise] 二次开发语句求助

[复制链接]
发表于 2013-12-12 13:54:07 | 显示全部楼层 |阅读模式 来自 北京
想实现一个功能,就是按一个按钮先删除多余的component再删除多余的property,最后再删除多余的materials。
实现的语句是
*EntityPreviewEmpty component 1
*deletemark component 1
*EntityPreviewUnused property 1
*deletemark property 1
*EntityPreviewUnused materials 1
*deletemark materials 1
但是如果没有没有component是空的,就不能执行下一个语句了,因此需要加入判断语句,但是怎么调都调不通
*EntityPreviewEmpty component 1
set comp_list [hm_getmark component 1]
if {{llength $comp_list}>0}
{[*deletemark component 1]}
*EntityPreviewUnused property 1
set prop_list [hm_getmark property 1]
if {{llength $prop_list}>0}
*deletemark property 1
*EntityPreviewUnused materials 1
set mat_list [hm_getmark materials 1]
if {{llength $mat_list}>0}
*deletemark materials 1
麻烦请高手帮忙解决一下!!
发表于 2013-12-13 16:34:43 | 显示全部楼层 来自 四川成都
Simdroid开发平台
调不通是什么意思?报错还是怎么的?
还有“*EntityPreviewEmpty component 1 ” 这句,如果本来没有空的component,这句无从选择component,本来就会提示components have not been selected;
if {条件} {
      命令
}
格式是这样的,你贴的命令也有错误;检查下吧!
回复 不支持

使用道具 举报

 楼主| 发表于 2013-12-15 10:07:04 | 显示全部楼层 来自 北京
*EntityDeleteEmpty component 1
*EntityDeleteUnused property 1
*EntityDeleteUnused materials 1
直接解决了以上的问题,避免了实用if语句,如果是空的同样会执行下一个语句
还有if语句中嵌套带*号的TCL modify command似乎是不可以的。所以报错了
if语句不写成
“if {条件} {
       命令
}”
而写成“if {条件} { 命令}”
也是可以执行的。

回复 不支持

使用道具 举报

发表于 2014-3-9 21:24:29 | 显示全部楼层 来自 福建厦门
用if语句也是可以的,只是你的语法写的有点小问题而已。
*EntityPreviewEmpty components 1
set comp_list [hm_getmark components 1]
if { [llength $comp_list] >0 } {
*deletemark components 1
}
写成这样的就可以了。

点评

正解.  发表于 2014-6-14 08:58
回复 不支持

使用道具 举报

发表于 2014-3-9 21:28:09 | 显示全部楼层 来自 福建厦门
之所以你之前说会提示没有空的components,无法进行下去。。是因为你的if语句无法判断条件是真还是假,所以总是进入 *deletemark components 1 ,但由于事实上没有空的components,因此这一句就无法执行下去了。
回复 不支持

使用道具 举报

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

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-26 23:57 , Processed in 0.037611 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表