首页 > 编程学习 > Polyworks脚本开发学习笔记(八)-组合运用命令批量改名

Polyworks脚本开发学习笔记(八)-组合运用命令批量改名

需求解析

以下是使用包边比较点创建的一组包边点(即Gap点)和曲面点-包边点(即Flush点),这种命名方式不太常规,改为Gap和Flush
点会比较符合习惯,并且能够分开成组会更好。
所以总结为以下需求:

  1. 选中的组中比较点名称为曲面点 - 包边点的,替换为Flush,如将曲面点 - 包边点1改为Flush1
  2. 选中的组中比较点名称为包边点的,替换为Gap,如将包边点1改为Gap1
  3. Gap点组合为1组,Flush点组合为1组
    在这里插入图片描述
    比较点结构:
    在这里插入图片描述

需求解析及实现1 - 改名

根据需求可以理解,在获取比较点成组对象以后,对选择的点进行遍历,发现 曲面点 - 包边点的,替换为Flush;
选中的组中比较点名称为包边点的,替换为Gap。代码如下:

version "5.0"TREEVIEW OBJECT SELECT NONE
#选择对象组3
TREEVIEW OBJECT_GROUP SELECT ( "对象组 3", "On" )
#定义变量数组获取所有比较点名称
DECLARE vArrPts
TREEVIEW COMPARISON_POINT NAME SELECTED GET ( vArrPts )
#MACRO ECHO ( $vArrPts )#循环改名
DECLARE i 1
WHILE $i<= SIZE (vArrPts)DECLARE vStr $vArrPts[$i]DECLARE vNewNameMACRO ECHO ($vArrPts[$i])DECLARE vPos1DECLARE vPos2DECLARE vPtType1 "曲面点 - 包边点"DECLARE vPtType2 "包边点"#获取当前名称对应的索引号,获取不到则跳过本次循环DECLARE vPtIndTREEVIEW COMPARISON_POINT INDEX GET ($vStr,vPtInd)IF $vPtInd==0 CONTINUEENDIF#在名称中查找有没有"曲面点 - 包边点",有则返回位置vPos1大于0MACRO STRING FIND_FIRST ( $vStr,$vPtType1,,vPos1 )#在名称中查找有没有"曲面点",有则返回位置vPos2大于0MACRO STRING FIND_FIRST ( $vStr,$vPtType2,,vPos2 )IF $vPos1>0#"曲面点 - 包边点"替换为"Gap"并重命名MACRO STRING REPLACE ( $vStr,$vPtType1,"Flush",,,vNewName )TREEVIEW COMPARISON_POINT NAME($vPtInd,$vNewName)ELSEIF  $vPos2>0#"曲面点"替换为"Gap"并重命名MACRO STRING REPLACE ( $vStr,$vPtType2,"Gap",,,vNewName )TREEVIEW COMPARISON_POINT NAME($vPtInd,$vNewName)ENDIF++i
ENDWHILE

运行效果如下:
改名效果很好,可以重新分组了
在这里插入图片描述

需求解析及实现2 - 分组

再做一次循环,检查凡是名称中有"Gap"的就选择,没有的就不选,然后利用GROUP命令将选择的点组合成组,代码如下:

version "5.0"TREEVIEW OBJECT SELECT NONE
#选择对象组3
TREEVIEW OBJECT_GROUP SELECT ( "对象组 1", "On" )
#定义变量数组获取所有比较点名称
DECLARE vArrPts
TREEVIEW COMPARISON_POINT NAME SELECTED GET ( vArrPts )DECLARE i 1
WHILE $i<= SIZE (vArrPts)DECLARE vStr $vArrPts[$i]DECLARE vPos1DECLARE vPtType1 "Gap"#获取当前名称对应的索引号,获取不到则跳过本次循环DECLARE vPtIndTREEVIEW COMPARISON_POINT INDEX GET ($vStr,vPtInd)IF $vPtInd==0 CONTINUEENDIF#在名称中查找有没有"Gap",有则返回位置vPos1大于0MACRO STRING FIND_FIRST ( $vStr,$vPtType1,,vPos1 )IF $vPos1>0#含有"Gap"则选择TREEVIEW COMPARISON_POINT SELECT ($vPtInd,"On")ELSE#否则取消选择TREEVIEW COMPARISON_POINT SELECT ($vPtInd,"Off")ENDIF++i
ENDWHILE
TREEVIEW COMPARISON_POINT GROUP ( )

圆满完成任务
在这里插入图片描述


本文链接:https://www.ngui.cc/zz/1918287.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000