Sketcher: Vincoli di supporto
Introduzione
Il vincolo di supporto è un normale vincolo di Sketcher che viene richiesto come parte di un vincolo più complesso, ed è mostrato nell'interfaccia per aiutare l'utente a gestire le ridondanze. Ad esempio, nel vincolo di Rifrazione, le due linee che rappresentano i raggi di luce devono essere collegate tra di loro con il vincolo di Coincidenza applicato nei punti finali, e la congiunzione deve trovarsi sull'interfaccia con il vincolo Punto su oggetto.
Quando sono necessari, i vincoli di supporto sono aggiunti automaticamente. Attualmente la decisione se sono necessari viene presa valutando l'errore del vincolo di supporto per lo stato attuale della geometria, ma questo potrebbe cambiare nelle future versioni. Se l'errore è sufficientemente piccolo, il vincolo è considerato inutile, e non viene aggiunto. In alcuni casi, questa logica può portare ad errori; ad esempio, il vincolo può essere soddisfatto per caso, e questo può accadere facilmente quando in Sketcher è attiva la funzione "Aggancia alla griglia".
Se manca un vincolo di supporto, e le condizioni richieste non sono soddisfatte in altro modo, il "vincolo complesso" sarà difettoso. Si ottiene qualcosa di imprevedibile. Il vincolo difettoso può essere riparato aggiungendo manualmente il vincolo di supporto mancante.
Attualmente, i vincoli di supporto sono necessari per i seguenti vincoli:
- Tangente nel modo "tangenza in un punto" sono necessari due vincoli "punto su oggetto"
- Perpendicolare nel modo "perpendicolare in un punto" sono necessari due vincoli "punto su oggetto"
- Angolo nel modo "angolo in un punto" sono necessari due vincoli "punto su oggetto"
- Rifrazione sono necessari un vincolo "coincidenza" e un vincolo "punto su oggetto"
Script
Quando i vincoli che richiedono dei supporti sono aggiunti tramite gli script Python, i vincoli di supporto non vengono aggiunti automaticamente. In uno script si può replicare la decisione presa automaticamente dai comandi della UI testando le seguenti funzioni, che sono state aggiunte specificamente per questo scopo e che sono usate nelle routine dell'interfaccia:
Sketch.isPointOnCurve(icurve,x,y)
isPointOnCurve verifica se un punto virtuale, dato dalle coordinate x,y (virgola mobile) dello schizzo, è idoneo per soddisfare un virtuale vincolo di punto su oggetto - cioè si trova sulla curva specificata dalla curva di indice icurve. Restituisce True se il punto è sulla curva, e False se non lo è.
Sketch.calculateConstraintError(iconstr)
calculateConstraintError valuta una funzione di errore di un vincolo specificato dal suo indice iconstr nello schizzo. Se nel vincolo vi è una sola funzione di errore, il valore restituito è il valore restituito firmato della funzione di errore. Se al vincolo è associata più di una funzione di errore (cioè il vincolo rimuove più di un grado di libertà), il valore restituito è la radice della media del quadrato (RMS) di tutte le funzioni di errore (sempre positivo).
Versione
I vincoli di supporto sono stati introdotti nella versione 0.15.4387
- General: Create sketch, Edit sketch, Map sketch to face, Reorient sketch, Validate sketch, Merge sketches, Mirror sketch, Leave sketch, View sketch, View section, Toggle grid, Toggle snap, Configure rendering order, Stop operation
- Sketcher geometries: Point, Line, Arc, Arc by 3 points, Circle, Circle by 3 points, Ellipse, Ellipse by 3 points, Arc of ellipse, Arc of hyperbola, Arc of parabola, B-spline by control points, Periodic B-spline by control points, B-spline by knots, Periodic B-spline by knots, Polyline, Rectangle, Centered rectangle, Rounded rectangle, Triangle, Square, Pentagon, Hexagon, Heptagon, Octagon, Regular polygon, Slot, Fillet, Corner-preserving fillet, Trim, Extend, Split, External geometry, Carbon copy, Toggle construction geometry
- Sketcher constraints:
- Geometric constraints: Coincident, Point on object, Vertical, Horizontal, Parallel, Perpendicular, Tangent, Equal, Symmetric, Block
- Dimensional constraints: Lock, Horizontal distance, Vertical distance, Distance, Radius or weight, Diameter, Auto radius/diameter, Angle, Refraction (Snell's law)
- Constraint tools: Toggle driving/reference constraint, Activate/deactivate constraint
- Sketcher tools: Select unconstrained DoF, Select associated constraints, Select associated geometry, Select redundant constraints, Select conflicting constraints, Show/hide internal geometry, Select origin, Select horizontal axis, Select vertical axis, Symmetry, Clone, Copy, Move, Rectangular array, Remove axes alignment, Delete all geometry, Delete all constraints
- Sketcher B-spline tools: Show/hide B-spline degree, Show/hide B-spline control polygon, Show/hide B-spline curvature comb, Show/hide B-spline knot multiplicity, Show/hide B-spline control point weight, Convert geometry to B-spline, Increase B-spline degree, Decrease B-spline degree, Increase knot multiplicity, Decrease knot multiplicity, Insert knot, Join curves
- Sketcher virtual space: Switch virtual space
- Additional: Sketcher Dialog, Preferences, Sketcher scripting
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Start, Surface, TechDraw, Test Framework, Web
- Hubs: User hub, Power users hub, Developer hub