将非直角四边形转化成直角矩形
如题,如图要求:点击任意一条边,转化成被该四边形包围的最大矩形本帖最后由 阿然 于 2013-3-11 23:43 编辑
试一试
(defun c:tt (/ BASEPT BBOX ENT MAXPT MINPT PT1 PT2 PTLST SEG TMPENT X)(vl-load-com)
(if (and (setq ent (entsel "\n选择四边形:"))
(setq basept (osnap (cadr ent) "_nea"))
(setq ent (car ent))
)
(progn (setq ptlst
(vl-remove-if '(lambda (x) (/= (car x) 10)) (entget ent))
)
(setq ptlst (mapcar '(lambda (x) (append (cdr x) (list 0.)))
(append ptlst (list (car ptlst)))
)
)
(setq seg (fix (vlax-curve-getparamatpoint ent basept)))
(setq pt1 (nth seg ptlst))
(setq pt2 (nth (1+ seg) ptlst))
(setq
tmpent (vlax-invoke-method (vlax-ename->vla-object ent) 'copy)
)
(vlax-invoke-method
tmpent
'Rotate
(vlax-3d-point pt1)
(* -1 (angle pt1 pt2))
)
(vlax-invoke-method tmpent 'GetBoundingBox 'minpt 'maxpt)
(setq minpt (vlax-safearray->list minpt)
maxpt (vlax-safearray->list maxpt)
)
(command "_rectang" "_non" minpt "_non" maxpt)
(setq bbox (entlast))
(vlax-invoke-method
(vlax-ename->vla-object bbox)
'Rotate
(vlax-3d-point pt1)
(angle pt1 pt2)
)
(vla-erase tmpent)
(princ)
)
)
)
可以不局限边数
阿然 发表于 2013-3-11 23:35 static/image/common/back.gif
试一试
可以不局限边数
可以修改成打散的不规则四边形或多边形吗?谢谢! 哦,是我看错题目了,我再想想 围观围观围观围观 狂顶
用力顶
我用力顶
我很用力顶
再加上千斤顶
总之把它顶到顶
围观围观围观围观
页:
[1]