nestly Posted December 17, 2013 Share Posted December 17, 2013 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 Quote Link to comment Share on other sites More sharing options...
SEANT Posted December 17, 2013 Share Posted December 17, 2013 Give this a try: ^C^C_Select \rotate previous ;\c;r @; Quote Link to comment Share on other sites More sharing options...
Tuns Posted December 17, 2013 Share Posted December 17, 2013 Nestly, you have something like this: Rotate;\;\; you should just change it to Rotate;\;center;\; or something. Quote Link to comment Share on other sites More sharing options...
steven-g Posted December 17, 2013 Share Posted December 17, 2013 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 ) Quote Link to comment Share on other sites More sharing options...
ReMark Posted December 17, 2013 Share Posted December 17, 2013 Objects might not be spaced at equal intervals thus negating the use of Measure and Divide. Quote Link to comment Share on other sites More sharing options...
steven-g Posted December 17, 2013 Share Posted December 17, 2013 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 Quote Link to comment Share on other sites More sharing options...
ReMark Posted December 17, 2013 Share Posted December 17, 2013 I too thought of Measure and Divide but discounted it for the reason I posted. Quote Link to comment Share on other sites More sharing options...
nestly Posted December 17, 2013 Author Share Posted December 17, 2013 @ SEANT, that works fantastic for a single instance. 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. Quote Link to comment Share on other sites More sharing options...
SEANT Posted December 17, 2013 Share Posted December 17, 2013 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? Quote Link to comment Share on other sites More sharing options...
neophoible Posted December 17, 2013 Share Posted December 17, 2013 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. Quote Link to comment Share on other sites More sharing options...
neophoible Posted December 17, 2013 Share Posted December 17, 2013 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. Quote Link to comment Share on other sites More sharing options...
Tuns Posted December 17, 2013 Share Posted December 17, 2013 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. Quote Link to comment Share on other sites More sharing options...
rkent Posted December 17, 2013 Share Posted December 17, 2013 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. Quote Link to comment Share on other sites More sharing options...
Tuns Posted December 17, 2013 Share Posted December 17, 2013 That is pretty neat. Why is it that they don't make the standard rotate command do this? Quote Link to comment Share on other sites More sharing options...
SEANT Posted December 17, 2013 Share Posted December 17, 2013 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. Quote Link to comment Share on other sites More sharing options...
nestly Posted December 17, 2013 Author Share Posted December 17, 2013 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! Quote Link to comment Share on other sites More sharing options...
steven-g Posted December 18, 2013 Share Posted December 18, 2013 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. Quote Link to comment Share on other sites More sharing options...
designerstuart Posted December 18, 2013 Share Posted December 18, 2013 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! Quote Link to comment Share on other sites More sharing options...
Dadgad Posted December 18, 2013 Share Posted December 18, 2013 (edited) 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. rkent, one day you'll have to teach us all the secret handshake. Edited December 19, 2013 by Dadgad Quote Link to comment Share on other sites More sharing options...
steven-g Posted December 18, 2013 Share Posted December 18, 2013 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;\;; Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.