guosheyang 发表于 2021-8-29 13:26:26

给大家共享个不一样的曲线交点打断代码

本帖最后由 guosheyang 于 2021-10-6 10:21 编辑

我们通常的曲线交点打断程序是breakall插件,该插件代码量太长了,而且还有bug,有时候对矩形不能打断完全; 本自定义命令利用cad自身的三维命令来实现打断相交曲线,而且速度也不慢,虽然也有缺陷,但多数情况下均可用,现作为一种不同的方法分享给大家。

;自定义命令 ygs_brk_int_cur
;命令功能:将相交线在交点处打断                                    
;适用曲线范围:样条线 多段线 直线 圆 椭圆 圆弧 平面三维多段线等均可
;注意事项:①框选要素时选框应将所有要打断的曲线都框住(不要用窗交)
;               ②曲线不能自相交                                       
;本函数应用缺陷:打断后会导致多段线在所有节点处被额外打断         
;                         圆、椭圆都会在其起点处被额外打断                  
(defun c:ygs_brk_int_cur(/ ss BLYZ GS I PT SJD SJD_PT SS2 UN_SURF X)
(setq blyz(getvar 'cmdecho))
(setvar "cmdecho" 0)
(princ"\n请框选线,注意:选框要大于线的范围")
(setq ss(ssget))
(vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
(setq gs(sslength ss) i 0)
(repeat gs
   (command "extrude" "MO" "SU" (ssname ss i)"" 2 )
   (vla-delete (vlax-ename->vla-object(ssname ss i)))
   (setq i(1+ i))
)
(command "union" (ssget "A"'((0 . "EXTRUDEDSURFACE"))) "" )
(setq un_surf(entlast)
       sjd_pt(cdr(last(ssnamex ss)))
       sjd nil
)
(mapcar'(lambda(x)(setq sjd(cons (car(cdr x))sjd)))sjd_pt)
(entmakex (append (list '(0 . "LWPOLYLINE")
         '(100 . "AcDbEntity")
         '(100 . "AcDbPolyline")
         '(62 . 0)
         (cons 90 (length sjd))
         (cons 70 1)
            )
         (mapcar '(lambda (pt) (cons 10 pt)) sjd)
         )
)
(command "convtosurface" (setq jx(entlast)) ""
          "_intersect" (entlast) un_surf ""
)
(vla-delete (vlax-ename->vla-object jx))
(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
(setvar "cmdecho" blyz)
)


guosheyang 发表于 2021-8-29 13:28:42

如果代码应用中有啥问题 请提出来   谢谢!

tigcat 发表于 2021-9-17 10:36:07

谢谢楼主分享

对往事说 发表于 2021-10-6 01:21:25

具体怎么使用,能做成一个lsp插件吗

guosheyang 发表于 2021-10-6 10:30:00

本帖最后由 guosheyang 于 2021-10-6 10:36 编辑

对往事说 发表于 2021-10-6 01:21
具体怎么使用,能做成一个lsp插件吗

将该文件拖入cad绘图区域,然后命令行输入命令名 YGS_BRK_INT_CUR即可

潇湘飞雨 发表于 2021-12-23 11:08:25

不能运行函数被取消

guosheyang 发表于 2021-12-24 10:12:23

本帖最后由 guosheyang 于 2021-12-24 10:48 编辑

attach://117439.fas潇湘飞雨 发表于 2021-12-23 11:08
不能运行函数被取消
低版本没测试 建议12以上的版本

潇湘飞雨 发表于 2021-12-25 10:31:28

guosheyang 发表于 2021-12-24 10:12
低版本没测试 建议12以上的版本

明白~感谢~~~~~~~~~~~~~

magicheno 发表于 2022-4-27 22:36:59

感谢大佬分享~~~
页: [1]
查看完整版本: 给大家共享个不一样的曲线交点打断代码