guosheyang 发表于 2024-1-30 14:33:41

本帖最后由 guosheyang 于 2024-1-30 14:37 编辑

世人皆醉 发表于 2024-1-30 14:19
最后一步好像有问题,中断了
循环体中改为用entmod试试

(repeat(setq i(sslength ss2))
    (entmod(append(entget (ssname ss2 (setq i(1- i)))) '((70 . 1))))
)

guosheyang 发表于 2024-1-30 14:35:09

最好上传dwg测试

世人皆醉 发表于 2024-1-30 14:41:21

guosheyang 发表于 2024-1-30 14:35
最好上传dwg测试

改了也不行,放弃两个,附件上传了,你看看


guosheyang 发表于 2024-1-30 14:52:38

先运行下overkill命令 试试

guosheyang 发表于 2024-1-30 14:56:02


guosheyang 发表于 2024-1-30 15:02:26

你上传图中   最后一个是属于悬挂线问题   把悬挂线搜索出来删除然后在闭合    关于悬挂线 搜索找下 大海大佬的代码   论坛有的

x_s_s_1 发表于 2024-1-30 15:19:07

以下代码能解决大部分问题,未下载您的例图
(defun c:tt(/ en n old ss)
    (setq old (getvar 'peditaccept))
    (setq en (entlast))
    (setvar 'peditaccept 1)
    (setq ss (ssget '((0 . "line,lwpolyline,arc"))))
    (vl-cmdf "pedit" "m" ss "" "j" 0 "")
    (while (setq en (entnext en))
        (vla-put-Closed (vlax-ename->vla-object en) :vlax-true))
    (repeat (setq n (sslength ss))
        (setq en (ssname ss (setq n (1- n))))
        (if (entget en)
          (vla-put-Closed (vlax-ename->vla-object en) :vlax-true)))
    (setvar 'peditaccept old))

世人皆醉 发表于 2024-1-30 15:30:43

guosheyang 发表于 2024-1-30 15:02
你上传图中   最后一个是属于悬挂线问题   把悬挂线搜索出来删除然后在闭合    关于悬挂线 搜索找下 大 ...

我的目的不是绘制组成一个集体的多段线,我就是想判断两个曲线端点中没有与其他点重合的那个点,然后绘制线连接这两个端点,和其他的曲线没有关系

世人皆醉 发表于 2024-1-30 15:32:34

x_s_s_1 发表于 2024-1-30 15:19
以下代码能解决大部分问题,未下载您的例图
(defun c:tt(/ en n old ss)
    (setq old (getvar 'pedit ...

试了一下,没有啥用

guosheyang 发表于 2024-1-30 15:38:45

本帖最后由 guosheyang 于 2024-1-30 15:40 编辑

世人皆醉 发表于 2024-1-30 15:30
我的目的不是绘制组成一个集体的多段线,我就是想判断两个曲线端点中没有与其他点重合的那个点,然后绘制 ...
假如有三段线   提取所有三段线的起点和终点    然后相同点坐标归类   只有一个点坐标的就是那两点绘制线段连接即可
当然你用join命令连接起来三段线再 提取起点 终点坐标也可以如果要返回非连接状态undo以下即可
页: 1 [2] 3
查看完整版本: 如何判断曲线端点位置是否和其他对象重叠