4 ms·
> In SolveSpace, constraints are represented as equations in a symbolic algebra system. In general, these equations are solved numerically, by a modified Newton
by q3k 5y ago
> In SolveSpace, constraints are represented as equations in a symbolic algebra system. In general, these equations are solved numerically, by a modified Newton's method. Some special cases are handled, for any equation that can be solved by forward-substitution, and equations that are soluble alone.
> If the sketch is not fully constrained, then the Jacobian is solved in a least squares sense, with each equation written in such a way as to make the quantity being minimized a useful penalty metric. This tends to yield "less surprising" results when dragging points in an underconstrained sketch, compared to approaches that use weak dimensions to keep the sketch always fully constrained.
https://solvespace.com/tech.pl https://solvespace.com/tech.pl
Not sure what the Big Players (Autodesk, Dassault Systemes, Siemens, ...) use, though.
- tonyarkles 5y ago> Not sure what the Big Players (Autodesk, Dassault Systemes, Siemens, ...) use, though. In Autodesk Fusion 360, they seem to use something similar but with weird discontinuities in the computation. You'll be smoothly moving a point or edge or something and then at some point the 1px movement causes everything to snap differently and confusingly :). And if you pull back in the direction you came from, it doesn't go back the way it was. At least Ctrl-Z generally works pretty well :D
- prova_modena 5y agoCertain situations in solidworks can cause similar behavior. For example, tangent arcs inverting themselves. My uneducated suspicion is that there are geometric conditions that cause these sorts of "gimbal lock" type problems in all CAD solvers. Although I don't have enough hours in F360 to say if you are describing something qualitatively different.
- gilleain 5y agoAh, should have read the docs, thanks! It occurred to me after I posted that this is similar in a way to molecular dynamics simulations, which are essentially constrained sets of points (constraints like atoms have to be within a certain distance range or angle/torsion). In those you use techniques like gradient descent (similar to Newton's method it seems) and forcefields and so on. I guess it's all numerical optimization in the end.
- delhanty 5y agoThe big players nearly all use D-Cubed 2D DCM https://www.plm.automation.siemens.com/global/en/products/plm-components/2d-dcm.html https://www.plm.automation.siemens.com/global/en/products/pl... Siemens PLM - NX and SolidEdge Dassault - CATIA & SolidWorks Autodesk - Inventor & Fusion PTC - not sure ProEngineer's original sketcher predates 2D DCM of course because they invented history-based feature modeling for 3D CAD. OnShape also. Russian systems tend to use LEDAS https://levindavid.blogspot.com/2011/10/providing-geometric-solvers-be-it.html https://levindavid.blogspot.com/2011/10/providing-geometric-... 2D DCM is now owned and sold by Siemens PLM but originally created by John Owen at D-Cubed Ltd (Cambridge UK) from circa 1989 before he sold the company to Siemens in 2004 https://www.plm.automation.siemens.com/global/en/our-story/newsroom/siemens-press-release/42648 https://www.plm.automation.siemens.com/global/en/our-story/n... Original 2D DCM paper by John Owen from 1991 Algebraic Solution for Geometry from Dimensional. Constraints http://papers.cumincad.org/data/works/att/9ad2.content.pdf http://papers.cumincad.org/data/works/att/9ad2.content.pdf (The split the graph into biconnected components doesn't really cover variable radius circles though.) Other more recent papers by John Owen on arXiv https://arxiv.org/search/math?searchtype=author&query=Owen%2C+J+C https://arxiv.org/search/math?searchtype=author&query=Owen%2... (Some of these are for 3D DCM.) Disclaimer: D-Cubed Ltd employee from 1995-2000.
- gilleain 5y agoInteresting links, thank you. As for splitting the graph into biconnected component, that mirrors what I know about automated layout of graphs (essentially the same problem?) in that it makes sense to have a very high-level algorithm of: 1) split graph into bi- (or tri-) connected components 2) layout these components individually 3) layout the block-tree of components With the goal for layout to make it 'look nice' in some sense, while the goal for CAD is more that the constraints should ... make the final structure buildable and the 'right' shape?
- IshKebab 5y agoInteresting, though I have to say I found Solvespace to have a much more stable solver than SOLIDWORKS. It's a really solid CAD modeller, it just has some critical missing features - notably no bevels/chamfers/drafts.