找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1042|回复: 11

[编程申请]:把选定的LINE连接成PLINE

[复制链接]
发表于 2002-9-13 15:12:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
以前在论坛上看到过把LINE连接成PLINE的程序。很可惜没有录下来。哪位朋友能给我一个这样的程序么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2002-9-13 15:18:45 | 显示全部楼层

ACAD2002中提供的PLJOIN程序有一个缺点

ACAD2002中提供的PLJOIN程序有一个缺点:将LINE连成多义线(PLINE)后,如果需要修改,用EXPLODE炸掉,就会在LINE的节点处留下许多小点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-9-13 18:26:35 | 显示全部楼层

Re: ACAD2002中提供的PLJOIN程序有一个缺点

最初由 saintdog 发布
[B]ACAD2002中提供的PLJOIN程序有一个缺点:将LINE连成多义线(PLINE)后,如果需要修改,用EXPLODE炸掉,就会在LINE的节点处留下许多小点。 [/B]


晓东工具箱里面的obj_curve.lsp里面有“连接线段”的代码,去参考参考。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-10-14 17:21:57 | 显示全部楼层
装载EXPRESS,在EXPRESS下,MOdify>Multiple Mpedit>join就可以办到!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-10-15 19:38:40 | 显示全部楼层
不知你是什么地方用的?试试下面这个吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-10-15 19:43:08 | 显示全部楼层

  1. [FONT=courier new]
  2. ;;判断对象的名称及规格
  3. (defun etype (ent / ename)
  4.   (setq ename (cdr (assoc 0 (entget ent))))
  5.   (cond
  6.     ((= "POLYLINE" ename)
  7.      (if (> (cdr (assoc 70 (entget ent))) 7)
  8.        8
  9.        (if (= 0 (logand 1 (cdr (assoc 70 (entget ent)))))
  10.          1
  11.          5
  12.        )
  13.      )
  14.     )
  15.     ((= "LWPOLYLINE" ename)
  16.      (if (= 0 (logand 1 (cdr (assoc 70 (entget ent)))))
  17.        2
  18.        5
  19.      )
  20.     )
  21.     ((= "LINE"   ename) 3)
  22.     ((= "ARC"    ename) 4)
  23.     ((= "CIRCLE" ename) 6)
  24.     ((= "INSERT" ename) 7)
  25.     (T                  9)
  26.   )
  27. )

  28. ;; 判断对象是否为顶点(用于多义线)
  29. ;;
  30. (defun isvertex        (ent)
  31.   ;; 'en' is entity name
  32.   (if (= "VERTEX" (cdr (assoc 0 (entget ent))))
  33.     (cdr (assoc 70 (entget ent)))
  34.   )
  35. )

  36. ;; 找出对象距离选择点的最近一个端点
  37. (defun nearvtx (ent etp p / p1 p2 l r f)
  38.   (cond
  39.     ((= 1 etp)
  40.      (setq ent (entnext ent))
  41.      (setq p1 (cdr (assoc 10 (entget ent))))
  42.      (setq ent (entnext ent))
  43.      (while (/= nil (setq f (isvertex ent)))
  44.        (setq l         ent
  45.              ent (entnext ent)
  46.        )
  47.      )
  48.      (setq p2 (cdr (assoc 10 (entget l))))
  49.      (if (> (distance p1 p) (distance p2 p))
  50.        p2
  51.        p1
  52.      )
  53.     )
  54.     ((= 2 etp)
  55.      (setq p1 (cdr (assoc 10 (entget ent))))
  56.      (setq p2 (cdr (assoc 10 (reverse (entget ent)))))
  57.      (if (> (distance p1 p) (distance p2 p))
  58.        p2
  59.        p1
  60.      )
  61.     )
  62.     ((= 3 etp)
  63.      (progn
  64.        (setq ent (entget ent))
  65.        (setq p1        (cdr (assoc 10 ent))
  66.              p2        (cdr (assoc 11 ent))
  67.        )
  68.        (if (> (distance p1 p) (distance p2 p))
  69.          p2
  70.          p1
  71.        )
  72.      )
  73.     )
  74.     (T
  75.      (progn
  76.        (setq ent (entget ent))
  77.        (setq l (cdr (assoc 10 ent))
  78.              r (cdr (assoc 40 ent))
  79.        )
  80.        (setq p1 (polar l (cdr (assoc 50 ent)) r))
  81.        (setq p2 (polar l (cdr (assoc 51 ent)) r))
  82.        (if (> (distance p1 p) (distance p2 p))
  83.          p2
  84.          p1
  85.        )
  86.      )
  87.     )
  88.   )
  89. )
  90. ;;
  91. ;;  主程序,对线进行连接
  92. ;;
  93. (defun C:JL
  94.        (/ oldecho oldsnap oldortho en l e r s n g c d p i tt p1 p2)
  95.   (setq oldecho (getvar "cmdecho"))
  96.   (setvar "cmdecho" 0)
  97.   (setq oldsnap (getvar "osmode"))
  98.   (setvar "osmode" 0)
  99.   (setq oldortho (getvar "orthomode"))
  100.   (setvar "orthomode" 0)
  101.   (if (setq en (entsel "\n请选择进行连接的线:"))
  102.     (progn
  103.       (while (< 4 (setq l (etype (car en))))
  104.         (cond
  105.           ((= 5 l)
  106.            (princ "\n不能选择闭合的线")
  107.           )
  108.           ((= 8 l)
  109.            (princ "\n不能选择三维多义线")
  110.           )
  111.           (T
  112.            (princ "\n所选对象不是线")
  113.           )
  114.         )
  115.         (while (not (setq en (entsel "\n请重新选择进行连接的线:")))
  116.           (princ "\n未选择对象")
  117.         )
  118.       )

  119.       (while (not (setq e (entsel "\n请选择连接到的线:")))
  120.         (princ "\n未选择对象")
  121.       )
  122.       (while (< 4 (setq r (etype (car e))))
  123.         (cond
  124.           ((= 5 l)
  125.            (princ "\n不能选择闭合的线")
  126.           )
  127.           ((= 8 l)
  128.            (princ "\n不能选择三维多义线")
  129.           )
  130.           (T
  131.            (princ "\n所选对象不是线")
  132.           )
  133.         )
  134.         (while (not (setq e (entsel "\n请重新选择连接到的线:")))
  135.           (princ "\n未选择对象")
  136.         )
  137.       )
  138.       (setq s (entget (car en)))
  139.       (setq n (cdr (assoc 10 s)))
  140.       (setq g (caddr n))
  141.       (setq c (entget (car e)))
  142.       (setq d (cdr (assoc 10 c)))
  143.       (setq p (caddr d))
  144.       (setq i (list 0 0 g))
  145.       (setq tt (list 0 0 p))
  146.       (command "move" (car e) "" tt i)

  147.       (setq p1 (nearvtx (car en) l (cadr en)))

  148.       (setq p2 (nearvtx (car e) r (cadr e)))

  149.       (if (> l 2)
  150.         (progn
  151.           (command "PEDIT" (car en) "Y" "X")
  152.           (setq en (entlast))
  153.         )
  154.       )
  155.       (if (not (equal p1 p2))
  156.         (command "PLINE" p1 p2 "")
  157.       )
  158.       (command "pedit" en "j" en "L" (car e) "" "")
  159.     )
  160.     (princ "\n未选择对象,退出。")
  161.   )
  162.   (setvar "cmdecho" oldecho)
  163.   (setvar "osmode" oldsnap)
  164.   (setvar "orthomode" oldortho)
  165.   (princ)
  166. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-27 02:50:50 | 显示全部楼层
下载了JL.lisp,很感谢。可以解燃眉之急。不足的就是,是不是应该把选中的线变虚,这样就知道自己选哪根线了,省得弄混了!
另外,就是无法多项选,就是无法倒框,每次只能处理两条线。请5楼主修改,好吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-20 09:05:42 | 显示全部楼层
不错,给我解决了一个大问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-27 19:57:37 | 显示全部楼层
非常感谢分享!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-7 12:56:43 | 显示全部楼层
我开发的小工具(常青藤)可以帮助你实现。
修改菜单下的直线合并多线就是此功能,且虚线显示,支持框选,新实体属性随选择的第一个实体。
具体请参考:http://www.xdcad.net/forum/showthread.php?s=&threadid=322975
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-8 23:28:56 | 显示全部楼层
c:j 把所有选上的Line 和Arc连成Lwpolyline
c:j 把所有能和选上的Line 和Arc连成Lwpolyline的实体连成Lwpolyline
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-8 23:30:58 | 显示全部楼层
不好意思,前面的第二个C:J应为C:JJ
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-22 12:37 , Processed in 0.448381 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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