Initial commit
This commit is contained in:
63
randomRotate.lsp
Normal file
63
randomRotate.lsp
Normal file
@@ -0,0 +1,63 @@
|
||||
(defun C:randRot (/ ss i il imax maxDeg currElem currRotList currRot currRotDeg randomNumber newRotDeg newRot newRotList newElem)
|
||||
;variables:
|
||||
(setq i 0);counter to zero
|
||||
(setq imax 1);while variable
|
||||
|
||||
(graphscr)
|
||||
(prompt "\nselect entities to be rotated: ")
|
||||
(setq ss (ssget));asks for selection
|
||||
(setq il (sslength ss));length of selection
|
||||
|
||||
|
||||
(setq maxDeg (getreal "\nMaximum degrees :"))
|
||||
|
||||
|
||||
(while imax
|
||||
(print i)
|
||||
(setq currElem (entget (ssname ss i) ))
|
||||
(setq currRotList (assoc 50 currElem))
|
||||
(setq currRot (cdr currRotList))
|
||||
(setq currRotDeg (rtd currRot))
|
||||
(setq randomNumber (- (fix(* (* 2 maxDeg) (rnd))) maxDeg))
|
||||
(setq newRotDeg (+ randomNumber currRotDeg))
|
||||
(setq newRot (dtr newRotDeg))
|
||||
|
||||
(setq newRotList(cons 50 newRot))
|
||||
|
||||
(setq newElem(subst newRotList currRotList currElem))
|
||||
;; (print currElem)
|
||||
;; (print newElem)
|
||||
(entmod newElem)
|
||||
|
||||
|
||||
;while specific:
|
||||
(setq i (1+ i));increments i
|
||||
(if (= i il) (setq imax nil));finish function if i equals il
|
||||
)
|
||||
|
||||
(terpri)
|
||||
(setq ss nil)
|
||||
)
|
||||
|
||||
|
||||
(defun rnd (/ modulus multiplier increment random)
|
||||
(if (not seed)
|
||||
(setq seed (getvar "DATE"))
|
||||
)
|
||||
(setq modulus 65536
|
||||
multiplier 25173
|
||||
increment 13849
|
||||
seed (rem (+ (* multiplier seed) increment) modulus)
|
||||
random (/ seed modulus)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defun dtr (a)
|
||||
(* pi (/ a 180))
|
||||
)
|
||||
|
||||
|
||||
(defun rtd (a)
|
||||
(/ (* a 180) pi)
|
||||
)
|
||||
Reference in New Issue
Block a user