马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 Lisphk 于 2021-1-19 10:39 编辑
将选定的Text / MText对象翻转180°(基点是对象边界框的中点)
 - (defun c:TFlip (/ ss)
- ;; Flip selected Text/MText objects 180° (basepoint is midpoint of object bounding box)
- ;; Required subroutines: AT:BoundingBoxMidPoint
- ;; Alan J. Thompson, 07.13.10
- (if (setq ss (ssget "_:L" '((0 . "MTEXT,TEXT"))))
- (progn
- (vlax-for x (setq
- ss (vla-get-activeselectionset
- (cond (*AcadDoc*)
- ((setq *AcadDoc* (vla-get-activedocument
- (vlax-get-acad-object)
- )
- )
- )
- )
- )
- )
- (vla-rotate x (vlax-3d-point (AT:BoundingBoxMidPoint x)) pi)
- )
- (vla-delete ss)
- )
- )
- (princ)
- )
- (defun AT:BoundingBoxMidPoint (obj / a b)
- ;; Return midpoint between boundingbox of specified VLA-OBJECT
- ;; Alan J. Thompson, 07.13.10
- (if (eq (type obj) 'VLA-OBJECT)
- (progn
- (vla-getboundingbox obj 'a 'b)
- (apply (function
- (lambda (p1 p2)
- (mapcar (function (lambda (a b) (/ (+ a b) 2.))) p1 p2)
- )
- )
- (mapcar (function vlax-safearray->list) (list a b))
- )
- )
- )
- )
|