如何判断曲线端点位置是否和其他对象重叠
本帖最后由 世人皆醉 于 2024-1-30 15:37 编辑大家好!
遇到一个这样的问题,选择两个图元(直线、多段线,圆弧)判断曲线的起点和端点中没有和其他对象重叠的那个点,然后将不重叠的点用线连接在一起,该如何实现呢?
补充:
可能是我描述的不够清楚,我最终的目的就是画一条直线,但是并不组成多段线,我想要程序实现的目的就是我选择两条线(弧线、直线、多段线(一段))
然后判断这两条线的起始点和终止点没有和其他图元产生相交、相接、干涉、碰撞的那个点,然后对这两条曲线筛选出来符合要求的点进行画直线连接
本帖最后由 xyp1964 于 2024-1-31 18:58 编辑
;; 悬挂端连线
;试试这个
(defun c:tt(/ I SS SS-SJD SS2)
(setq ss(ssget))
(setq ss-sjd(mapcar'cadr(cdr(last(ssnamex ss)))))
(initcommandversion)
(vl-cmdf "join" ss "")
(setq ss2(ssget "cp" ss-sjd))
(repeat(setq i(sslength ss2))
(vla-put-Closed (vlax-ename->vla-object (ssname ss2 (setq i(1- i)))) :vlax-true)
)
(princ)
) guosheyang 发表于 2024-1-29 20:26
;试试这个
(defun c:tt(/ I SS SS-SJD SS2)
(setq ss(ssget))
大佬,运行失败啊,错误提示这个
本帖最后由 guosheyang 于 2024-1-30 12:07 编辑
前面加上这句 试试(vl-load-com)
(defun c:tt(/ I SS SS-SJD SS2)
(vl-load-com)
(setq ss(ssget))
(setq ss-sjd(mapcar'cadr(cdr(last(ssnamex ss)))))
(initcommandversion)
(vl-cmdf "join" ss "")
(setq ss2(ssget "cp" ss-sjd))
(repeat(setq i(sslength ss2))
(vla-put-Closed (vlax-ename->vla-object (ssname ss2 (setq i(1- i)))) :vlax-true)
)
(princ)
)
guosheyang 发表于 2024-1-30 12:00
前面加上这句 试试(vl-load-com)
没用的,加上也没用和没加错误提示是一样的啊 本帖最后由 guosheyang 于 2024-1-30 13:17 编辑
可能你的CAD按装的是精简版的看下这个介绍试下 https://www.jianshu.com/p/45fd574f3e70 guosheyang 发表于 2024-1-30 13:16
可能你的CAD按装的是精简版的看下这个介绍试下 https://www.jianshu.com/p/45fd574f3e70
装的不是精简版,2021版的,看了介绍但是没找到那个安装360的包
世人皆醉 发表于 2024-1-30 13:56
装的不是精简版,2021版的,看了介绍但是没找到那个安装360的包
改为纯autolisp的试下
(defun c:tt(/ I SS SS-SJD SS2)
(setq ss(ssget))
(setq ss-sjd(mapcar'cadr(cdr(last(ssnamex ss)))))
(initcommandversion)
(command "join" ss "")
(setq ss2(ssget "cp" ss-sjd))
(repeat(setq i(sslength ss2))
(command "PEDIT" (ssname ss2 (setq i(1- i))) "C" "")
)
(princ)
) guosheyang 发表于 2024-1-30 14:05
改为纯autolisp的试下
(defun c:tt(/ I SS SS-SJD SS2)
(setq ss(ssget))
最后一步好像有问题,中断了