Show full version of the posting: Dynamic Rotate
I am using ACAD 2009 Lte. When I do a copy command for a symbol,how can I automatically have a dynamic rotate of the symbol ?I would like to copy and at each location for placing the symbol be able torotate the symbol as desired automatically without entering any additionalcommands? Would I need a macro for this? Or is there an easy change that can do this?Thanks H. Hampton.
It could be made more sophisticated if you weren't using Lite, with AutoLISP functions, but yes, you can do that with a macro. This will require the User to pick 1) the Block [I assume that's what you mean by "symbol"], 2) its insertion point as the basis for both the Copy and Rotate parts, 3) the new location for the copy, and 4) the rotation of the copy. It will do it repeatedly as many times as you want, but will require selecting one to Copy each time [with AutoLISP it would be able to automatically re-select the first one].
*^C^CCOPY \ INS \\ROTATE L ;@ \
If the Blocks you would do this with do not contain anything in them that has its own insertion point [such as Text or nested Blocks], you can have it automatically get the insertion point for you, and save you a step:
*^C^CCOPY \ INS @ \ROTATE L ;@ \
But if they do contain anything nested that has an insertion point, when you pick the Block on that nested part, it will find the nested part's insertion point, rather than the overall Block's insertion point [or even if you pick it on some other part but the nested part is within Object-Snap range and its insertion point is closer than the overall Block's]. So either use the first macro with its extra step, or be careful about where you pick the Block.
Also note that the rotation of the copy will start the same as that of the one selected to Copy, and the Rotate operation will go from there, not from the Block's own zero rotation. So you'd do best by having one at zero rotation that you can select repeatedly to make multiple copies, rather than [for example] each time selecting the last copy you made.
They both depend on the User successfully selecting something, and on its being a Block [actually, it would work with other object types, but might have unexpected results for things that don't have insertion points], and on its not being on a locked Layer. AutoLISP would be able to make allowance for the possibility that you might miss, or pick the wrong kind of object, or pick something on a locked Layer.Kent Cooper2014-08-13 16:21:19
If you want it to be dynamic wouldn't you have to build that kind of functionality into your block?For example I have a North arrow with a rotation parameter that allows me to position it pointing up, down, left or right. If I copy the arrow into another drawing the functionality is still there but I first have to click on it to enable the "dynamic" feature that was built in.
John Connor2014-08-13 18:23:42
What you're looking for is a dynamic block of a north arrow. I just uploaded a couple that do what you are looking for. I'm not sure if they will work in CAD LT, but you can try them. if they do work, then create the blocks that you need with the same dynamic parameters.
[QUOTE=John Connor]If you want it to be dynamic wouldn't you have to build that kind of functionality into your block?For example I have a North arrow ....[/QUOTE]
If you read their description again, [I can't be positive, but] I think they are not using the word "dynamic" in the sense of AutoCAD's term "dynamic Block," but in the sense of visibly seeing the result dynamically [in this case, as they drag the cursor around for a rotation], on top of building the rotation into something so they don't need to go through all the steps to copy and rotate manually. Making multiple copies in the same drawing and being able to rotate each separately as it's copied does not sound to me like something one would ever want to do with North Arrows.
But a confirmation from the OP of whether I am correctly interpreting their intent would be helpful.Kent Cooper2014-08-13 20:53:30
"but in the sense of visibly seeing the result dynamically [in this case, as they drag the cursor around for a rotation], on top of building the rotation into something so they don't need to go through all the steps to copy and rotate manually."I believe you are correct. Suppose I have a rectangular office are, and want to place a symbol from my pallet on each of the four walls. First I will pick a symbol (block) from the pallet and add to one of the walls. Then I would like to use a copy/rotate command (one operation) to place the block (symbol) on the other 3 walls or other areas in the drawing as needed. Your macro looks like it will work. Thanks.