找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2159|回复: 15

[编程申请]:线段自动连接,变成多义线,请高手指点

[复制链接]
发表于 2004-12-7 06:14:13 | 显示全部楼层 |阅读模式

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

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

×
请高手帮忙:

1、在地形图中,自动连接线段为连续的多义线;
2、点取断开的线段,让它们自动连接。
上面的两个功能,是本人整理原来地形图时碰到的棘手难题,请高手指点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-12-7 17:04:16 | 显示全部楼层
晓东工具箱里有这些功能
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2004-12-8 08:19:20 | 显示全部楼层
[PHP]
(defun c:lj (/SS)
  (vl-load-com)
  (vl-cmdf ".undo" "BE")
  (setq ss(ssget "X")  )
  (command "_.PEDIT" "M" ss "" "Y" "J" "0" "C" "")
  ;0可以改为其它值使有局部断裂的线段仍照常连接
  (vl-cmdf ".undo" "E")
  (princ)
)
;如有连接不上的线段请使用,F倒圆角命令,将半径定为0
;如仍解决不了的线段请重画,此种线段暂无命令能解决(CAD的BUG)
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-12-9 08:59:54 | 显示全部楼层
谢谢了!!!!!!!!!!
把上面的代码保存为lisp格式吗?
我执行的时候,提示“错误,参数太少”
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-10 15:18:50 | 显示全部楼层
(DEFUN C:xx (/ ss sa)
(prompt
    "\n请选取要串接的图元"
  )
      (setq ss (ssget

                    '(
                      (-4 . "<OR")
                      (-4 . "<AND")
                      (0 . "LINE")
                      (-4 . "AND>")
                      (-4 . "<AND")
                      (0 . "ARC")
                      (-4 . "AND>")
                      (-4 . "OR>")
                     )
             )
    )
(if ss
   (progn
   (SETQ sa (ssname ss 0))
     (command "_pedit" sa "y" "j" ss "")
          (command)
          
  ))
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-12-11 14:05:58 | 显示全部楼层
晕,第一次写的LISP,经研究,原来图面图形内容不同也能导致我的LISP出错

[PHP]
(defun c:lj (/ SS)
  (vl-load-com)
  (vl-cmdf ".undo" "BE")
  (setq ss (ssget "X"
            '(
               (-4 . "<OR")
                  (0 . "LINE")
                  (0 . "ARC")
               (-4 . "OR>")
             )
           )
  )  
  (if (/= ss nil)
      (command "_.PEDIT" "M" ss "" "Y" "")
  )
  (command "_.PEDIT" "M" "all" "" "J" "0" "")
  ;0可以改为其它值使有局部断裂的线段仍照常连接
  (vl-cmdf ".undo" "E")
  (princ)
)
;如有连接不上的线段请使用,F倒圆角命令,将半径定为0
;如仍解决不了的线段请重画,此种线段暂无命令能解决(CAD的BUG)
[/PHP]

如有问题,继续修改
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-17 10:48:12 | 显示全部楼层
这个连接直线的程序有个错误,但运行后能达到连接的效果的,用起来比pedit快多了

(defun c:lj()
;(setvar "cmdecho" 0)
(princ "\n请选择需要连接的线段: ")
(setq ss (ssget '((0 . "LINE,LWPOLYLINE,ARC"))))
(setq i 0)
(repeat (sslength ss)
(setq ename (ssname ss i))
(if (/= ename nil)
(progn
(setq endata (entget ename))
(setq entype (cdr (assoc 0 endata)))
(setq enlay (cdr (assoc 8 endata)))
(setq ssp (ssget "x" (list (cons 8 enlay))))
(setq ssp (ssget "p" '((0 . "LINE,LWPOLYLINE,ARC")(62 . 256))))
(if (and (or (= entype "LINE")(= entype "ARC")) (/= ssp nil))
(progn (command "pedit" ename "y" "j" ssp "" "w" "0" "")
)
(progn (command "pedit" ename "j" ssp "" "w" "0" "")
)
)
)
)
(setq i (+ i 1))
)
;;
(prin1)
)
(prin1)


以下是我用它连接两条直线

命令: lj
请选择需要连接的线段:
选择对象: 找到 1 个
选择对象: 找到 1 个,总计 2 个
选择对象:
pedit 选择多段线或 [多条(M)]:
选定的对象不是多段线
是否将其转换为多段线? y
输入选项
[闭合(C)/合并(J)/宽度(W)/编辑顶点(E)/拟合(F)/样条曲线(S)/非曲线化(D)/线型生成(L)
/放弃(U)]: j
选择对象: 找到 1 个
选择对象:
1 条线段已添加到多段线
输入选项
[闭合(C)/合并(J)/宽度(W)/编辑顶点(E)/拟合(F)/样条曲线(S)/非曲线化(D)/线型生成(L)
/放弃(U)]: w
指定所有线段的新宽度: 0
输入选项
[闭合(C)/合并(J)/宽度(W)/编辑顶点(E)/拟合(F)/样条曲线(S)/非曲线化(D)/线型生成(L)
/放弃(U)]:
命令: ; 错误: ssget 列表值错误
命令:

请高手修改一下,老是出现列表错误很吓人的!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-12-21 13:53:55 | 显示全部楼层
我用pedit命令把我的三段圆弧和一段直线合并成了一条的多段线,但我现在想要把这条多段线围成的封闭区域的面积赋值给一个变量,用什么代码?谢谢  
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-20 14:11 , Processed in 0.197705 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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