Equation editor on a network

Thanks Paul
After some time I have worked it out. your comment that you need to know that something can be done in order to do it is very relevant. I have built a toolbox in a single multi-object file with 3 component parts and 5 drawings, flat and folded sheetmetal and it all works with changing dimensions. Then as you indicated, I was able to build a variation on this box by copying and altering in less than an hour. Thanks again for your help, I feel that I can now make ZW3D do what I want which is a good thing.

I must say that I am finding having the Equation Manager only at Part level is becoming tedious. When several components in a Multi-object assembly use common dimensions it makes sense to use a single Equation set which at present is attached to only one part, and may be referred to by other parts. Because of my (sloppy) work methods, I find that I have to swap in and out of parts constantly when refining my model, plus the end user of my model needs an instruction book to know which part the Equation Manager is attached to. It would be useful if the Equation Manager could be shared at assembly level between parts in an assembly and its equations could be edited from any open part.

Hi Jim,
I’m fairly sure you can access expressions form any where oven on another network!
What you may not have sorted is the regen protocol which be defaut is set ot lowest regen.
Once you have a working model - you can activate full gen on a part by part basis from within the assembly - manager so the entire model updates.

Paul, what I was trying to say is that to edit the Equation, you need to exit back to the root then open the part or Equation Manager where the equation set is attached, edit the equation, exit back to Root then reopen the part you are working on to see the changes. I attach the Equation Manager to a part rather than at Root level so that at least one part can be edited without having to go back to Root. Values can be edited in Expressions in the Manager pane this way.
When I have to do this many times in a session, it gets tiresome. I have not found a way of editing equations without opening the part or Manager they are located in. If a future development of ZW3D allowed expressions in a Multi-object Equation Manager to be shown in the Manager pane of each part in the Multi-object assembly, it would allow editing of the equations without having to exit in and out of Root level. I know that my parameter driven designs are a niche application but maybe the developers read this forum and maybe it will happen some day.
Thanks for your interest

I can get an “if…then…else” formula to work in a part’s equation set but not in the Root level equation set of a multi-object file. The formulas are the same to calculate Radius: (Thickness=2) then 1.6 else Thickness - where Thickness is native to each equation set I am working in. Initially, the formula works but when the Root level equation set regenerates if any edit is made, the value goes to 0. What am I doing wrong?

Hi Jim, can you send me a copy of you file to look at?
I’ll PM you.

Paul, this is one of the files for a toolbox. Hope it will fit on your forum. You will notice that I have changed how I use the equation sets and there is a lot of redundancy in the part equation sets. This is to make it easy to create new parts from existing equation sets.
Radius is the formula which does not work in equation set EQ1 but does work in the parts. This is a stripped down file to keep the size down.
Thanks for your interest
JimEquationTest.Z3 (1.3 MB)

Hi Jim,
One thing that will assist is regen control.
In Assembly Manager - RMB as belwo.
Try before and after to see which is best - it will slow regen down a bit so you activate once finished.
Where there are levels of embedded info - ZW is trying to avoid doing the unnecessary all the time. So to get the traversal of all links we need to force regens.

Shooting from the hip[harmless colloquialism] - If the Radius is either one number or another, why not just type in the correct value? rather than referring to the If/Then Statement to make a decision for you.

Also there is merit in placing all Driving dimensions in the Assembly file then Configuring these so a Toolbox can be driven from a table. AND allow for the same sizes with different Material via a config too.
Derived expressions can be in each part as applicable or in a Derived Equation Set.

You can Export/Import equations to move them around.

I am not familiar with the conditional expressions syntax so prefer to keep things as simple as possible.
Tables are much easier to edit than individual functions.


