问题描述:
在使用线框中的【提取中心线】命令时,外来图形的面别出来是分开的面,提取的中心线是重复曲线,且是分段的,不能直接作为扫描路径;
目前3D软件不具备消除重线功能,可以通过脚本进行实现。
步骤指引:
- 输入需要转换的外来模型,例如【Step】格式,输入时的【配置】中设置取消【合并圆柱面】,如下图:
- 通过【打开】命令,打开附件中脚本:【提取中心线列表.mac】;
- 根据左下角提示“按住【Shift】链选曲面”,进行曲面的选择,如下图:
- 生成中心曲线列表,如图示:
- ## 特别说明:由于3D中不含有消除重线命令,删除重线的方法是,按照曲线生成的序号进行删除,故需要用【Shift】进行链选,即保证选择曲面段的顺序。
附脚本代码如下:MACRO main
# @MAPKEY:u
# @NAME:中心线提取
# @VERSION:28
# @OPTION:1
# @DESCRIPTION:
# @ORDER:1
# @STARTLINES:
#####
#选择连续曲面
[vxGetEntity,"按住SHIFT,连选曲面,点击中键确认","/face/",Entlist_f,EntCnt_f]
[Print,Entlist_f]
[vxSend,"!CdExtractCenln"]
[vxInitCmd,CdExtractCenln,<3,0>]
WHILE(EntCnt_f>0)
EntCnt_f=EntCnt_f-1
[vxSendEnt,Entlist_f[EntCnt_f]]
ENDWHILE
[vxSendEvtOpt,-1,0,1,2] # Ok
#####
#选择上一个命令生成的曲线
[vxFindNew,-1,lines_1,count_1 ]
##### 以下实现删除重复曲线
item=0
[vxSend,"!CdPartDel"]
[vxSendEvtOpt,1,-1,1,2] # 实体
WHILE (item < count_1)
[vxSendEnt,lines_1[item]]
item = item + 2
ENDWHILE
[vxSendEvtOpt,-1,0,1,2] # Ok##### 以下生成曲线列表
[vxSend,"!CdPlistCrv"]
[vxInitCmd,CdPlistCrv,<4,0>]
[vxFormEvtOpt,"CdPlistCrv",4,0,1,2] #
item=0
WHILE (item < count_1)
[vxSendEnt,lines_1[item]]
item = item + 1
ENDWHILE
[vxSendEvtOpt,-1,0,1,2] # OkENDMACRO
该附件为对应脚本:提取中心线列表.mac
英文空间链接 |
---|
★中望3D针对外来模型如何快速提取中心线并删除重线:https://confluence.zwcad.com/pages/viewpage.action?pageId=161153200