JakeSliv Posted December 21, 2017 Share Posted December 21, 2017 I've got 60 hybrid objects (pipe shaped) crossing at a single point. I need to rotate them in space relative to the center point in all planes to fill the sphere in a random pattern. Is there a shortcut for that? Thanks Jake Quote Link to comment
JakeSliv Posted December 21, 2017 Author Share Posted December 21, 2017 I've got 60 hybrid objects (pipe shaped) crossing at a single point. I need to rotate them in space relative to the center point in all planes to fill the sphere in a random pattern. Is there a shortcut for that? Thanks Jake Quote Link to comment
markdd Posted December 21, 2017 Share Posted December 21, 2017 Are you using the Lighting Pipe tool? Quote Link to comment
Pat Stanford Posted December 21, 2017 Share Posted December 21, 2017 Hybrid Objects can only be rotated in plan view (around the Z axis, so that only the X and Y values change). If you really need to rotate them in 3D, you will need to use pure 3D objects. I don't know of any short cuts in VW to do what you are asking. If this is a one time project I would just do it manually. If this is something that you will have to do repeatedly, then it might be worth looking at a script or Marionette. Are all the objects Identical? Quote Link to comment
Vectorworks, Inc Employee Matt Panzer Posted December 22, 2017 Vectorworks, Inc Employee Share Posted December 22, 2017 As Pat mentioned, Hybrid objects cannot be rotated off the ground plane. They can only be rotated around the Z axis. If that's all you need, one of these scripts should do it for you. This script will rotate selected objects about their centers (center of their bounding box): PROCEDURE MAIN; FUNCTION RotateIt(h :HANDLE) :BOOLEAN; VAR x, y, ang :REAL; BEGIN HCenter( h, x, y ); ang := Random * 360; HRotate( h, x, y, ang ); END; BEGIN ForEachObjectInLayer(RotateIt, 2, 0, 4); END; RUN(MAIN); This script will rotate selected symbols and plug-in objects about their insertion point: PROCEDURE MAIN; FUNCTION RotateIt(h :HANDLE) :BOOLEAN; VAR x, y, ang :REAL; BEGIN GetSymLoc( h, x, y ); ang := Random * 360; HRotate( h, x, y, ang ); END; BEGIN ForEachObjectInLayer(RotateIt, 2, 0, 4); END; RUN(MAIN); Quote Link to comment
JakeSliv Posted December 22, 2017 Author Share Posted December 22, 2017 (edited) Thanks for your help! These are indeed hybrids, because they consist of a pipe with a lightbulb at each end and they should be rotated in two planes, so I get what resembles a sphere. Jake. Edited December 22, 2017 by JakeSliv Quote Link to comment
Pat Stanford Posted December 22, 2017 Share Posted December 22, 2017 If they are hybrid objects in the Vectorworks sense of the word meaning they have different representations in 3D view and Top/Plan view (think walls, doors, windows, Spotlight lighting instruments and truss objects), then you will not be able to rotate the objects except around the z-axis. If they are hybrid in the sense that they are multiple objects combined together (group or symbol), but each individual piece is in 3D, then you will be able to accomplish what you want. Quote Link to comment
JakeSliv Posted December 23, 2017 Author Share Posted December 23, 2017 I see. Thanks Pat! Does that mean, that if I delete the 2D representation from a symbol it will be possible to rotate it? J Quote Link to comment
RickR Posted December 25, 2017 Share Posted December 25, 2017 Note further: if you place 2D elements on the 'layer plane' rather than 'screen plane' so that they are considered 3D you can include things like text, dimensions, hatches that are technically 2D. Quote Link to comment
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.