I am building a homemade ROV as a hobby. All designed in SOLIDWORKS. For structure, I want to use PVC pipes and fittings, which is a very common solution for homemade ROVs. I have an educational license on my home computer, so no add-ins, no Routing, which would probably be an obvious choice for this. Here are a few screenshots of what I did so far.
So, I'm wondering what the best strategy to model such a thing. The most obvious choice is multibody Weldments, which is how I did it right now (and not happy about it). 3D skeleton sketch for the lines, and then a custom profile for the PVC pipes. However, fittings are a total nightmare. I did them with Library Features, but you know how Library Features are
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
And if the fitting model changes... Oh boy, good luck fixing all these different Library Features.
I am attaching this .SLDPRT to this topic if you want to take a look at how I did it. The problems will be obvious and glaring. To add on top of that, Exploded Views don't work well with multibody parts - limited options compared to Assembly exploded views, can't be animated, etc.
I wonder what alternatives there are. If staying on the multibody approach, I suppose the frame could be done with Weldments, and the fittings could be done with Import -> Part. However, they would have to be positioned with Move/Copy feature, and we all know how much "fun" that is
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
Perhaps, alternatively, pipes could be done in a multibody part, fittings added in an assembly, and then part edited in context to use the cut planes of the fitting components for the Trim/Extend feature. Or maybe even Smart Components (have the fittings do the cutting).
I have not tried Structure Systems yet. Is it even worth investigating, would it provide any advantage to fittings problem?
I suppose I could also do such a frame as a Top-Down Assembly, meaning, creating a 3D skeleton sketch, and then a bunch of virtual components (each copying one line from the skeleton sketch, and then using Weldments), and the fittings could be Smart Components that trim these pipe components. When the final number of components is known, these virtual components could be saved to separate files. However, this wouldn't work for fittings that split a single pipe into multiple pipes, like these 45° joints in the pics above. I would have to know beforehand how many pipe sections I need in any particular location, and this would disrupt otherwise a very fluent workflow. Moreover, this approach wouldn't be very convenient for major modifications and re-design of the frame (compared to multibody Weldments), because then I would have to delete or repurpose these components, create new ones, deal with lots of lost references...
Do you have any comments on this? Perhaps there is a better solution than the ones I've tried? I know that this is a super simple project, so honestly it doesn't really matter that much, but I want to learn the best solution to this problem in general, so that it could be scaled and used on more complex projects, and suggested to customers, who might also find Routing to be an overly expensive overkill for their needs
![Smile :)](./images/smilies/icon_e_smile.gif)
Attaching the SW file for reference.
EDIT: I tried the Top-Down Assembly method as well (with Smart Components). Damn it is cumbersome (compared to multibody Weldment approach). Mirroring and patterning is really a headache, and requires trickery. For example, SW doesn't allow to mirror fittings if they are Smart Components... But if you turn them Lightweight, then you can mirror them. And for some reason, you can't mirror a Smart Feature inside a part (for example, to get an identical trim on the other side of the pipe - you have to cut the pipe in half with Cut With Surface, and then use Mirror Bodies. All of this is doable, but really time consuming, and would require lots of re-work if pipe structure would be changed, like one of the member split into two, etc.
Check out the attached Frame.zip for this attempt.
Really looking forward to any suggestions on how to do this better in Assembly mode
![Smile :)](./images/smilies/icon_e_smile.gif)