本帖最后由 kucha007 于 2023-7-17 17:02 编辑
很好用的拉伸工具,也来接力~。原帖在这里:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=181607&page=15&extra=#pid928859
因改动较大,且原帖楼层太多了,所以另开一个帖子,方便各位朋友下载。
如果大家有在这个基础上改动,也请发出来互相学习。后续有问题或者更新我也在这里发布。
两个有意思的函数:
- ;收集给定实体之后产生的所有实体
- (defun K:NewSS_After (elast / en SS)
- (if elast
- (progn
- (setq SS (ssadd))
- (setq en (entnext elast))
- (while en
- (if
- (not (member (cdr (assoc 0 (entget en))) '("ATTRIB" "VERTEX" "SEQEND")))
- (setq SS (ssadd en SS))
- )
- (setq en (entnext en))
- )
- SS
- )
- )
- )
- [code=lisp]
- ;获取框选对象时的选择集UCS选框坐标(右上和左下,忽略Z值)
- (defun K:GetSSUCSBox (SS / OriLst x xx)
- (mapcar
- '(lambda (xx)
- (setq OriLst
- (mapcar
- '(lambda (xx)
- (trans
- (list (car (cadr xx)) (cadr (cadr xx)) 0.0)
- 0 1
- )
- )
- (cdr xx)
- )
- );UCS
- (list
- (apply 'mapcar (cons 'max OriLst))
- (apply 'mapcar (cons 'min OriLst))
- );取右上和左下
- )
- (vl-remove-if-not
- '(lambda(x) (< (car x) 0))
- (ssnamex SS)
- )
- )
- )
|