风树
发表于 2013-10-3 10:29:32
Lisper 发表于 2013-10-1 22:47 static/image/common/back.gif
**** 本内容被作者隐藏 ****
你的主体都出来了,感觉将到最近延申点的延申长度和可能要裁剪的长度做比较,前者长时裁剪删悬挂线,否则延申。
就是很好的代码了。
梦里水香
发表于 2013-10-3 20:08:49
xyp1964 发表于 2013-10-3 07:56 static/image/common/back.gif
该延伸的延伸,该打断的打断
15.19楼的程序都试了一下,不好用,三行的应用之后变成二行了,还有很多。。08版测试,
不是很完善。。
院长的没试过,没代码。
Lisper
发表于 2013-10-3 22:16:11
梦里水香 发表于 2013-10-3 20:08 static/image/common/back.gif
15.19楼的程序都试了一下,不好用,三行的应用之后变成二行了,还有很多。。08版测试,
不是很完善。。
...
请上传具体的示例来说明一下!
crazylsp
发表于 2013-10-5 16:01:15
本帖最后由 crazylsp 于 2013-10-5 16:05 编辑
这个问题就是ZML大师编制的框选延伸的嘛,参见
http://bbs.mjtd.com/forum.php?mo ... 71&page=2#pid557756
(defun c:test (/ stn i stnn stnnt ptlst pt10 pt11)
(setq dm(getvar "EDGEMODE" ))
(setvar "EDGEMODE" 1)
(setq i 0)
(if (setq stn (ssget))(progn
(vl-cmdf "_undo""be")
(repeat (sslength stn)
(setq stnn (ssname stn i)
stnnt(entget stnn)
pt10 (cdr (assoc 10 stnnt))
pt11 (cdr (assoc 11 stnnt))
)
(vl-cmdf "_extend""" (list stnn pt10) "")
(vl-cmdf "_extend""" (list stnn pt11) "")
(vl-cmdf "_trim""" (list stnn pt10) "")
(vl-cmdf "_trim""" (list stnn pt11) "")
(setq i (1+ i))
)
(vl-cmdf "_undo""e")
))
(setq i 0 ptlst nil)
(repeat (sslength stn)
(setq stnn (ssname stn i)
stnnt(entget stnn)
pt10 (cdr (assoc 10 stnnt))
pt11 (cdr (assoc 11 stnnt))
ptlst(cons pt10 ptlst)
ptlst(cons pt11 ptlst)
i (1+ i)
)
)
(setq pt(maxmin ptlst))
(vl-cmdf "_rectang" "non"(car pt) "non"(cadr pt))
(setvar "EDGEMODE" dm)
(princ)
)
(defun maxmin(lst / x n a b c d)
(setq x (car lst)
a (car x)
b (cadr x)
c (car x)
d (cadr x)
n 1
)
(repeat (max (- (length lst) 1) 0)
(setq x (nth n lst)
a (min a (car x))
b (min b (cadr x))
c (max c (car x))
d (max d (cadr x))
)
(setq n (1+ n))
)
(list (list a b) (list c d))
)
czb203
发表于 2014-5-23 17:27:41
这个还不错哦
鱼与熊掌
发表于 2014-6-5 23:56:19
这个不错 不过我居然没阅读能力 我的天```````
恕放之生命
发表于 2014-8-1 21:09:59
那就设计意图不明显,有时候不知道是修剪还是要延伸。
coverne
发表于 2016-7-7 16:50:16
院长的思路有么
tongtong3489
发表于 2016-7-30 22:30:18
很有意思的想法
tender138
发表于 2021-8-15 08:42:39
好东西,谢谢!