明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3440|回复: 10

合并多段线,请大家帮忙看下合并多段线程序那里出了问题。

[复制链接]
发表于 2011-11-2 15:31:29 | 显示全部楼层 |阅读模式
请大家帮忙看下合并多段线程序那里出了问题,请多多指教。
(defun c:PE()     
     (setq ss (ssget))
     (if (/= ss nil)
      (progn
        (setq nn (sslength ss))
        (setq i 0)
        (repeat nn
          (setq sname (ssname ss i))
          (setq en1 (entget sname))
          (setq en2 (cdr (assoc 0 (entget sname))))
          (if (and (/= en1 nil) (or (= en2 "LINE") (= en2 "ARC") (and (= en2 "LWPOLYLINE") (= (cdr (assoc 70 (entget sname))) 0))))
           (progn
            (setq en(cdr (assoc 0 (entget sname))))
            (if (or (= en "LWPOLYLINE") (= en "POLYLINE"))
               (command "pedit" sname "j" ss "" "")
               (command "pedit" sname "y" "j" ss "" "")
             );if
           (setq i (+ i 1))
         );progn
         
      (setq i (+ i 1))
         );if
        
         );repeat
     );progn
   );if
)
   

发表于 2011-11-2 17:42:13 | 显示全部楼层
  1. (defun c:tt()
  2.   (setq ss (ssget '((0 . "arc,line,*polyline"))))
  3.   (if ss
  4.     (progn
  5.       (command "pedit" (setq e (ssname ss 0)))
  6.       (if (=  (cdr (assoc 0 (entget e))) "LWPOLYLINE")
  7.           (command "y" "j" ss "" "")
  8.         (command  "j" ss "" "")
  9.         )
  10.       ))
  11.   )
发表于 2011-11-2 17:47:02 | 显示全部楼层
(command "pedit" sname "j" ss "" "")和 (command "pedit" sname "y" "j" ss "" "")

都是对单个图元操作,能连接在一起么?
 楼主| 发表于 2011-11-3 11:13:51 | 显示全部楼层
Gu_xl 发表于 2011-11-2 17:42

多谢版主,非常好用,简洁。高
 楼主| 发表于 2011-11-3 11:15:41 | 显示全部楼层
vormittag 发表于 2011-11-2 17:47
(command "pedit" sname "j" ss "" "")和 (command "pedit" sname "y" "j" ss "" "")

都是对单个图元操 ...

多谢指教
发表于 2013-4-8 14:16:33 | 显示全部楼层
好像不能合并
发表于 2013-4-11 23:07:05 | 显示全部楼层
Gu_xl 的程序确实不错,短小精悍。
发表于 2013-11-8 12:12:38 | 显示全部楼层
(setq ss (ssget '((0 . "arc,line,*polyline"))))原来这里是支持通配符的。。。学习了
发表于 2016-7-3 15:57:59 | 显示全部楼层
简单才是高手
发表于 2017-12-2 18:05:10 | 显示全部楼层

你好,我用您的算法改了一下,想把样条曲线和多段线连接成多段线,但是总是出错,您能帮我看看吗?(defun c:tt()
  (setq ss (ssget '((0 . "*polyline,spline"))))
  (if ss
    (progn
      (command ".pedit" (setq e (ssname ss 0)))
      (if (=  (cdr (assoc 0 (entget e))) "LWPOLYLINE")
          (command  "m" ss "" "j" "1" "")
         (command "m" ss "" "y" "10" "j" "1" "")
        )
      ))
  )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 19:42 , Processed in 0.191571 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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