I'm trying to do something similar to the 3d door swing which comes with the delivered paz's. I don't seem to be able to hold my mouth right in order to re-create the effect. I know it must have something to do with the directional or planar constraint to a Path2d as well as the positioner setting for the component. But this one boggles me. Can anyone tell me how Bentley did it? I'm attaching the portion of a ABD door which has the 3D opening angle constraint as an example of what I'm trying to do.
Using the delivered DoorSingleFlush as an example, the swing is a component comprised of three linear elements, and the width of this component is defined as \DoorLeaf1DesignWidth so that it always matches the value of that property.
Steve, Thanks for having a go at answering my question. However, I posed my question so poorly that you didn't stand a chance in Heck of giving me anything like the answer I'd hoped for. So, let me try again.
First, I was trying to make a roof hatch that had the capability of setting a 3D swing for the door. That way, I could set the angle to, say, 90-degrees and it would display as open in the model. So, I'm trying to solve how you guys do that with your doors in an effort to reverse engineer what I need to do to accomplish this. I can create the two lines and specify the parametric angle between them. In the example of the DoorSingleFlush, this is the component named Seg_3DLeaf1Swing_1.
My problem comes when I try and use positioners to place the door leaf component on the opening path and the swing angle path as shown here in the DoorSingleFlush example:
I can get it the positioner to connect on the hinge side of the door opening path, but I cant get the door to connect to the door angle component. When the door leaf component is created, if the path was orthogonal (x-y plane), then PCStudio's "planar constraint" forces it to plane it was created in. I cannot get the positioner to proper identify itself with the Seg_3DLeaf1Swing_1 component so that it will swing. I've tried creating a door out of plane, but then I run into other problems in making the attachment.
I think the door component must be made out of plane to make the whole thing work, but even when I do this, I don't seem to be able to make the proper connection with the swing component. As I said earlier, I know it must have something to do with the directional or planar constraint to a Path2d as well as the positioner setting for the component.
I don't know if I explained it any better. Hopefully I did. And if I did, any suggestions as to how to make this work?
I'm still a little unclear... Could you elaborate on "... I cant get the door to connect to the door angle component", in particular the aspect "door angle component"?
It is true that PCS wants to generate its geometry parallel to the active view rotation, so a door leaf created from a front view will be perpendicular to the top plane. In that context I'm not sure how you're placing the PosGeom, but now I do wonder if those preferences you asked about in the other thread might be relevant. For example, if you were to set the PosGeom (line) so that the Edge Angle is Perpendicular instead of Tangent, does that make a difference?
Thanks for your time! I'm still using DoorSingleFlush from the US DataSet for this discussion, so you can open the PAZ and see the elements I'm writing about and hopefully follow along.
The "door angle component" is Seg_3DLeaf1Swing_1. It is literally a PCStudio component. The component consists of two lines (paths) and one is parametrically defines as an angle off of the other. One of the lines is named RefPath_Leaf1Reference_3D (CreateParh_2) and the other is named RefPath_Leaf1_3d (CreatePath_4). Leaf1Angle3d and Leaf Angle3dMax control the angle between the two paths using the formula 180-between(\Leaf1Angle3d,0d,\LeafAngle3dMax-.0001). The path RefPath_Leaf1Reference_3D is "on" the path Seg_DoorLeafPlacement_1. And, the door component positioner is "on" RefPath_Leaf1_3d of the Seg_3DLeaf1Swing_1 component. This is what makes the door swing open in 3d.
Give the variable Leaf1Angle3d a value, say 45. Hide the door leaf so you can see the door angle component (Seg_3DLeaf1Swing_1). Show the door leaf again. Click twice on the door to revel the positioner parametrics. You can see the positioners are "on" the door opening path as well as the doo angle component.
I can make the equivalent of the "door angle component" (Seg_3DLeaf1Swing_1). But I can't get the door to position "on" it and the frame opening. I can position the door on one side of the door opening path, but I can get the door to position "on the door angle component.
In order to align to a swing angle component or frame opening,
they must be in a snap set first.
If you right click on swing component there is an option to add to snap set.
It should turn to red dashed. Then when you move door component path close to snap set element
it will try to align with angle component.
If you want to add nested elements of a component to a snap set, find element in component tab
and right click. This way individual elements can be added without adding entire component to snap set.
There is also a "Snap Set" icon that can be used add an item to a snap set or to clear all snap sets by clicking in space.
Dan, Thanks for the reply.
Yes, they must be part of the snap set. Making a snap set isn't the problem. Have patience with me, because I'm having trouble describing the problem I have.
I can add the frame opening path (in the case of DoorSingleFlush PAZ this is RefPath_DoorLeaf of component Seg_DoorLeafPlacement_1) and door swing angle path (in the case of DoorSingleFlush PAZ this is RefPath_Leaf1_3d of component Seg_3DLeaf1Swing_1 ) to a snap set, but I can't make the door positioner be "on" the frame opening, and "on" the door swing angle path in such a way that the door will open when I change the angle variable.
To replicate my problem, you can start by opening the DoorSingleFlush PAZ file from the US DataSet and save it as a .pac. Open the .pac file delete the door leaf component (CMP_DoorSingleLeaf1_Flush_1). Attach a component library with a door leaf component. Place the component in the file and attempt (in my case, every way my simple brain can think of) to position the door leaf on the paths RefPath_DoorLeaf and RefPath_Leaf1_3d in such a way that changing the variable Leaf1Angle3d will swing the door open.
If you can do that, then I would like to know the method you used to accomplish it. That's my question. How can that be done? I'm assuming I'm missing some fundamental concept about positioners. Or perhaps I'm missing some knowledge of how components act when they are created in or out of plane.
Thanks in advance.
Take a look at attached video.
It shows how I attach door component to a swing component.
Tom, Wow, you made me look like an idiot! (;o) Smiling) I tested this out before I used it as an example, but used 45 degrees instead of the 90 degrees you used and it wouldn't position. I used the 90 degrees you used and it worked like a charm. At any rate it doesn't answer my question as I still can't get my roof hatch cell to work. I'm attaching it as a zip containing the roof hatch PAC and the roof hatch door as a PAC. Maybe you can point me to the error of my ways. Thanks in advance for any help!
I believe you have run into limitation of an Auto component.Auto components want to maintain plane used during creation. A door leaf wants to maintain a vertical orientation.
You are trying to create an object that moves from a horizontal plane to a vertical plane.The only way I know that this can be achieved is with a Rigid Component.A rigid component will have an anchor point a normal direction and a rotation direction that can spin around the normal.
When you create rigid component, the normal would be along the hinge and rotation direction would be along the narrow part of door.
It will act like shown in video.
Answer Verified By: Tom MacKnight
Dan, Thanks for your time. I thought it might be a planar problem. I know Auto Components were planer, and I tried creating the door leaf every which way but loose. Well, actually I tried it Loose too - I created a path on a tapered extrusion and used that path to create a door to see if off-axis plane would work. I considered playing with Rigid Component but hadn't gotten that far. I'll try to use the Rigid Component method, but I'll go ahead and mark this one answered. Once again, thanks for your and Steve time.