Jump to content

Rotate-Copy-Reference


nestly

Recommended Posts

A frequent task I need to do is Rotate/Copy an object to specific points around the perimeter of an arc/circle, and the best way I've found is to use Rotate with the [C]opy and [R]eference options, however this is a bit tedious particurally on large diameter arcs. I've written a macro to automatically activate the Copy and Reference options, but I still have to pick the rotation basepoint, (center of arc), then repick the same point for the first reference point, then the 2nd reference point, and finally the destination point. What I would like is some help making a macro or lisp that automatically uses the Rotate basepoint as the first reference point, and then repeats so I can pick multiple destinations without re-issuing the command and re-selecting the arc center as a basepoint. My current procedure is demonstrated below.

 

Any help would be much appreciated, thanks

 

Rotate-Copy-Reference.gif

Link to comment
Share on other sites

  • Replies 23
  • Created
  • Last Reply

Top Posters In This Topic

  • steven-g

    4

  • SEANT

    3

  • nestly

    3

  • Tuns

    3

Top Posters In This Topic

Posted Images

I would imagine you actually create more than 2 copies, if so would it not be an option to create a block from your object with its base point on the curve, and then use either the divide or measure commands with the option of placing and aligning the block at the required points. (I did a video but it came out at 16MB so you will have to make do with a sketchy description :lol:)

Link to comment
Share on other sites

Objects might not be spaced at equal intervals thus negating the use of Measure and Divide.

True and I did consider that, just throwing out an idea is all. I even thought of creating a block with an alignment to deal with that scenario, but then I thought Nahhh! that's getting long winded :)

Link to comment
Share on other sites

@ SEANT, that works fantastic for a single instance. :notworthy: If I could specify multiple destinations (2nd point) within the same command then it would be perfect for my application.

 

 

@ Tuns, my "old" macro was _Rotate;\C;R;\\\

 

@ Steven, the block idea would work as long as the insertion point for the rotated object corresponded to the center of the arc/circle (via grip rotate/copy). Nice suggestion... its probably less work than how I had been doing it, but still more than what I was hoping for. ;)

 

@ ReMark, yes spacing is typically unequal, so measure/divide wouldn't help in this instance.

Link to comment
Share on other sites

Chaining multiple copy/rotates might be difficult with just the macro mechanism. I see you have 'Application: AutoCAD not applicable' in your avatar details. What does that mean? Is autolisp an option?

Link to comment
Share on other sites

An explicit Reference call isn't required if the starting angle is zero. One technique is to copy all of the objects on top of each other, then ROTATE them one at a time. Even if you do not need an object at the zero angle, the last rotation should be take care of that, if you have only just enough copies for your purpose.

 

Also the COPYing is fairly quick as you do not need to select points, just the object and then default through. Or you could make a macro for that as well.

 

A LISP routine would be quicker, if your AutoCAD version can use it. In that case you could enter the center of rotation just once and you could handle multiple objects much easier.

Link to comment
Share on other sites

Thinking on it just a bit more, the ROTATE Previous Copy from a zero angle ought to be useful in this case, and would work for multiple objects. Perhaps set it up with the SELECT command first and then repeat the macro?

 

Oops! Did I just practically say what Seant wrote at the beginning? Well, almost. I was suggesting to keep the initial SELECT separate from the main macro.

 

Anyway, if you can use LISP, then there must be some sort of Polar or Radial Copy out there.

Link to comment
Share on other sites

I can't seem to find a way to do this with a macro. You could array but you probably already know that. Neophoible is right, there is probably a good LISP out there that's exactly what you need.

Link to comment
Share on other sites

You can do this quickly without a macro using grips.

Pick the rectangle, pick a grip, hit enter twice, C, B, pick center point, pick as many times as desired.

Link to comment
Share on other sites

You can do this quickly without a macro using grips.

Pick the rectangle, pick a grip, hit enter twice, C, B, pick center point, pick as many times as desired.

That does look like a winner.

Link to comment
Share on other sites

Wow, thanks for all the replies guys. I got really busy after I posted so I just now got a chance to read everyone's replies.

 

Regarding my version... I guess I should just change it back to plain AutoCAD... I have BDSS2014 which has several "flavors" of which I use mostly AMEP2013, but vanilla AutoCAD2011 is still what I use most of the time, so yeah, lisp is certainly an option, I was just hoping to keep it as simple as possible. eldon's method is precisely what I had in mind, however it seems only to be effective when the object lies in the positive X-axis from the basepoint, which would be rare in my application. I suppose temporarily re-orienting the UCS would still be a vast improvement over what I had been doing. Ditto for the suggestions of rotating multiple copies.

 

I've think I've received enough good suggestions that I can figure out which is going to work best, but I certainly wouldn't be opposed to a routine that behaves like eldon's method, but isn't UCS dependent and doesn't require activating a hot-grip.

 

Sincere thanks to everyone, you guys are great! :)

Link to comment
Share on other sites

Back to the block method, you ned to change the UCS so that the insert point is on the +ve X side of the block, select the object as your block and the base point on your arc. Switch UCS back to world and insert with the options to pick insertion point and rotation on screen, insert point is on your arc and rotate to the centre of the arc each time.

1.png

2.png

3.png

4.png

5.png

6.png

7.png

8.png

9.png

10.png

Link to comment
Share on other sites

this is almost totally irrelevant but i thought if ppl didn't know the grips thing, they might not know this:

 

there is a command MOCORO which moves, copies and rotates in one. i have never used it, but it's gotta be worth a point in your christmas cad quiz!

Link to comment
Share on other sites

You can do this quickly without a macro using grips.

Pick the rectangle, pick a grip, hit enter twice, C, B, pick center point, pick as many times as desired.

 

The kludge meister, he'll be back. :beer:

rkent, one day you'll have to teach us all the secret handshake. :)

Edited by Dadgad
Link to comment
Share on other sites

And here is a macro that lets you change the UCS to align to the object, select the object, creates a block called "a", lets you pick the insertion point resets the UCS to world and then starts the insert command, prompts for the insert point for the original object again, and the rotation point is the centre of the arc.

 
^C^CUCS;\\;select;\-block;a;\ucs;w;insert;a;\;;

Link to comment
Share on other sites

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...