Method and system for determining resolution values
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- SIEMENS INDUSTRY SOFTWARE LTD
- Filing Date
- 2023-07-31
- Publication Date
- 2026-04-15
AI Technical Summary
Existing CAD systems face challenges in determining appropriate resolution values for CAD models, leading to unwanted model movement when constraints are solved, especially when geometry is imported from external sources with different resolution values.
A computer-implemented method that accesses a set of constraints and initial resolution values, applies a constraint solver, identifies additional constraints, determines satisfaction of constraints, and updates resolution values to ensure all constraints are satisfied, thereby preventing unwanted model movement.
The method effectively determines resolution values that allow CAD models to be solved without unwanted movement, ensuring that constraints are satisfied accurately and reducing unnecessary modifications to the model.
Smart Images

Figure EP2023071180_06022025_PF_FP_ABST
Abstract
Description
[0001] METHOD AND SYSTEM FOR DETERMINING RESOLUTION VALUES
[0002] TECHNICAL FIELD
[0003] The present disclosure relates to a computer implemented method for Computer Aided Design (CAD) and Computer Aided Manufacturing (CAM), and in particular, a method for determining resolution values for a CAD model.
[0004] BACKGROUND
[0005] Computer-Aided Design (CAD) systems are used in many fields of engineering, manufacturing and design to create and manipulate solid modelling representations of objects. For example, CAD models may be used as part of a manufacturing process to view, manipulate, interact with and modify an object before or during manufacturing.
[0006] In some CAD systems a user may be able to specify geometric constraints to be applied within a model. For example, a user may wish to constrain model geometries to lie parallel to a line or lie within a plane. In other cases, geometry may be constrained to maintain a minimum distance from a line or another geometric object. A constraint solver within the CAD system solves the model to meet the constraints. To do this, the constraint solver represents the set of constraints as a system of equations to be solved and then attempts to solve the system to determine a model with a geometry that satisfies the constraint set. In some cases, a set of constraints is insufficient to uniquely define the geometry. In other cases, where there are too many constraints or conflicting constraints, there may be no solution.
[0007] In CAD systems, the resolution refers to the level of detail that is represented in a model. The resolution represents the level at which features such as points, lines and angles are considered equivalent in a model. Linear resolution determines the distance at which two points are considered coincident. Angular resolution determines the angle at which two angles are considered equivalent. CAD systems specify default linear and angular resolutions. Default resolutions are affected by factors such as hardware and software limitations. Models may also be produced with a different resolution from the default resolution. For example, a rough design sketch may not require high resolution, while a detailed design or a design for a highly precise component may require a very high resolution.
[0008] When solving a constraint system, it is important that the correct set of resolution values are used so that geometric incidences are correctly identified. Incorrect choice of resolutions may produce a constraint system which cannot be solved, where a better choice would have yielded a solvable one. Furthermore, the constraint solver may end up solving constraints better than they need to be. Thus, an interaction with a part may cause small movements all over the model as constraints snap to their most accurate solution. This means what should have been a small modification is perceived as a need to completely redesign the existing part.
[0009] When working with a model with geometry that has been imported into the CAD system a user will often have little control over the resolution values of parts used in the model. For example, parts may have been imported from other CAD systems where they were designed with different resolution values. The user may end up guessing or using the default resolution values in the CAD system which may be unsuitable for the model. Even when resolutions are chosen such that the constraint scheme is solvable, the constraint solver may end up modifying a model unnecessarily when it solves constraints to the best accuracy for the given resolution. This may lead the user to believe that a part needs remanufacturing, when in fact most of the changes were unnecessary.
[0010] SUMMARY
[0011] It is an object of the invention to provide a method for determining resolution values for a CAD model, such that the model may be solved without unwanted movement when the constraints of the model are satisfied to the given resolution values.
[0012] The foregoing and other objects are achieved by the features of the independent claims. Further implementation forms are apparent from the dependent claims, the description and the figures. According to a first aspect of the invention a computer-implemented method for determining resolution values for a model of an object in a computer aided design system is provided. The method comprises a) accessing a first set of constraints to be implemented within the model, and a set of initial resolution values; b) applying a constraint solver to the model based on the first set of constraints and the set of initial resolution values; c) identifying, from geometric data generated by the constraint solver when applied to the model, a second set of constraints to be implemented within the model; d) determining, for each constraint in the first set and the second set, whether the constraint is satisfied; and e) updating the initial resolution values based on the determination such that the constraints of the first set and second set are satisfied for the set of updated resolution values.
[0013] The method according to the first aspect determines a set of resolution values which may be used with a model to prevent unwanted movement when a constraint solver solves the model for a given set of constraint.
[0014] In a first implementation form of the method according to the first aspect, each constraint is a dimensional constraint, a parallelism constraint, a perpendicularity constraint, a coincidence constraint, a tangency constraint or a parametric constraint.
[0015] In a second implementation form the set of initial resolution values comprises an initial angular resolution value and an initial linear resolution value.
[0016] In a third implementation form determining whether a constraint is satisfied comprises: measuring an angular distance corresponding to an angular component of the constraint; and comparing the angular distance with the initial angular resolution value.
[0017] In a fourth implementation form updating the initial resolution values based on the determination comprises selecting an angular resolution value greater than the measured angular distance, when the measured angular distance is greater than the initial angular resolution value.
[0018] In a fifth implementation form determining whether the constraint is satisfied further comprises: measuring a linear distance corresponding to a distance component of the constraint, subsequent to updating the angular resolution value; and comparing the linear distance with the initial linear resolution value.
[0019] In a sixth implementation form updating the initial resolution values based on the determination comprises selecting a linear resolution value greater than the measured linear distance, when the measured linear distance is greater than the initial linear resolution value.
[0020] In a seventh implementation form determining whether a model size criterion is met, wherein the model size criterion is met if a ratio of the selected linear resolution value to the selected angular resolution value is greater than a model size value; and if the model size criterion is not met, adjusting one or both of the selected linear resolution value and the selected angular resolution value such that the model size criterion is met.
[0021] In an eighth implementation form the method according to the first aspect further comprising iteratively repeating steps (a) to (e) wherein the iterating is continued until a set number of iterations are reached, or there is an iteration which does not result in a change in the updated set of resolution values.
[0022] In a ninth implementation form the method comprises receiving, via a user interaction with the computer aided design application, an instruction to modify the model; communicating the instruction to the constraint solver; applying the constraint solver to the model and instruction based on the set of updated resolution values, and outputting an updated model.
[0023] In a tenth implementation form the method comprises generating a set of instructions for controlling a manufacturing process using the updated model; and outputting the set of instructions to a manufacturing system for the manufacturing system to control the manufacturing process according to the set of instructions. According to a second aspect of the invention a data processing system comprising a processor and memory is provided. The memory stores instructions which, when executed by the processor, cause the processor to accesses a first set of constraints to be implemented within a computer-aided design (CAD) model in a CAD system, and a set of initial resolution values; apply a constraint solver to the model based on the first set of constraints and the set of initial resolution values; identify, from geometric data generated by the constraint solver when applied to the model, a second set of constraints to be implemented within the model; determine, for each constraint in the first set and the second set, whether the constraint is satisfied; and update the initial resolution values based on the determination such that the constraints of the first set and second set are satisfied for the set of updated resolution values.
[0024] These and other aspects of the invention will be apparent from the embodiments described below.
[0025] BRIEF DESCRIPTION OF THE DRAWINGS
[0026] For a more complete understanding of the present disclosure, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
[0027] Figure I shows a block diagram of a method for determining a set of resolution values, according to an example;
[0028] Figure 2 shows a model in a CAD system, according to an example;
[0029] Figure 3 is a schematic representation of a data-processing system adapted to carry out the embodiments of the present invention.
[0030] DETAILED DESCRIPTION
[0031] Example embodiments are described below in sufficient detail to enable those of ordinary skill in the art to embody and implement the systems and processes herein described. It is important to understand that embodiments can be provided in many alternate forms and should not be construed as limited to the examples set forth herein.
[0032] Accordingly, while embodiments can be modified in various ways and take on various alternative forms, specific embodiments thereof are shown in the drawings and described in detail below as examples. There is no intent to limit to the particular forms disclosed. On the contrary, all modifications, equivalents, and alternatives falling within the scope of the appended claims should be included. Elements of the example embodiments are consistently denoted by the same reference numerals throughout the drawings and detailed description where appropriate.
[0033] The terminology used herein to describe embodiments is not intended to limit the scope. The articles “a,” “an,” and “the” are singular in that they have a single referent, however the use of the singular form in the present document should not preclude the presence of more than one referent. In other words, elements referred to in the singular can number one or more, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and / or “including,” when used herein, specify the presence of stated features, items, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, items, steps, operations, elements, components, and / or groups thereof.
[0034] Unless otherwise defined, all terms (including technical and scientific terms) used herein are to be interpreted as is customary in the art. It will be further understood that terms in common usage should also be interpreted as is customary in the relevant art and not in an idealized or overly formal sense unless expressly so defined herein.
[0035] Herein, references to a model refer to a representation of an object in a computer aided design (CAD) system. References to a CAD system refer to a system embodied in software on a computing device or workstation for interacting with models of objects. CAD systems may comprise a graphical user interface to facilitate design, manipulation, modification and other forms of interaction with models. References to constraints herein refer to limitations or restrictions imposed on features of a model to maintain part of the model’s structure as the model is manipulated. Examples of constraints include but are not limited to: parallelism, perpendicularity, coincidence, tangency, symmetry, collinearity, and dimensional constraints relating to distances, angles and lengths. Some CAD systems also support parametric constraints as well as other constraint types. References herein to a constraint solver refer to a component or module in or available to a CAD system that implements constraints within a model. The constraint solver represents a set of constraints to be applied to the model as a system of equations to be solved, either algebraically or numerically or both. Herein references to solving a model refer to the constraint solver determining solutions to such a system of equations.
[0036] References to resolutions, model resolutions or tolerances refer to numerical values which represent thresholds at which non-equivalent points, lines or angles are considered equivalent within the model. In other words, the model resolutions represent a level of detail within the model. In particular, linear resolution provides a threshold at which points or lines which are spaced less than the linear resolution apart from each other are considered equivalent and angular resolution is a threshold at which angles between lines less than the angular resolution apart are considered equivalent.
[0037] The methods and systems described herein determine a set of resolution values for a CAD model that enable a user to interact with the model, without causing unwanted model movement. Unwanted model movement may arise where a constraint which should’ve been recognised as having been satisfied by a constraint solver, is considered as not having been satisfied due to incorrect choice of resolution value for the model. This may arise in, for example, situations where geometry is imported from an external source into the CAD system. The constraint solver may cause geometry to move to satisfy the set of constraints for the given resolution values.
[0038] The methods described herein determine suitable resolution values for a model by interacting directly with the constraint solver when applied to the model with the initial set of constraints, to identify implied constraints. Once the implied constraints have been identified, it is possible to determine a set of resolution values at which all constraints, both user-specified and implied, are satisfied. Figure I is a block diagram of a method 100 for determining resolution values for a model of an object in a CAD system. The method 100 may be implemented in conjunction with other methods and systems described herein.
[0039] At block I 10, the method 100 comprises accessing a first set of constraints to be implemented within the model, and an set of initial resolution values. According to an example, the first set of constraints may be user specified constraints that are loaded with the geometry of the model in the CAD system. At this stage, the initial set of resolution values may comprise default resolution values of the CAD system itself. In other cases, the set of resolution values may comprise a user’s best guess at what appropriate resolution values should be for the model.
[0040] At block 120, the method 100 comprises applying a constraint solver to the model based on the first set of constraints and set of initial resolution values. Applying the constraint solver to the model may comprise representing the first set of constraints and model as a system of mathematical equations or relationships and solving the system based on numerical and / or algebraic methods.
[0041] At block 130, the method 100 comprises identifying, from geometric data generated by the constraint solver when applied to the model, a second set of constraints. During solving, the constraint solver may generate new geometric data related to the geometry of the model and first set of constraints. This geometric data arises out of the internal processing of the constraint solver given the initial problem posed by the model and first set of constraints, and may include new lines, planes or other geometric constructs. In some cases, this geometric data may imply one or more further constraints that must be satisfied in addition to the first set of constraints.
[0042] At block 140, the method 100 comprises determining, for each constraint in the first set and the second set, whether the constraint is satisfied. Determining whether a constraint is satisfied may comprise measuring a distance, either angular or linear, and comparing the measurement to the corresponding angular or linear resolution value. In some cases, there are two measurements associated to a given constraint. For example, a line which is constrained coincident to a plane has a distance and an angle component. The angle is the measurement between the plane normal direction and the line direction and must be perpendicular for the distance measurement between the line and plane to be possible, otherwise the line and plane necessarily intersect.
[0043] Where no constraint is unsatisfied according to the initial resolutions the method 100 terminates since no change in resolution values is needed. Where only one, either angular or linear resolution is not exceeded by any constraint it is left at the default resolution given by the application.
[0044] At block 150, the method comprises updating the initial resolution values based on the determination such that the constraints of the first set and second set are satisfied for the set of updated resolution values. According to examples, updating the initial angular resolution may comprise selecting an angular resolution value greater than a measured angular distance, when the measured angular distance is greater than the initial angular resolution value. Similarly, updating the initial linear resolution may comprise selecting a linear resolution value greater than a measured linear distance, when the measured linear distance is greater than the initial linear resolution.
[0045] Once a candidate linear and angular resolution are determined according to the method 100, the angular resolution is adjusted to the candidate angular resolution and the constraints are remeasured. This is to ensure cases are not missed where determining whether a linear component of a constraint is satisfied may be determined only after the angular component of a constraint has been satisfied.
[0046] After re-measuring and possibly adjusting the linear resolution, a set of resolutions are determined at which all constraints are deemed satisfied. This set provides lower bounds for what could be returned in the CAD system since it is always possible to choose larger resolution values. In some cases, to provide a margin of error, a multiple > I of the lower bound resolution values may be used, for example, a multiple of 10 x the lower bound.
[0047] In some examples, the method 100 may further comprise determining whether a model size criterion is met. The model size criterion is met if the longest side of the smallest bounding box surrounding the model fits inside a model size implied by the determined resolution values. The model size implied by the resolution values may be determined as a ratio of the linear resolution to the angular resolution:
[0048] Linear resolution
[0049] - - : - : - = Model size (1)
[0050] Angular resolution
[0051] Equation (I ) may be derived as follows: consider a right-angled triangle with hypotenuse of length equal to the model size, one side of length equal to the linear resolution and the opposite angle as the angle angular resolution. Since angular resolution is small, sin(0) ~ 0 for angular resolution and equation ( I) follows. Geometrically this implies that two lines which are within angular resolution of being parallel should not part by more than linear resolution provided you do not move more than model size distance away from the lines’ intersection. If the model size criterion is not satisfied, then the linear resolution may be increased to increase the model size according to equation ( I ).
[0052] According to examples described herein, the model resolution may be modified to ensure that the resolution values are an order of magnitude larger or smaller than any inaccuracies in the model. According to examples the constraint manager may identify model inaccuracies during solving. A method for modifying resolution values to account for model inaccuracies is described in US patent application US 17 / 957,573.
[0053] Some forms of geometry have internal freedoms which may become singular in certain cases. For example, a sphere with a zero-radius becoming a point or a cone with a zerohalf angle becoming a line. A constraint solver may interpret any sphere with radius less than linear resolution as a zero-radius sphere and a cone with half angle less than angular resolution as a zero-half angle cone. To deal with these cases, it is preferable that the resolution values are not selected to be so large that it makes some of the geometry degenerate so measuring geometries in a model with internal freedoms provides an upper bound on returned resolutions. In some examples, it may be that an upper bound found is lower than the lower bound found, in which case there is no solution and the method terminates. Similarly, it may also be that the lower bound found is absurd and unlikely to be useful to the CAD system because the constraints are too unsatisfied. For instance, an unsatisfied alignment with a parallel constraint may give a measurement of 180° from satisfied and it is unlikely a model would work well when solved with an angular tolerance of 180°. As such, in these cases the method may also terminate.
[0054] The method 100 may be iterated following these additional adjustments to the resolution values. Different resolution values may lead to different constraints and geometries being created by the constraint solver. In some examples, to ensure efficiency the number of iterations of the method may be limited by a threshold or until the resolution values stabilize.
[0055] The actual solving of the model with the newly discovered resolutions proceeds as follows: the user may wish to perform some operation or adjustment to the model. For example, a user may wish to drag some geometry in the model. According to examples described herein, using the determined resolution values from method 100, the operation may be performed. A constraint solver determines an order to compute the geometries such that those topologically furthest away compute earlier and are thus less likely to move to satisfy the requested interaction. In addition to this, when computing using this method, the constraint solver measures the constraints on each geometry it is about to compute to solve the constraints. These constraints will be a mixture of user and / or implied constraints. Where every constraint is satisfied to within resolution, the constraint solver will do nothing rather than computing the geometry anyway to ensure the constraints are as satisfied as they can be.
[0056] Figure 2 depicts an example of the method 100 as applied to a model 200. In Figure 2, the two points 210, 220 are held relatively rigid in a set S. The points 210, 220 are at distances d , and d2respectively, of a line 230. In the example in Figure 2, the points 210, 220 are constrained coincident to the line 230, and thus, assuming the linear distances d| and d2are less than the linear resolution of the model, the coincidence constraints appear to be satisfied. However, when the constraint solver is applied to the model 200 and coincidence constraints, the solver proceeds to create a new line 240, that passes through both points 210, 220 and constrains the line 240 coincident to line 230. Method 100 as applied to model 200 proceeds, at block 140, to determine whether the constraints are satisfied. For the constraints to be satisfied it is necessary the angular resolution is greater than the angle a and the linear resolution is greater than the distances d, and d2and the distance d between lines 230, 240. It is not possible to measure the distance between lines 230, 240 until the lines are seen as parallel, and hence the angular resolution must be set greater than a.
[0057] Once these steps have been performed candidate values, 0 and L, of the angular and linear resolutions at which all constraints are satisfied have been determined. A bounding box of the model may be constructed by choosing the smallest box which encloses the two points and the base points of the two lines 230, 240. The measured model size, M, is the length of the maximum side of the bounding box. The maximum size implied by candidate resolutions is L / 0. Using a factor of 5 for safety, if 5 M > L / 0, then L is increased to the value L = 5 M 0.
[0058] Figure 3 illustrates an example of a data processing system in which an embodiment of the present disclosure may be implemented, for example a CAD system configured to perform the methods of the embodiments of the present invention as described herein. The data processing system 300 comprises a processor 310 connected to a local system bus 320. The local system bus connects the processor to a main memory 330 and graphics display adaptor 340, which may be connected to a display 350. The data processing system may communicate with other systems via a wireless user interface adapter connected to the local system bus 320, or via a wired network, for example, to a local area network. Additional memory 360 may also be connected via the local system bus 320.
[0059] A suitable adaptor, such as wireless user interface adapter 370, for other peripheral devices, such as a keyboard 380 and mouse 390, or other pointing device, allows the user to provide input to the data processing system. Other peripheral devices may include one or more I / O controllers such as USB controllers, Bluetooth controllers, and / or dedicated audio controllers (connected to speakers and / or microphones). It should also be appreciated that various peripherals may be connected to the USB controller (via various USB ports) including input devices (e.g., keyboard, mouse, touch screen, trackball, camera, microphone, scanners), output devices (e.g., printers, speakers), or any other type of device that is operative to provide inputs or receive outputs from the data processing system.
[0060] Further it should be appreciated that many devices referred to as input devices or output devices may both provide inputs and receive outputs of communications with the data processing system. Further it should be appreciated that other peripheral hardware connected to the I / O controllers may include any type of device, machine, or component that is configured to communicate with a data processing system.
[0061] An operating system included in the data processing system enables an output from the system to be displayed to the user on the display and the user to interact with the system. Examples of operating systems that may be used in a data processing system may include Microsoft WindowsTM, LinuxTM, UNIXTM, iOSTM, and AndroidTM operating systems.
[0062] In addition, it should be appreciated that data processing system 300 may be implemented as in a networked environment, distributed system environment, virtual machines in a virtual machine architecture, and / or cloud environment. For example, the processor and associated components may correspond to a virtual machine executing in a virtual machine environment of one or more servers. Examples of virtual machine architectures include VMware ESCi, Microsoft Hyper- V, Xen, and KVM.
[0063] Those of ordinary skill in the art will appreciate that the hardware depicted for the data processing system 300 may vary for particular implementations. For example, the data processing system 300 in this example may correspond to a computer, workstation, and / or a server. However, it should be appreciated that alternative embodiments of a data processing system may be configured with corresponding or alternative components such as in the form of a mobile phone, tablet, controller board or any other system that is operative to process data and carry out functionality and features described herein associated with the operation of a data processing system, computer, processor, and / or a controller discussed herein. The depicted example is provided for the purpose of explanation only and is not meant to imply architectural limitations with respect to the present disclosure. The data processing system 300 may be connected to the network (not a part of data processing system 300), which can be any public or private data processing system network or combination of networks, as known to those of skill in the art, including the Internet. The data processing system 300 can communicate over the network with one or more other data processing systems such as a server (also not part of the data processing system 300). However, an alternative data processing system may correspond to a plurality of data processing systems implemented as part of a distributed system in which processors associated with several data processing systems may be in communication by way of one or more network connections and may collectively perform tasks described as being performed by a single data processing system. Thus, it is to be understood that when referring to a data processing system, such a system may be implemented across several data processing systems organized in a distributed system in communication with each other via a network.
[0064] The data processing system 300 is adapted to carry out the methods in accordance with the embodiments described herein. For example, the keyboard 380 and mouse 390 may function as a user input device for receiving information from the user, the processor 310 may be adapted to carry out the steps of the method and the display 350 adapted to display a particular view to the user. A computer product comprising instructions which, when run on a computer, such as the data processing system 300, may be provided to cause the computer to execute the steps of the methods of the embodiments of the present invention outlined above.
[0065] The present disclosure is described with reference to flow charts and / or block diagrams of the method, devices and systems according to examples of the present disclosure. Although the flow diagrams described above show a specific order of execution, the order of execution may differ from that which is depicted. Blocks described in relation to one flow chart may be combined with those of another flow chart. In some examples, some blocks of the flow diagrams may not be necessary and / or additional blocks may be added.
[0066] The present inventions can be embodied in other specific apparatus and / or methods.
[0067] The described embodiments are to be considered in all respects as illustrative and not restrictive. In particular, the scope of the invention is indicated by the appended claims rather than by the description and figures herein. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims
CLAIMS1. A method for determining resolution values for a model of an object in a computer aided design system, the method comprising: a) accessing a first set of constraints to be implemented within the model, and a set of initial resolution values; b) applying a constraint solver to the model based on the first set of constraints and the set of initial resolution values; c) identifying, from geometric data generated by the constraint solver when applied to the model, a second set of constraints to be implemented within the model; d) determining, for each constraint in the first set and the second set, whether the constraint is satisfied; and e) updating the initial resolution values based on the determination such that the constraints of the first set and second set are satisfied for the set of updated resolution values.
2. The method of claim I , wherein each constraint is a dimensional constraint, a parallelism constraint, a perpendicularity constraint, a coincidence constraint, a tangency constraint or a parametric constraint.
3. The method of claim I , wherein the set of initial resolution values comprises an initial angular resolution value and an initial linear resolution value.
4. The method of claim 3, wherein determining whether a constraint is satisfied comprises: measuring an angular distance corresponding to an angular component of the constraint; and comparing the angular distance with the initial angular resolution value.
5. The method of claim 4, wherein updating the initial resolution values based on the determination comprises selecting an angular resolution value greater than the measured angular distance, when the measured angular distance is greater than the initial angular resolution value.
6. The method of claim 5, determining whether the constraint is satisfied further comprises: measuring a linear distance corresponding to a distance component of the constraint, subsequent to updating the angular resolution value; and comparing the linear distance with the initial linear resolution value.
7. The method of claim 6, wherein updating the initial resolution values based on the determination comprises selecting a linear resolution value greater than the measured linear distance, when the measured linear distance is greater than the initial linear resolution value.
8. The method of claim 7, comprising: determining whether a model size criterion is met, wherein the model size criterion is met if a ratio of the selected linear resolution value to the selected angular resolution value is greater than a model size value; and if the model size criterion is not met, adjusting one or both of the selected linear resolution value and the selected angular resolution value such that the model size criterion is met.
9. The method of claim I , comprising iteratively repeating steps (a) to (e) wherein the iterating is continued until a set number of iterations are reached, or there is an iteration which does not result in a change in the updated set of resolution values.
10. The method of claim I , comprising: receiving, via a user interaction with the computer aided design application, an instruction to modify the model; communicating the instruction to the constraint solver; applying the constraint solver to the model and instruction based on the set of updated resolution values, and outputting an updated model.I I . The method of claim 10, comprising: generating a set of instructions for controlling a manufacturing process using the updated model; and outputting the set of instructions to a manufacturing system for the manufacturing system to control the manufacturing process according to the set of instructions.
12. A data processing system, comprising a processor and memory that stores instructions which, when executed by the processor, cause the processor to: accesses a first set of constraints to be implemented within a computer-aided design (CAD) model in a CAD system, and a set of initial resolution values; apply a constraint solver to the model based on the first set of constraints and the set of initial resolution values; identify, from geometric data generated by the constraint solver when applied to the model, a second set of constraints to be implemented within the model; determine, for each constraint in the first set and the second set, whether the constraint is satisfied; and update the initial resolution values based on the determination such that the constraints of the first set and second set are satisfied for the set of updated resolution values.
13. The data processing system of claim 12, wherein the instructions cause the processor to: receive, via a user interaction with the computer aided design application, an instruction to modify the model; communicate the instruction to the constraint solver; apply the constraint solver to the model and instruction based on the set of updated resolution values, and output an updated model.
14. The data processing system of claim 13, wherein the instructions cause the processor to: generate a set of instructions for controlling a manufacturing process using the updated model; and output the set of instructions to a manufacturing system for the manufacturing system to control the manufacturing process according to the set of instructions.