Александр Ривилис пишет:последовательность _MIRROR и _MIRROR3D
Точно, я когда пробовал, сразу исходному задал отрицательную Z, а пока отражал забыл, вот и показалось, что и одного _MIRROR хватит, хотя это даже не логично.
Если взять за основу код, уважаемого Fixo, то получиться вот так:
(defun C:rep_x_y_inv_Z (/ adoc axss fixp
fx fy ll locked
locked lpts ss temp
)
;;fixo () 2008 ©
(vl-load-com)
(setq adoc (vla-get-activedocument
(vlax-get-acad-object)
)
)
(vlax-for lay (vla-get-layers adoc)
(if (eq (vla-get-lock lay) :vlax-true)
(progn
(setq locked
(cons (vla-get-name lay) locked)
)
(vla-put-lock lay :vlax-false)
)
)
)
(setq ss (ssget))
(setq axss (vla-get-activeselectionset adoc))
(vlax-for a axss
(setq temp (vla-Mirror
a
(vlax-3d-point '(0 0))
(vlax-3d-point '(1 1))
)
)
(vla-Mirror3D
temp
(vlax-3d-point '(0 0))
(vlax-3d-point '(0 1))
(vlax-3d-point '(1 0))
)
(vla-delete a)
(vla-delete temp)
)
(if locked
(foreach x locked
(vla-put-lock
(vla-item (vla-get-layers adoc) x)
:vlax-true
)
)
)
(princ)
)