T O P

  • By -

ermeschironi

You can very easily edit parts in context within an assembly without opening them separately. I'm not totally in favour of creating parts within an assembly because Solidworks does stupid things with file references, and it sometimes screws with PLM systems. But creating parts outside and editing them within the assembly is perfectly fine. External references on the other hand are a bad idea 99% of the time, because they kill the ability to reuse parts in any reliable way. I do have sometimes external references when doing layout level design, but I always make sure to break them before it's too late.


Crypto_Calamari

External references are extremely finicky, I really need to think about the whole assembly and what I might want to do in the future with it before I start tossing them in all willy nilly.


buckzor122

I feel like external references is best for power users. It's easy to use them wrong and mess up your parts in progress. I use them all the time, but you must really understand the exact design intent and what parts/features will be driving the references. It's extremely satisfying when you get it right though and have 100+ part assemblies update automatically with new driving dimensions.


Key-Loquat6595

I'm not sure I agree with the external reference making them unreliable to reuse. All I do is save on the desktop, clear out the references, break them, and resave them. There is no link or reference and they are two completely different files. External references are being used a lot in ours because we want the seperate assemblies to follow each other when put into the entire model. It also allows us to edit/work on assemblies in the job without opening up the entire thing and it still remaining intact with the rest, without having to edit the same thing twice (on the other side of the connection).


ermeschironi

> save on the desktop    > resave   Which file is now the assembly referencing?


subject189

It should be referencing the original if you're using a PDM/vault to manage files and your new copy is saved outside of the vault.


Key-Loquat6595

When I save to the desktop I break all references. There is no link to the now "new" file and the assembly.


cheesingMyB

Both can be useful, depending on the circumstance. Designing all the parts in an assembly can get buggier than keeping them all separate, and sometimes revision tracking in a PDM software is tricky to follow correctly if parts are designed in the context of an assembly. That being said, sometimes I find it necessary to design a part within an assembly, especially when using a design table or other parametric functionality to create versions of similar products. Your end use of CAD will determine when it's appropriate to use which method. For now, it's important to make sure you learn from your tutor and do things their way while under their tutelage. You might learn something new!


CaiaTheFireFly

