明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3610|回复: 25

[提问] 如何判断曲线端点位置是否和其他对象重叠

[复制链接]
发表于 2024-1-29 16:17:30 | 显示全部楼层 |阅读模式
25明经币
本帖最后由 世人皆醉 于 2024-1-30 15:37 编辑

大家好!

   遇到一个这样的问题,选择两个图元(直线、多段线,圆弧)判断曲线的起点和端点中没有和其他对象重叠的那个点,然后将不重叠的点用线连接在一起,该如何实现呢?

补充:
可能是我描述的不够清楚,我最终的目的就是画一条直线,但是并不组成多段线,我想要程序实现的目的就是我选择两条线(弧线、直线、多段线(一段))
然后判断这两条线的起始点和终止点没有和其他图元产生相交、相接、干涉、碰撞的那个点,然后对这两条曲线筛选出来符合要求的点进行画直线连接
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

;; 悬挂端连线
发表于 2024-1-29 16:17:31 | 显示全部楼层
本帖最后由 xyp1964 于 2024-1-31 18:58 编辑

;; 悬挂端连线




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2024-1-29 20:26:24 | 显示全部楼层
;试试这个
(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)
)
回复

使用道具 举报

 楼主| 发表于 2024-1-30 09:01:53 | 显示全部楼层
guosheyang 发表于 2024-1-29 20:26
;试试这个
(defun c:tt(/ I SS SS-SJD SS2)
(setq ss(ssget))



大佬,运行失败啊,错误提示这个

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2024-1-30 12:00:42 | 显示全部楼层
本帖最后由 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)
)

回复

使用道具 举报

 楼主| 发表于 2024-1-30 12:54:27 | 显示全部楼层
guosheyang 发表于 2024-1-30 12:00
前面加上这句 试试(vl-load-com)

没用的,加上也没用和没加错误提示是一样的啊
回复

使用道具 举报

发表于 2024-1-30 13:16:08 | 显示全部楼层
本帖最后由 guosheyang 于 2024-1-30 13:17 编辑

可能你的CAD按装的是精简版的  看下这个介绍试下    https://www.jianshu.com/p/45fd574f3e70
回复

使用道具 举报

 楼主| 发表于 2024-1-30 13:56:17 | 显示全部楼层
guosheyang 发表于 2024-1-30 13:16
可能你的CAD按装的是精简版的  看下这个介绍试下    https://www.jianshu.com/p/45fd574f3e70

装的不是精简版,2021版的,看了介绍但是没找到那个安装360的包
回复

使用道具 举报

发表于 2024-1-30 14:05:11 | 显示全部楼层
世人皆醉 发表于 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)
)
回复

使用道具 举报

 楼主| 发表于 2024-1-30 14:19:08 | 显示全部楼层
guosheyang 发表于 2024-1-30 14:05
改为纯autolisp的试下
(defun c:tt(/ I SS SS-SJD SS2)
(setq ss(ssget))

最后一步好像有问题,中断了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-23 12:10 , Processed in 0.203523 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表