The reasoning behind my design is that this production system can be driven by a bright 12 year old in about 15 minutes, not a CAD expert. A record of what has been done needs to be kept and an effective way to do this is to copy a Multi-object file of a completed toolbox to a customer subdirectory then re-use the original file as the basis for the next toolbox. We expect to be building several toolboxes a week. As I understand tables, they create a new instance off a template which can be saved but may not carry over all the drawings into the customer file.
The reason for using conditional expressions is so that the knowledge that one sheetmetal worker uses different bend radiuses to another is built into the file set so the 12 year old does not need to alter the bend radius for another sheetmetal worker or if the material thickness changes. I am trying to keep away from configs as this is another thing the 12 year old has to remember. The material does not make a significant change to the dimensions of the parts and in this case is used for drawing title blocks and BoM. It is simpler to drive this from the equation set rather than change Part Attributes each time.
It is an interesting exercise to bend a piece of software designed to be used by an expert for fundamentally unique designs into a production tool to be used by a clerk for several different jobs a week.
I will investigate tables further.

Hi Jim,
nothing wrong with your plan.
The Config would allow you to set up for each thickness and bend regime for every box made.
So make a specific size, automatically have all manufacture variants instantly ready for drawings.
The 12 yo ‘child labour’ will not have any problem with accessing tables.

So yeah, Configs are an answer to prayer! You doin that?


Hi Jim and Paul,

Look at that:

…you have dual screen (or if you have the strenght of will to work on tiny resized windows on a single monitor)
-from root level, open your equation manager (which conveniently open within a separate window) and slide it on your second screen
-then open your part you want to work on and edit the target sketch
-in the still displayed equation manager, edit a value and apply, then regen your part

…now the big issues that prevent that from being as comfortable or sexy as it sounds:
-each time you go back to root in the main window, every other “pop-up” windows inconveniently shutdown (sad-face)
-each time you reopen those “pop-up” windows, ZW3D doesn’t saves their size and position

I really wish that it would be something the dev team could work on.

What do you think?


Hi Nicholas,
Equation will stay open on a 4k screen with comfort too.:grinning:

There are a number of things that would be helpful to remember session to session. e.g Choice of Root Object layout, Graphics choice etc.
But window location is a tricky one.
What say you grab your laptop from the dual screen layout an head to see a client but cannot find your opened up window!!! Has happened to many people because windows is not smart enough to know what to do.
BTW - What time zone are you in?

My time zone is “Paris (GMT +2)”


1 Like

Hi Nicolas
Thank you for your suggestion but… The parts for a sheet metal toolbox must meet with a perfect fit 4 or 5 flange bend operations away from where the constraints are made. To be certain of this, I had to go back to the assembly to check the fit every time I made a correction to the design. As you said, going back to Root to open the assembly, closes the equation editor for the part and if a further adjustment is needed, you have to open a part and its equation set, make a change, close the part, open the assembly to check the fit, and so on. The good news is that the design is completed and is totally parameter driven. For a new toolbox of the same layout, all I have to do is open the master file, change 4 parameters, regen then open each of the dimensioned drawings in the master file, make sure it has regenerated, export each drawing as DXF then email the drawing files to my client and the sheetmetal worker who can work straight off DXF files. From the request for a new toolbox to drawing despatch by email can be done in 15 minutes.
My next project is to generate drawings for a steel flatbed body for a truck from a fully parameterised design. This is a bit more complicated and I am learning a lot about conditional equation sets, configurations, the limits of patterning in ZW3D and design strategies to avoid having to rebuild constraints when steel section sizes change for large or small trucks. It seems that PMI dimensions do not carry through from a part through a sub-assemby to the top level assembly drawing. In order to build useful BOM and steel cutting lists, I am using sub-assembly drawings for the cutting lists and main assembly drawing for the BOM which is working OK. Putting everything in one BOM is confusing.
a file of the flatbed body is attached showing progress so far. Tabletop%20Body%20Assy

Hi Jim,
Thats true that having to regen individually each level of an assembly, composed itself of multiple sub-assembly levels, is quite tedious.

