Jump to content

Recommended Posts

Posted

This works good but, I would like to have the 2 objects rotate clockwise..not Counter clockwise

 

(defun c:90R( / e f p a b c i)

(vl-load-com)

(setvar "cmdecho" 1)

(setq e (vlax-ename->vla-object (car (entsel "\nSelect object: "))))

(setq f (vlax-ename->vla-object (car (entsel "\nSelect object: "))))

(setq p (getpoint "\nSelect rotation point: "))

(setq a 1 ; Number of revolutions

b 1 ; Degrees per increment (must be a factor of 90)

c 01 ; Delay between incremental rotation

i 0) ;

(if (= 0 (rem (setq d (/ 90 b)) -1))

(while (

(repeat d

(vla-rotate e (vlax-3d-point p) (* (/ pi 180.0) b))

(vla-rotate f (vlax-3d-point p) (* (/ pi 180.0) b))

(vl-cmdf "delay" c "regen")

)

(setq i (1+ i))

)

)

)

Posted

You will get a better and faster response if you post in the correct area of the forum.

 

Question moved to the Lisp section.

Posted

Just change your angle to a negative number. Hell, make 180. -180.

Posted

djw

Try to use # button to paste your code to be readable as a code

 

LIKE THIS

Posted

Hi

Here it goes,

(defun c:90R( / e f p a b c i)
(vl-load-com)
(setvar "angdir" 1)
(setvar "cmdecho" 1)
(setq e (vlax-ename->vla-object (car (entsel "\nSelect object: "))))
(setq f (vlax-ename->vla-object (car (entsel "\nSelect object: "))))
(setq p (getpoint "\nSelect rotation point: "))
(setq a 1 ; Number of revolutions
b 1 ; Degrees per increment (must be a factor of 90)
c 01 ; Delay between incremental rotation
i 0) ; 
(if (= 0 (rem (setq d (/ 90 b)) -1))
(while (< i a)
(repeat d
(vla-rotate e (vlax-3d-point p) (* (/ pi 180.0) b))
(vla-rotate f (vlax-3d-point p) (* (/ pi 180.0) b))
(vl-cmdf "delay" c "regen")
)
(setq i (1+ i))
))
(setvar "angdir" 0)
)

 

Regards

Tharwat

Posted

Check Red code

Why did you select object 2 times (e and f)

(defun c:90R( / e f p a b c i)
 (vl-load-com)
 [color=red](defun *error* (msg)[/color]
[color=red]   (and uFlag (vla-EndUndoMark doc))[/color]
[color=red]   (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")[/color]
[color=red]       (princ (strcat "\n** Error: " msg " **")))[/color]
[color=red]   (princ)[/color]
[color=red])[/color]
[color=red](setq OldCMDEcho (getvar "cmdecho") ; Save System Variable[/color]
 (setvar "cmdecho" 1)
 (setq e (vlax-ename->vla-object (car (entsel "\nSelect object: ")))
         f (vlax-ename->vla-object (car (entsel "\nSelect object: ")))
         p (getpoint "\nSelect rotation point: ")
         a 1 ; Number of revolutions
         b 1 ; Degrees per increment (must be a factor of 90)
         c 01 ; Delay between incremental rotation
         i 0) ;
 (if (= 0 (rem (setq d (/ 90 b)) -1))
   (while (< i a)
     (repeat d
       (vla-rotate e (vlax-3d-point p) (* (/ pi 180.0) b))
       (vla-rotate f (vlax-3d-point p) (* (/ pi 180.0) b))
       (vl-cmdf "delay" c "regen")
       )
    (setq i (1+ i))
     )
   )
      [color=red](setvar "cmdecho" OldCMDEcho) ; restore System Variable[/color]
[color=#ff0000]      (princ)[/color]
 )

Posted

Why this?

 

[color=red](and uFlag (vla-EndUndoMark doc))[/color]

 

Or was it just a copy/paste job from my code? :glare:

Posted

Seems like that but there was a code line I didnt paste.

 

(setq uFlag (vla-EndUndoMark doc))

 

Any way welcome back

Posted

Thought I was post’n in the correct place? AutoCAD Forums> AutoCAD Customization> AutoLISP, Visual LISP & DCL

Anyhow think U-all for the reply’s.. Alanjt (–180) seems to work,

just try’n to learn, could you translate to plane English?

(vla-rotate e (vlax-3d-point p) (* (/ pi 180.0) b))

 

“(vla-rotate e” =Selected object

e

 

 

“(vlax-3d-point p)”=get 3D x y z of Selected object

e, what doses the “p” do?

 

 

“(* (/ pi 180.0) b))”= ???? 180 = Counter clockwise

-180 clockwise ??????

 

ya I know just try’n to learn..

Asos2000, object 2? Rotating two objects @ the same time..

thanks again…

Posted

“(vlax-3d-point p)”=get 3D x y z of Selected object

e, what doses the “p” do?

 

Read the help file on vlax-3D-point, it creates a variant ( 3-element array of doubles ) from the point 'p'.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...