明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2489|回复: 6

[求助]如何在很多线LINE,ARC中自动找出条件相同的线合并成一条线?

[复制链接]
发表于 2003-11-14 00:05:00 | 显示全部楼层 |阅读模式
条件:
LINE 只要在同一条直线上多条直线
合并成一条直线
ARC 圆心相同半径样的多条弧合并成一条弧
发表于 2003-11-14 08:22:00 | 显示全部楼层
如果两条直线中间有空隙,是否要延长将空隙填上?
ARC就更无法确定了,如果有空隙,就会有两个,要填该填哪一个呢?
 楼主| 发表于 2003-11-14 20:15:00 | 显示全部楼层
LINE可以通过计算4个点的距离进行比较得距离最长2点合并成一条直线
ARC可以通过计算4个点的周长进行比较得财最长2点合并合并成一条弧
问题是怎样删除其中一个图元,并且更新另外一个图元来和其他图元继续比较
发表于 2003-11-14 20:24:00 | 显示全部楼层
我的话你好象一点的没看,问题是两个对象如果不相互连接,比如说中间是断开的,如何处理?
 楼主| 发表于 2003-11-14 21:28:00 | 显示全部楼层
中间断开只要小于或等于10MM之间都要合成一条线

本帖子中包含更多资源

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

x
发表于 2003-11-15 01:16:00 | 显示全部楼层
对直线
Pedit -〉m -〉选择 -〉y -〉J -〉输入合并距离

或者

  1. (defun l2pl (l_name / s2 n e)
  2.   (setq        s2 (ssget (list        '(-4 . "<AND")
  3.                         '(0 . "LINE,*POLYLINE,ARC")
  4.                         (cons 8 l_name)
  5.                         '(-4 . "<NOT")
  6.                         '(-4 . "<AND")
  7.                         '
  8.                          (0 . "*POLYLINE")
  9.                         '(70 . 1)
  10.                         '(-4 . "AND>")
  11.                         '
  12.                          (-4 . "NOT>")
  13.                         '(-4 . "AND>")
  14.                   )
  15.            )
  16.   )
  17.   (if s2
  18.     (progn
  19.       (setq n (sslength s2))
  20.       (setq i 0)
  21.       (repeat n
  22.         (if (setq e (ssname s2 i))
  23.           (progn
  24.             (if        (wcmatch (cdr (assoc 0 (entget e))) "*POLYLINE")
  25.               (command ".pedit" e "j" s2 "" "")
  26.               (command ".pedit" e "y" "j" s2 "" "")
  27.             )
  28.             (if        (= (cdr (assoc 70 (entget e))) 1)
  29.               (progn
  30.                 (ssdel e s0)
  31.                 (setq n (1- n))
  32.               )
  33.             )
  34.           )
  35.         )
  36.         (setq i (1+ i))
  37.       )
  38.     )
  39.   )
  40. )
  41. (defun C:C_L2PL        ()
  42.   (prompt "\n请选择要连接成POLYLINE的LINE(线)和ARC(弧)<退出>:"
  43.   )
  44.   (l2pl "*")
  45.   (princ)
  46. )


圆弧要编程了
发表于 2003-11-18 07:54:00 | 显示全部楼层
;;EA兄的程序有些小問題,改了一下!

(defun L2PL_LAI        (L_NAME / S2 E I)
  (setq        S2 (ssget (list        '(-4 . "<AND")
                        '(0 . "LINE,*POLYLINE,ARC")
                        (cons 8 L_NAME)
                        '(-4 . "<NOT")
                        '(-4 . "<AND")
                        '(0 . "*POLYLINE")
                        '(70 . 1)
                        '(-4 . "AND>")
                        '(-4 . "NOT>")
                        '(-4 . "AND>")
                  )
           )
  )
  (if S2
    (progn
      (setq N 0)
      (repeat (sslength S2)
        (if (entget (setq E (ssname S2 N)))
          (if (wcmatch (cdr (assoc 0 (entget E))) "*POLYLINE")
            (command ".pedit" E "j" S2 "" "")
            (command ".pedit" E "y" "j" S2 "" "")
          )
        )
        (setq N (1+ N))
      )
    )
  )
)

(defun C:C_L2PL_LAI ()
  (prompt "\n請選擇要連接成POLYLINE的LINE(線)和ARC(弧)<退出>:"
  )
  (L2PL_LAI "*")
  (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 10:28 , Processed in 0.200788 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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