KeithJaw 发表于 2022-7-29 02:38:30

随参考点旋转

离开一段时间后回到Autocad,我以前有一个自己编写的LISP例程。但是我把它弄丢了,忘记了编程是怎么完成的。
该例程将请求实体旋转,并请求旋转点,但随后会使参考点等于旋转点,从而跳过一个恼人的阶段。
有人能给我指路吗?
谢谢

mhupp 发表于 2022-7-29 04:19:33

如果旋转点=参考点
只需使用旋转命令
 
这是我用来做旋转的参考。给你另一个我不经常使用的,但当我这样做时可以节省时间。
通常在方块上用它来翻转他们的中点。
 
;;----------------------------------------------------------------------------;;
;; ROTATE WITH REFERENCE
(defun C:RH (/ SS)
(if (setqSS (ssget ":L"))
    (vl-cmdf "_.Rotate" SS "" Pause "R" "@" Pause Pause)
    (prompt "\nNothing Selected or Entity's on Locked Layer")
)
(princ)
)


;;----------------------------------------------------------------------------;;
;; ROTATE MULTIPLE ENTITY'S AROUND MIDPOINT
(defun C:ROB (/ SS LL UR MPT)
(vl-load-com)
(if (setq SS (ssget ":L"))
    (foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex SS)))
      (setq obj (vlax-ename->vla-object ent))
      (vla-getboundingbox obj 'minpt 'maxpt)
      (setq LL (vlax-safearray->list minpt)
            UR (vlax-safearray->list maxpt)
            MPT (mapcar '/ (mapcar '+ LL UR) '(2 2 2))
      )
      (vl-cmdf "_.Rotate" ent "" "_non" MPT pause)
    )
)
(princ)
)
 
页: [1]
查看完整版本: 随参考点旋转