How various CAD programs create relations among objects?

AI Thread Summary
Various CAD programs implement object relationships through user-friendly interfaces that allow for the creation of constraints among independently created objects. Users can establish relationships, such as equal distances between legs of a table, using features like expressions or assembly functions, which may resemble spreadsheet-like functionalities. The design of these tools anticipates user needs by embedding fundamental relationships and enabling customization through programming languages. While the internal structure of these relationships is often hard-coded, users can typically add their own properties and constraints to enhance functionality. Ultimately, the effectiveness of a CAD program in managing object relationships hinges on its usability and the intuitiveness of its interface.
Stephen Tashi
Science Advisor
Homework Helper
Education Advisor
Messages
7,864
Reaction score
1,602
I'd like a comparison of how various CAD programs handle the task of creating relationships among objects that have been created independently and where the uses wants to change some parameters of one object and have the program adjust the parameters of the others automatically.

I'm interested in the variety of program interfaces - how the process "looks to the program user", not the underlying mathematics of the code that implements it.

For example, suppose I've created 4 rectangular solids that represent legs of a table. How would various CAD programs handle the task of establishing typical relations among the legs. For example, I might want the distance between the left front leg and the left rear leg to be the same as the distance between the right front leg and the right rear leg. I might want all the legs to have the same dimensions etc.

Establishing relations among independently created objects and then updating them when the user edits some parameter seems to be a complicated mathematical problem. Users might attempt to establish a set of relations that is self-contradictory. But I'd think that the task is so important that CAD programs would have discovered an efficient way of doing it.

My one data point is from the FreeCAD forum. The suggestion was to use "expressions". i haven't tried it yet, but I think it involves creating something like a spreadsheet whose cells have data for the objects. In a typical spreadsheet program, one "cell" in the sheet can be defined as a function of other cells.

Is that way things are done in other CAD programs?

(In my example, one could create a rectangular sold and then create the 4 posts in a dependent fashion by subtracting volumes from it, but I'm not sure this would allow the dimensions of the posts to be adjusted indepndently of the spacing between them - and my question still stands because surely other situations will arise when objects have been created independently before the designer considers how to assemble something from them.)
 
Engineering news on Phys.org
https://en.wikipedia.org/wiki/Database_schema

Fundamental relationships are determined by the value proposition of the tool and on top of that there will often be hooks to enable a user to expand on the 'baked in' relationships. There is not a single answer to your question. A great CAD tool design will anticipate what relationships matter to users of its target market and make those manipulations natural in the tool interface / data relations. Your question can sort of be re-stated to be "How does one design a really useable CAD tool?"
 
Grinkle said:
There is not a single answer to your question.

Yes. So my question requests examples of how different CAD programs create constraints.
 
The constraints (object relationships) are embedded in the internal schema of the tool. A developer decides that a user must input a length and a width to define a rectangle, for instance, and perhaps a thickness and a density. These properties would be 'hard coded' into the internal tool database implementation. From here, the developer can code algorithms to detect when two such objects interfere with each other and how much they weigh etc. These would also be hard coded into the tool database implementation. The constraint is a coded rule that operates on the defined properties of the objects in the database.

Additional relationships that can be added by a user are made possible by giving the user access to the data object via some programming language. A common one to use for EDA tools is TCL. Users can typically add their own properties to the hard coded objects. A user might add a property called "color" to the above rectangle, and the user can do their own searches through the database and take some actions when the search returns objects of a certain color.

https://en.wikipedia.org/wiki/Tcl

I am not sure if I am understanding your question.
 
Grinkle said:
Additional relationships that can be added by a user are made possible by giving the user access to the data object via some programming language.

I am not sure if I am understanding your question.

My question concerns the user interface for adding constraints, not the underlying data structure and query language used by the program.

For example, if you have various objects representing boards, how does the user put them together to make a product and still allow himself freedom to change some parameters of the objects ? ( I suppose this is called the "assembly function". ) I myself would be pleased with a CAD program where a user can specify a product by writing computer code for it, but I'd think that most CAD programs would provide other ways of assembling things.
 
Last edited:
Hi all, I have a question. So from the derivation of the Isentropic process relationship PV^gamma = constant, there is a step dW = PdV, which can only be said for quasi-equilibrium (or reversible) processes. As such I believe PV^gamma = constant (and the family of equations) should not be applicable to just adiabatic processes? Ie, it should be applicable only for adiabatic + reversible = isentropic processes? However, I've seen couple of online notes/books, and...
Thread 'How can I find the cleanout for my building drain?'
I am a long distance truck driver, but I recently completed a plumbing program with Stratford Career Institute. In the chapter of my textbook Repairing DWV Systems, the author says that if there is a clog in the building drain, one can clear out the clog by using a snake augur or maybe some other type of tool into the cleanout for the building drain. The author said that the cleanout for the building drain is usually near the stack. I live in a duplex townhouse. Just out of curiosity, I...
I have an engine that uses a dry sump oiling system. The oil collection pan has three AN fittings to use for scavenging. Two of the fittings are approximately on the same level, the third is about 1/2 to 3/4 inch higher than the other two. The system ran for years with no problem using a three stage pump (one pressure and two scavenge stages). The two scavenge stages were connected at times to any two of the three AN fittings on the tank. Recently I tried an upgrade to a four stage pump...
Back
Top