找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5732|回复: 38

[求助] 第一次发帖,求助万能的晓东家园

[复制链接]
发表于 2013-8-15 14:02:24 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 chenjian2159 于 2013-8-15 14:21 编辑

我是做规划的小罗罗,工作中有个很重要的步骤是描图,主要是描一些建筑轮廓,平时基本上是用BO这个命令来完成,但有些地形图上面的建筑轮廓线经常有缝,没闭合,所以BO就完成不了,只能手工描,偶尔有一次看到一张图片,有缝的都能BO起来,但找不到原作者,不知道怎么实现,求万能的晓东CAD家园帮忙,希望能实现,要是可以用LISP实现,那就更好了,在此谢过!
112233.gif
听说过“最大内切圆”,有没有“最大内切多边形”的说法?

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-8-15 14:52:07 | 显示全部楼层
收藏的一个连接线段的程序,把模糊距离设置大一点就能实现了
  1. (defun c:ljx (/ peditaccept ss mm)
  2.   (if (= (setq mm (getreal "\n输入模糊距离<1.0>:")) nil)
  3.     (setq mm 1.0)
  4.   )
  5.   (if (setq ss (ssget "_:L" '((0 . "ARC,LINE,LWPOLYLINE"))))
  6.     (progn
  7.       (setq peditaccept (getvar 'peditaccept))
  8.       (setvar 'peditaccept 1)
  9.       (command "_.pedit" "_M" ss "" "_J" mm "")
  10.       (setvar 'peditaccept peditaccept)
  11.     )
  12.   )
  13.   (princ)
  14. )

点评

谢谢回复,但跟所想的不一样,你这个就是PE吧  详情 回复 发表于 2013-8-15 15:04
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-15 15:00:26 | 显示全部楼层
楼主,这样处理行不,红色的是原来的,用白色的连上。
QQ截图20130815145645.jpg

点评

谢谢版主大人,这样就是跟原来的线有点误差哦,基本上吻合能做到吗?跟BO那样  详情 回复 发表于 2013-8-15 15:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-15 15:04:43 | 显示全部楼层
laibinwu 发表于 2013-8-15 14:52
收藏的一个连接线段的程序,把模糊距离设置大一点就能实现了

谢谢回复,但跟所想的不一样,你这个就是PE吧{:soso_e183:}

点评

是啊,AUTOCAD都认为应该这样的。建筑本来应该是直线的,你的图那样的反而不是实际的,是策划的不准吧。  详情 回复 发表于 2013-8-15 15:10
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-15 15:07:56 | 显示全部楼层
本帖最后由 chenjian2159 于 2013-8-15 15:11 编辑
newer 发表于 2013-8-15 15:00
楼主,这样处理行不,红色的是原来的,用白色的连上。


谢谢版主大人,这样就是跟原来的线有点误差哦,假如原来的红线缺口较大,那误差不是更大了吗?基本上吻合能做到吗?跟BO那样
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-15 15:10:33 | 显示全部楼层
chenjian2159 发表于 2013-8-15 15:04
谢谢回复,但跟所想的不一样,你这个就是PE吧

是啊,AUTOCAD都认为应该这样的。建筑本来应该是直线的,你的图那样的反而不是实际的,是策绘的不准吧。

点评

测绘搞地形的有时候估计是不小心吧,导致了地形图里的好多建筑都是没有闭合,所以想看看万能的晓东里能否帮我解决下,万分感激!!!  详情 回复 发表于 2013-8-15 15:14
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-15 15:14:14 | 显示全部楼层
本帖最后由 chenjian2159 于 2013-8-15 15:15 编辑
newer 发表于 2013-8-15 15:10
是啊,AUTOCAD都认为应该这样的。建筑本来应该是直线的,你的图那样的反而不是实际的,是策绘的不准吧。
...


测绘搞地形的有时候估计是不小心吧,导致了地形图里的好多建筑都是没有闭合,所以想看看万能的晓东里能否帮我解决下,万分感激!!!建筑有时候也不一定是直线啊,有些老房子,拐来拐去的

点评

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-15 15:18:04 | 显示全部楼层
chenjian2159 发表于 2013-8-15 15:14
测绘搞地形的有时候估计是不小心吧,导致了地形图里的好多建筑都是没有闭合,所以想看看万能的晓东里能 ...

帮你试试吧,你的线只是 LINE 和POLYLINE吧?

点评

谢谢版主!圆弧可能也有吧,不过可能考虑进去的话,程序是不是就变复杂了?  详情 回复 发表于 2013-8-15 15:42
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2013-8-15 15:19:23 | 显示全部楼层
他要的是这样!
未封闭BO.gif

点评

你有现成的工具? 那帮贴上来吧。  详情 回复 发表于 2013-8-15 15:26
是的,不知道能否实现?  详情 回复 发表于 2013-8-15 15:25
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-15 15:25:24 | 显示全部楼层
q3_2006 发表于 2013-8-15 15:19
他要的是这样!

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-15 15:26:27 | 显示全部楼层
q3_2006 发表于 2013-8-15 15:19
他要的是这样!

你有现成的工具? 那帮贴上来吧。

点评

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

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

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

使用道具 举报

 楼主| 发表于 2013-8-15 15:36:59 | 显示全部楼层
newer 发表于 2013-8-15 15:26
你有现成的工具? 那帮贴上来吧。

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

使用道具 举报

 楼主| 发表于 2013-8-15 15:42:18 | 显示全部楼层
newer 发表于 2013-8-15 15:18
帮你试试吧,你的线只是 LINE 和POLYLINE吧?

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

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-8-15 17:28:53 | 显示全部楼层
本帖最后由 牢固 于 2013-8-15 17:43 编辑

  1. ;;串接封闭线,By Gu_xl 2013.08.15
  2. ;;一次选择一组要连线的实体
  3. (defun c:MyJoin (/ *error* CMDECHO PEDITACCEPT SS SSL PL LST LL UR CIR CP PTS1 PTS2)
  4.   (defun *error* (s)
  5.     (setvar 'peditaccept peditaccept)
  6.       (setvar 'cmdecho cmdecho)
  7.     (princ s)
  8.     )
  9.   (setq cmdecho (getvar 'cmdecho))
  10.   (setvar 'cmdecho 0)
  11.   (setq peditaccept (getvar 'peditaccept))
  12.   (setvar 'peditaccept 1)
  13.   (setq ss (ssget '((0 . "line,arc,*polyline"))))
  14.   (if ss
  15.     (progn
  16.       (setq ssl (GXL-SEL-SS->LIST ss))
  17.       (setq pl (apply 'append (setq lst (mapcar '(lambda (a)(list (vlax-curve-getStartPoint a) (vlax-curve-getendPoint a))) ssl))))
  18.       (setq ll (apply 'mapcar (cons 'min pl))
  19.       ur (apply 'mapcar (cons 'max pl))
  20.       )
  21.       (command "_circle" "2p" "_non" (trans ll 0 1) "_non" (trans ur 0 1))
  22.       (setq cir (entlast))
  23.       (setq cp (cdr (assoc 10 (entget cir))))
  24.       (setq lst
  25.        (mapcar
  26.          '(lambda (x)
  27.       (if (apply 'gxl-Clockwise-p (cons cp x))
  28.         (reverse x)
  29.         x
  30.         )
  31.       )
  32.          lst
  33.          )
  34.       lst
  35.        (vl-sort
  36.          lst
  37.          '(lambda (a b)
  38.       (< (vlax-curve-getParamAtPoint cir (vlax-curve-getclosestpointto cir (car a)))
  39.          (vlax-curve-getParamAtPoint cir (vlax-curve-getclosestpointto cir (car b)))
  40.          )
  41.       )
  42.          )
  43.       )
  44.       (setq pts1 (car lst)
  45.       lst (append (cdr lst) (list pts1))
  46.       )
  47.       (while lst
  48.   (setq pts2 (car lst)
  49.         lst (cdr lst)
  50.         )
  51.   (if (not (equal (cadr pts1) (car pts2) 1e-3))
  52.     (progn
  53.       (command "_line" "_non" (trans (cadr pts1) 0 1) "_non" (trans (car pts2) 0 1) "")
  54.       (ssadd (entlast) ss)
  55.       )
  56.     )
  57.   (setq pts1 pts2)
  58.   )
  59.       
  60.       (command "pedit" "m" ss "" "j" 1e-3 "")
  61.       (setvar 'peditaccept peditaccept)
  62.       (setvar 'cmdecho cmdecho)
  63.       (entdel cir)
  64.       )
  65.     )
  66.   )

  67. ;;;选择集转为图元列表
  68. (defun gxl-Sel-SS->List (ss / i s)
  69.   (if ss
  70.     (repeat (setq i (sslength ss))
  71.       (setq s (cons (ssname ss (setq i (1- i))) s))
  72.       )
  73.     )
  74.   )
  75. ;;(gxl-Clockwise-p p1 p2 p3)判断三点是否顺时针
  76. (defun gxl-Clockwise-p ( p1 p2 p3 )
  77.     (<
  78.         (* (- (car  p2) (car  p1)) (- (cadr p3) (cadr p1)))
  79.         (* (- (cadr p2) (cadr p1)) (- (car  p3) (car  p1)))
  80.     )
  81. )

点评

点击一次就结束了,希望版主改进下可以连续点击下去(如果图中需要很多需要闭合的多段线,)每次点击一个就结束命令了 还要再执行命令的  详情 回复 发表于 2013-11-19 01:35
楼主要的是跟BO命令一样,用“拾取点”的方式形成边界,贴图里,只是在线内点击了一下,就形成边界了,这个是怎么做到的??  详情 回复 发表于 2013-8-15 18:06
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 09:06 , Processed in 0.215840 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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