chrisb wrote: ↑
Thu May 16, 2019 5:52 am
SixHourDays wrote: ↑
Wed May 15, 2019 11:25 pm
Also - should I build it differently altogether?
Not altogether, but there are some aspects to consider.
Instead of repeating the length of Pad002 you could use Expressions
to reuse the length of Pad001.
After reading bejant's post I head a look at the dependency graph as well, and found more issues there:
You reference the ShapeBinder SBRightWall from two different bodies. That's not allowed. A ShapeBinder is like a proxy of its source object to be used in one body
. You will have to create a ShapeBinder in each of them.
And there is something which should not have happened: body RighWall has no origin. Do you have any idea how that could have happened?
@other_forum_members: There was a post with some python code to recreate origin. Has someone a link to it?
Thank you all for being welcoming and helpful - these parts of the internet get rarer every day.
Bejant, Meme2704 - I will get to your replies, once I get the following sorted
chrisb: I'd like to understand the 'proper' way to build this; so lets go over what I should
do for some parts of this diagram.
Firstly, the origin - as I recall, I literally just made an XY plane sketch in an otherwise empty file to start off the Rightwall. But, later, I Mirrored that body to make a LeftWall - which I deleted for the file I provided (you have a simpler file than my real one here). Could that have nuked the origin? I thought it was weird that LeftWall assumed Rightwall as a child.
Next up: dependency graph. Yes, it's a mess - this is because I'm abusing ShapeBinders from ignorance. Here's my real workflow: make a shapeBinder of a body I want to reference, then move the shapebinder to a temp body (collecting several shapebinders there). I do this so that I can link to the external edges of multiple other bodies (sometimes you want to use 2 or 3 shapebinder edges in a sketch). Then with the sketch done, I copy the sketch out to a new Body - it asks what kind of link I want, I say reference. And now, I have a sketch in a new Body, ready to pad, but still referring to the varying SB's (so if I change earlier Bodies the sketch updates appropriately).
Here's how I arrived at that workflow - all I really wanted to do was build MarqueeUpper, referring to edges in RightWall. But in a new Body, you can't link to external edges of another body. Ok so what if we build the MarqueeUpper sketch inside
of RightWall, then copying the sketch out into a new Body? Unfortunately this copies the whole Rightwall with it from dependency, so I don't want that either.
This is when I found ShapeBinders - which are quite buggy to create, by the way. If you rotate the camera while creating them, it's broken until you reload the file... not fun. Picking a face also doesn't seem to work. The only way I could create them succesfully was to do the vertex & edge picking version. So I create a shapebinder - and again unfortunately, you still can't refer to it from another Body!
Because there will be roughly 10 crossmembers, I didn't want to go through the buggy ShapeBinder creation that many times, certainly not to make one for every time I refer to RightWall
... so I figured out how to reuse them with some sneaky moves between bodies. This (in my head) essentially makes an N:1 link between sketches and shapebinders. That's not ok to do? Can I ask why not? If I'm reading your implication right, I'm supposed to create a ShapeBinder inside MarqueeUpper referring to RightWall, and again create one inside MarqueeLower referring to RightWall?
Finally - yes, I will use an Expression to link all the cross member lengths to Pad001