清风明月名字
发表于 2013-12-17 19:23:04
flyfox1047 发表于 2013-12-17 19:13 static/image/common/back.gif
我的看不到效果,我是CAD2005,可能与此有关
flyfox1047
发表于 2013-12-17 19:13:43
清风明月名字 发表于 2013-12-17 18:54 static/image/common/back.gif
试了你的代码,看不出产生了什么效果
清风明月名字
发表于 2013-12-17 18:54:50
太谢谢1楼楼主了,我正需要这个呢。
清风明月名字
发表于 2013-12-17 18:54:12
flyfox1047 发表于 2013-12-17 14:11 static/image/common/back.gif
试了你的代码,看不出产生了什么效果
flyfox1047
发表于 2013-12-17 14:11:59
bzhjl 发表于 2013-12-17 14:03 static/image/common/back.gif
给力!有些确实不能直接闭合,要拉到某个端点来闭合。用这个圈起来就可以人工操作了
(defun c:tt()
(if (setq ssa (ssget '((0 . "LINE")))) (progn
(setq ptb nil i -1)
(repeat (sslength ssa)
(setq dxf (entget (ssname ssa (setq i (1+ i))))
ptb (cons (cdr (assoc 11 dxf)) (cons (cdr (assoc 10 dxf)) ptb)))
)
(setq jgb nil fhz nil)
(while (setq pt (car ptb) ptb (cdr ptb))
(if (member pt ptb)
(setq ptb (vl-remove pt ptb)
fhz (cons pt fhz))
(setq jgb (cons pt jgb))
)
)
(setq oldcol (getvar "CECOLOR"))
(command "COLOR" 1)
(mapcar '(lambda(x) (command "_circle" x 50)) jgb)
(command "COLOR" oldcol)
(setq tymlb nil)
(foreach pt fhz
(setq ssa (ssget "c" pt pt '((0 . "LINE")))
i -1)
(repeat (sslength ssa)
(if (not (member (setq ent (ssname ssa (setq i (1+ i)))) tymlb))
(setq tymlb (cons ent tymlb))
)
)
)
))
(princ)
)
bzhjl
发表于 2013-12-17 14:03:36
给力!有些确实不能直接闭合,要拉到某个端点来闭合。用这个圈起来就可以人工操作了
twsyzx
发表于 2013-11-15 22:25:56
非常给力啊!!楼主,解决了经常遇到的大麻烦!
freeok
发表于 2013-10-31 23:15:47
这个很好,赞一个!
llsheng_73
发表于 2013-10-31 00:36:45
本帖最后由 llsheng_73 于 2013-10-31 00:42 编辑
大概懂了楼主的意思,有些线是可以直接闭合,有的需要延长某条边,而有的,一般还有些什么,都考虑一下。。。。总之不能直接由电脑判断怎么处理,这样标出来倒确实便于人机交互处理,有一定实用性。
最好再弄几种处理方式的函数在一起,用园标出来后,一个个局部放大,让人来决定怎么处理,想怎么处理就按个选项,调用相应函数进行处理,跳到下一个圆。。。这样一来就更受欢迎了也就是说一个简单程序就因此而不再简单,因为至少得有几种比较行合理处理的方式,处理起来更方便
spp_wall
发表于 2013-10-30 21:00:22
断点bucuo !!!!!!!!!!1