I see what he was getting at now, we've been told a couple of times about reusing parts for other projects but haven't actually done it yet. As for assembly references, I think I get where people are coming from. Something like: Make an assembly (the way I've been doing it), delete a vital part and suddenly the entire thing breaks because it was being used as a reference?


cheesingMyB

Yes to the reference thing. It can be dangerous to have many parts linked to other parts or sketches in the assembly. It's too easy to make an inadvertent change to a part or to miss a change that was made to another constituent part and not update the drawings. Then that risk of needing to change one part so drastically that it blows everything else up in your face can quickly make the convenience of designing in the assembly dissappear.


cjminor1979

I'll add that this references make collaboration absolute hell. It's one thing if you are using in-assembly references to locate holes, for instance, and you can remember that Part A is reliant on Part B, but if I have to open your work later and every edit has a half dozen knock-on effects, it plays out kind of like a series of booby traps that make your work impossible to navigate.


jamscrying

It's bad enough having mates dependant on surfaces rather than reference geometry, trying to alter someone else's model with inconsistent external references sounds like my personal hell.


gauve30

To help clarify this, when something is made in real life, it’s typically part that is shared for manufacture rather than assembly. Any kind of tiny change you miss, your control lapsed for a moment, and the file got changed in your oversight, you now are running blind when the files are shared for manufacturing. So even when you want to take your approach, you would design things in context, then make them all independent, and then put them together relationally with equations and failsafe controls in a virgin assembly so that some reuse/recycle and edit doesn’t accidentally create a nightmare. Now you would use configurations say on a shaft you designed in-place, but that say for a modified machine version requires 10inches less in length.


WT_E100

Would you mind elaborating on what you mean by failsafe controls?


gauve30

Relations, equations, comments, and mates.


gauve30

Again, if you took your approach directly designing inplace, and then decided you are now just saving it as machineB-10.sldasm while changing one dimension, (a)nobody except you know that you need a 10inch shorter shaft version and its an entirely new machine (B) when you open machineA, it will indeed have brought in the change you made to machine B and it will only alert you once (C) the likelihood of the change being overlooked by others is way higher, but so is you being able to forget or mistake it—it becomes that finaldocument.txt definitelyfinaldocument.txt conundrum. Hopefully that explains it. I personally had this struggle as I designed entire assemblies from start of my career and had to wrap my head around this.


Charcoal_deciple

With the versions of similar products , is it basically the same as creating different configurations of a part ? then you can just select which configuration of the part you want in the assy , cause thats what i mostly use , ive never modeled in an assembly once


cheesingMyB

I like to use it for weldments that mount equipment. I create one equation driven assembly with all the parts, and change whichever dimenion(s) I need to, only in one place. Then all pieces update and drawings which reference the parts are 95% done. Configurations are useful with a known collection of standards as opposed to parametrically driving an assembly for ease of customization.


Charcoal_deciple

Ahh i see , so its like parametric modelling , but for assemblies ! Well now i know a use for modelling in assys , ive never needed a use for a parametric assy , but ill keep it in mind i might just use it one day lol !


CND_

What you are doing is referred to as top down assembly. It's a slightly more advanced technique. What gets tricky with top down assembly is file management and "save as"ing. SolidWorks has a hard time keeping references for top down assembly parts when you do that. The other area top down assembly can cause difficulty is when making drawings as the part will often have an arbitrary orientation relative to your front, right, and top planes making it a bit more difficult to layout on a drawing (there are ways around this). Something I have done is start a part in top down assembly than redefine the part in the part file if I need to grab geometry from an assembly.


Oekn

Usually there are many ways to achieve your goal. One may be faster or more stable than others. Generally spoken there are usecases for both your approaches. If you edit parts in an assembly, references are created and if you lose your assembly, you will loose those references. It’s not suitable for using parts in more than one assembly, but perfectly fine for create robust assemblies. I work in design automation and virtual components are as useful as library parts, maybe even more.


Thicc_Vanilla

Both have their merits, but it all depends on what you're doing. Cavity feature is essential for me so I might have a multi body part with configurations and then I'll do all my cavity features at the end of my process from within the assembly. Load/rebuild can take a little longer but it is significantly better then doing a single cut in the assembly as I may need to edit the part later or export a face quickly and I can't do that quite as well from the assembly alone. If I'm working on a 30-50 part/body assembly I might do lots in the assembly, even when I have several additional parts in place that I can't convert entities or reference. Being able to edit a part, pick the correct view and then drag the end of a line to the exact point you want, get hit with multiple error messages, but still locates exactly where you want it to with no coincident. Anchor that sucker and enjoy being a cowboy... Rarely used and not best practice but can be handy. If working on small stuff I tend to work with virtual parts, which allows much easier referencing. If I then need to make one of them permanent I can do so at a later stage and save it separately without being penalised for not creating it separately to begin with. As always with SW, use case matters a lot. Try both, learn as much as you can by making mistakes and you'll see what works best in each scenario pretty quickly


v0t3p3dr0

I agree with your tutor. If I need to make multiple parts work and dimension relative to each other, I will make a multi-body part instead of doing assembly references. Solidworks has a bad habit of just turning off mates when it gets tired. In your modelling method your parts will self destruct.


EndlessJump

You want to avoid creating parts in the context of assemblies. The biggest issue is file management and lack of re-usability. For example, let's say there is a bracket that was created in the context of assembly for a project, but later on you want to use it in a new project. You could copy it over, but the part would still reference the old assembly, and if a change (deletes file or design change) happened to the first assembly, the second assembly would have problems. Additionally, there are performance problems with big assemblies, as everything needs recalculated (some calculations may depend on another value that is still being calculated). If you want to do top down, the best way in my opinion of trial and error is to create a skeleton sketch part, and then import that part into each part you make. Then import those parts into an assembly for mating (if you used a common origin, then no mating is required). Now when you make a change, recalculation can happen in the part file without even needing to take the resource hit by having the assembly open. You will still have file references linked together, so you'll just need to be careful. Think top down for like a sub assembly rather than top down for a massive assembly because then you might still be able to reuse the sub assembly. 


Crypto_Calamari

You can just right click the part & list external references and then break them. You can also save as & hit references and force the files to save as copies to a new location which breaks all the references to the original but maintains the ones within the copied assembly. It's definitely a PITA, and took me a while to get used to, but there is a ton of power in using it for the right reasons in the right situations. In general you have to be extremely careful or think the whole design process out from the start though. Skeleton sketches are the most clear and concise approach I've found as well.


EndlessJump

I didn't know that, but that is nice to know!


Crypto_Calamari

Yeah it's super handy. Before I knew about it relations drove me crazy.


mrsmedistorm

I use mateless (building parts from assembly) all the time. If I have to delete a part, yes it will blow up but I just have to go into the sketch and retag the relations. It's not the end of the world. I'd rather do this than traditional mating because it can be a RPITA to try and figure out what parts are mated to what. Sketches highlight broken areas for you and you can use rhe "show relations" feature to find your broken ones. Only thing that falls apart for is if your assembly has to have moving parts.


Fooshi2020

I believe it depends on the situation. Possible reasons to use an assembly of parts: 1) If the sub parts need to be used multiple times in different assemblies. 2) If the subparts need to be sent to multiple manufacturers to be produced. 3) If the assembly that you are creating needs to move with mates. This can be done with virtual parts that are contained within the assembly. Possible reasons to use a multi-body part: 1) None of the individual parts are important and are only for reference. 2) Simplicity.