One thing I can propose, I don’t know what you will think about it, once you modified a value/formula in the equation manager, go straight to your final assembly, expand everything, right click each level and regen, starting from lower levels to higher ones.
But yeah, once you reach tens or hundreds of sub-assemblies in a final one, that turn into a new sport discipline (unless I am missing a magical feature).


Hi Guys,
great discussion.
I have mentioned before that controlling regen within assembly is required to have fully updated parts after altering parameters. Don’t forget to set these once the working model is done.

PMI is of limited value outside of 3D models as far as I can tell. If someone can correct me I wanna know.

Re BOM. You can use Weldments for creating structures and extract BOM & Cut lists from there - reduces ‘component’ count by being a unique category. It is also fast once you have it sorted. Sketch layout is everything.
You can also custom design profiles if required.

The truck deck project will require layers of detail. I suggest Sub Assemblys that are fabrications are Suffixed _FAB in the file name for clarity. Each new complete FAB will need its own assembly so that at the end you have mostly sub assemblies in the Final assembly. Big projects generate a lot of drawings.

Template for parts and drawings are critical so that all info is captures at part creation.


Hi Jim,
great to hear you won! Well done. That experience will be of great benefit for this one.

Hi Paul,
I did try your solution (post 18) while doing my test assembly I screenshoted (post 25), but its looked like to me that auto regen when entering assembly, only work when it is a parts assembly, not when the assembly itself composed of sub-assemblies.
I might need to re-explore the idea.

EDIT : So I made another trytest regen.Z3 (201.5 KB)
Indeed, if …

-after changing various value in equation manager,
-after you set every sub-assembly to auto regen within your final assembly (before or after constraints regen) (seems you can only do it to the first layer of sub-assembly, exemple: _Ssenb__1 within _Ssenb_1, you can’t set auto regen on the former)

…you go right away in your final assembly, and click regen button on top of the window, it doesn’t work. You still have to right click each sub-assembly and regen them from there.
And if your sub-assembly is only composed of parts ,like the 2 first sub-assemblies _Ssenb__1 or the last one _Ssenb__2, sometimes right clicking/regen work (_Ssenb__1), sometimes it doesn’t (_Ssenb__2) in which case you need to individually right click/regen directly the parts within that sub-assembly (I can’t explain why it work with __1 but not __2).

BUT then, if I go in
ZW3D config (gear icon) / Part / Component update / then set auto regen there
then change values in equation manager
then go back to final assembly
then click top screen regen button…
… everything update at once (even if sub-assemblies are not individually set to auto-regen as you showed).

I can’t believe I missed that, it will change my life :smiley: . But there are situations where you don’t want auto-regen… I guess…


I learned something today!
It took me a while to figure what you where referring to.
I have not looked at that option for years - perhaps I imagine seeing it before.
So GOLD STAR to you.:clap:

So to make life easier here is the Option.

I think there are lots of places stopping regen is important. The larger the assembly, the less external regen you can tolerate so you have to manage that manually during high edit stage. Once you are close to final then the regen load is less significant.
Cheers Paul

I have got one truck body parameter driven design working pretty well. I have set up generic drawings for fabricating truck bodies and the drawings are modified automatically when the parameters are changed. This uses a lot of conditional equations for example how many plates are needed for the tray floor and what size is the last plate.

Some lessons learned from this.

Use lots of brackets in conditional statements, particularly in the “IF” part of the statement
Use lots of simple conditional equations with intermediate variables instead of complicated nesting within conditional equations. This project has more than 20 conditional equations and 4 levels of subassemblies.
You can use conditional equations to provide the number of repetitions for a pattern but the minimum number of repetitions must be 2. ZW3D does not like single piece patterns.
You have to check that regeneration is carried out correctly when there are multiple configurations of a part buried in subassemblies. For cutting lists I use a single part such as 100x50 steel channel with different configurations for each length and call this up in a BOM in a subassembly. I normally have every part set to regenerate every time which is a bit slow but there are not a lot of parts. This does not seem to be 100% reliable when I regenerate all from the top assembly so needs to be checked.
I hope this helps somebody else.