问题描述: 

在使用线框中的【提取中心线】命令时,外来图形的面别出来是分开的面,提取的中心线是重复曲线,且是分段的,不能直接作为扫描路径;
目前3D软件不具备消除重线功能,可以通过脚本进行实现。

步骤指引:

  1. 输入需要转换的外来模型,例如【Step】格式,输入时的【配置】中设置取消【合并圆柱面】,如下图:
  2. 通过【打开】命令,打开附件中脚本:【提取中心线列表.mac】;
  3. 根据左下角提示“按住【Shift】链选曲面”,进行曲面的选择,如下图:
  4. 生成中心曲线列表,如图示:
  5. ## 特别说明:由于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] # Ok

    ENDMACRO




    该附件为对应脚本:提取中心线列表.mac

英文空间链接


★中望3D针对外来模型如何快速提取中心线并删除重线https://confluence.zwcad.com/pages/viewpage.action?pageId=161153200

  • No labels