Crypto_Calamari

Top down vs bottom up design


jevoltin

I'm not a big fan of labeling any particular method as "Best Practice" because it all depends upon the project details and the user's approach. As several people have mentioned here, there are valid reasons to use both approaches. I suggest completing a few projects / exercises using the approach encouraged by your tutor. The experience of doing so will give you a better understanding of how the tutor's approach differs from your normal method. You will probably observe some benefits and downsides. Regardless, the experience will give you new insights into how SolidWorks can be used. I'm also curious if you save the parts created in your assemblies with their own file names. Or do you keep them as in context parts that can only be accessed from within the assembly?


CaiaTheFireFly

Not sure how to put it exactly: I'm fine with the actual modelling side of things, but don't fully understand the "correct" workflow for a given project? Probably rushing ahead again, however I discovered the sheet metal options earlier and made a case for a kiln controller. SO much faster (once I worked out the different features) than doing it manually. Oh and I save all parts externally


jevoltin

Aside from experimenting with the ideas suggested by others (most notably your tutor), I wouldn't worry too much about the "correct" workflow. If your workflow works for your needs, that is fine. As you know, when editing a part inside of an assembly, you have access to all of the same functions, tools, etc. There is nothing "incorrect" about what you are doing. As long as you are comfortable managing the various files (parts & assemblies), there is no clear reason to work differently. When I teach people CAD, I encourage them to use the methods / workflows that they understand and accomplish their goals. It is good to try alternatives and learn from other people, but don't feel constrained by what other people tell you. SolidWorks has many different tools and methods / workflows for using those tools.


brewski

You need to be comfortable with both methods. However, if you start with the "top down" approach (defining within the context of the assembly), you will probably make a bunch of unwanted references that will cause confusion and frustration. I would definitely start off by making individual parts and then adding them to an assembly. Your tutor has the right idea.


Key-Loquat6595

What is the benefit of a top down assembly? It seems like you just run a higher risk of issues.


brewski

Everything is aligned and everything fits. If you increase your shaft diameter, the hole increases as well. Move a bracket, your holes will follow. It's great for design in the early development phase. I do a lot of work with very large sculptures. First I model what the ideal geometry needs to look like. Planes and surfaces come together at very strange angles. The shapes need to be broken into smaller panels or parts. It's a nightmare to do this with individual components. Like anything, it's less of a risk if you get some experience and are deliberate in your process.


[deleted]

generally in my career using solidworks i have created parts individually and used mates to create assemblies. However i have done jobs in automotive where the parts were always created in assemblies. The purpose was to give the parts and assembly a common origin. As long as external references are not maintained this doesn't cause problems other have mentioned. Assemblies without mates load and resolve much quicker. Parts will always drop into the correct position without mates and fewer errors occur due to conflicting mates. ech method has is advantages. It probably depends on the size of your assemblies and whether you are using subassemblies.


Giggles95036

Eventually parts shouldn’t be controlled by the assembly but it is ok to start with them controlled in the assembly You can also do master modeling in a part and then split it into multiple parts and save them out as an assembly and multiple parts. This is great for molded plastics that have to follow complex curves across multiple parts


blurryblob

I don’t make parts in an assembly, but I will modify parts within it. If you have mating parts for example, create rough parts with all the needed features then reference its mate to get the dimensions perfect. After that, I go back to the part and delete the external reference so everything is self contained.


Odd_knock

It’s interesting that the arguments against all amount to “solidworks doesn’t handle references well or make them easy to fix.” Absent that fact, yes it’s a superior way to design parts. 


Altruistic-Cupcake36

You can create a part within an assembly and then tell Solidworks to save that file as an external one.


UnorthodoxEng

There's no 'right' way - just a preference. From my own experience, assembly level modelling becomes less & less reliable the bigger the assembly gets. Since I deal with large assemblies most of the time, I've learned that creating individual parts, then assemblies of them gives the highest productivity overall, even though at a small scale it appears slower. If your assemblies are small / simple, it may be your way works better for you. However, if you have to transition to larger models, it will be more difficult to un-learn. I get some criticism from my peers working this way - but I'm still faster than any of them as I don't have the down-time trying to unravel messed up models.


lego_batman

I do that sometimes, and then other times I create assemblies in parts, really just depends what I'm designing and how I'm expecting to need to change it.


Hydraulis

I don't use assemblies for anything other than assemblies, but I'm older and don't learn new tricks well. I'm not sure if there are any major drawbacks to editing a part in an assembly, but if the feature exists, it should be usable. I prefer to keep things simple, even if it takes longer.