By Oliver Dover, Business Consultant, Tacton Systems
A Design Automation project lifecycle is longer than you would think. You might consider the work done when it is set into production, but I would argue otherwise. Rather, a Design Automation project is a living thing which will be updated with new product data and variants during its lifetime. And as it gets older and more experienced, the project needs to be maintained to stay efficient.
But here’s the tricky part: the more data you have, the harder its maintenance will be. A common problem is that when a new variant of a part or subassembly is added, logic needs to be changed in order to define how this new variant will fit into the Design Automation system. Old rules need to be edited and new rules might need to be created.
So, is there a way to simplify this? Yes, there is. In this blog post, I’ll show you how you can separate your data from logic, as well as update your product data without having to change your logic, by using a constraint based design automation approach.
Let’s have a look at a simplified example of a conveyor model (picture 1). More specifically, we will concentrate on the Beams and the Rollers (picture 2).
In our example, there are three variants of beams, and three variants of rollers. The ways in which these can be combined are shown in the matrix below:
|RollerA||Allowed||Not Allowed||Not Allowed|
I will first describe how you would go about a configuration using a sequential approach. Then, I’ll show how to handle the same configuration using constraints and the benefits of using this approach.
The sequential way to set this up is to have three rules stating that if a certain Beam is chosen, some Roller is allowed. See an example of a rule set which would achieve this bellow:
If Beam A then RollerA or RollerB or RollerC
If Beam B then RollerB or RollerC
If beam C Then RollerC
Let’s imagine that we now need to add a new roller, “RollerD”. This roller should work for BeamA and BeamB. To ensure a correct set-up, we would need to change two of the rules we created earlier to take this new roller variant into account.
If Beam A then RollerA or RollerB or RollerC or RollerD
If Beam B then RollerB or RollerC or RollerD
If beam C Then RollerC
Constraints based approach
With a constraint based tool, rules refer to properties of the variants rather than the variant values or the variants themselves. This enables us to create a rule saying why the Rollers and Beams fit together, rather than in what combination.
In our example, the reason for the allowed combinations of rollers and beams is that the Roller Diameter cannot be larger than the Beam height.
We begin by creating a table for rollers and beams A-C, with the necessary properties.
Now, we need only one rule to describe how these can be combined. In this rule, we will only include logic which refers to the properties, rather than specific values or variants, since our aim is to separate the data from logic.
The result will be the same as with the previous rules. The difference is that this rule is compact yet easily understood. We have been able to replace the 3 rules, shown in the sequential approach example, with just one. If we now want to add a new Roller, we simply add a new row in our Roller Table and no change in rules is necessary.
In real Design Automation projects, the dependencies between components are generally complex with a lot of dependencies between different components. This increases the importance to separate the data from logic, as we have done with this one very simple example. By using the constraints based approach, you can easily separate your logic from data, inevitably simplifying maintenance. Working with constraints means you get a lot fewer rules, as well as an easier way to update your product data without having to go through your logic and find all the rules which need to be edited.
If you want to learn more about Tacton Design Automation, do so here.