Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ruota3d lisp

34 views
Skip to first unread message

StefanoCasa CasaStefano

unread,
Apr 29, 2020, 7:00:40 PM4/29/20
to
Buondì qualcuno avrebbe un'idea per come dare come asse di rotazione "oggetto" e non 2 punti come nel file che ho?
(defun c:R3D ( / p1coord p2coord point1 point2 delta obj vlss tmppoint ang) (vl-load-com)

(command "_OSNAP" "_nea")
(prompt "\nAngolo di rotazione (90) ")
(setq ang (getangle))
(if (null ang) (setq ang (/ pi 2)))
(defun c:SEE ()
(vl-load-com)
(setq util (vla-get-utility
(vla-get-activedocument
(vlax-get-acad-object))))

(setq 1a (vla-GetPoint util nil "\nFirst Point : "))
(setq 1b (vla-GetPoint util nil "\nSecond Point : "))
(princ)

)


(if (ssget)
(progn
(setq point1 (vlax-3d-point (setq p1coord (trans (getpoint "\nPrimo punto dell'asse") 1 0)))
point2 (vlax-3d-point (setq p2coord (trans (getpoint (trans p1coord 0 1) "\nSecondo punto dell'asse") 1 0)))
delta (mapcar '- p2coord p1coord)
)
(vlax-for obj (setq vlss (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
(if (or (eq (vla-get-objectname obj) "AcDbMText")
(eq (vla-get-objectname obj) "AcDbText")
(eq (vla-get-objectname obj) "AcDbBlockReference")
)
(progn
(setq tmppoint(vlax-ename->vla-object(entmakex (list (cons 0 "POINT") (cons 10 (vlax-get obj 'InsertionPoint))))))
(vla-Rotate3D tmppoint point1 point2 (/ pi 2))
(vlax-put obj 'InsertionPoint (vlax-get tmppoint 'coordinates))
(vla-erase tmppoint)
(if (eq (vla-get-objectname obj) "AcDbBlockReference")
(vl-cmdf "_.AttSync" "Name" (vla-get-name obj))
)
)
(vla-Rotate3D obj point1 point2 ang)
)
)
)
)
(command "OSNAP" "_end")
)
0 new messages