Creating Complex Geometries Using TracePro Scheme Commands Lambda Research Corporation Lambda Research Proprietary Create complex geometries using TracePro Scheme Commands • • Not all of the geometry modeling features in ACIS are available with the TracePro GUI. However, with ACIS commands (which are executable in TracePro), complicated geometry can be created. Below are some examples. – Draft Spline Solid – Revolved Spline Solid – Swept Solid – Filament – Grid Solid – Blend (or “Fillet”) Lambda Research Proprietary Create a Solid with a User-Defined Name • It is often asked how to create a solid in Scheme with a user-defined name instead of a default name such as “Object 11” • The answer is: (property:apply-name (insert:block 10 10 10) “My Object") Scheme command to create a solid Lambda Research Proprietary Draft Spline Solid Draft Direction Lambda Research Proprietary Draft Spline Solid Linear Edges Spline Edge Refer to DraftSplineEdgeExample.scm Lambda Research Proprietary Draft Spline Solid Draft Direction Name the object “My Object” when it is created Refer to DraftSplineEdgeExample.scm Lambda Research Proprietary Draft Spline Solid Changing the Draft Direction Draft Direction Lambda Research Proprietary Draft Spline Solid Ray Tracing Schematic (the spline surface has been defined as a reflective surface) Lambda Research Proprietary Revolved Spline Solid Direction of Revolution Lambda Research Proprietary Revolved Spline Solid Revolving Axis Revolving Angle Refer to RevolveSplineEdgeExample2.scm Lambda Research Proprietary Revolved Spline Solid Ray Tracing Schematic (the spline surface has been defined as reflective surface) Lambda Research Proprietary Swept Solid Sweeping Path (Pink Line) Base Surface Lambda Research Proprietary Swept Solid Define Base Surface Define Sweeping Path (Pink Line) Twist Angle Refer to Sweep_SplineCrossSection.scm Lambda Research Proprietary Swept Solid (twisted) Refer to Sweep and Twist Square Surface.scm Twist Angle Lambda Research Proprietary Filament A filament is built in the same way as a swept solid. However, since it can be used to create filament incandescent lamps or spiral-type compact fluorescent lamps, more details of how to build up this type of geometry are introduced in the next slides Sweeping Path (Pink Line) Base Surface Lambda Research Proprietary Filament There are various methods to build up the filament (or spiral shape). Below is one approach. Spiral axis Spiral radius Create a circular edge (define circular_edge (edge:circular-3pt (position 1.1 0 0) (position 1 0 0.1) (position 0.9 0 0) #t)) Create a spiral path Spiral axis Spiral axis Axis vector Thread distance (define helix_edge start point end point (edge:helix (position 0 0 0) (position 0 0 4) (gvector 1 0 0) 1 0.8 #t)) Sweep Spiral radius (property:apply-name (sweep:law circular_edge helix_edge) "Filament") Delete the edge (entity:delete helix_edge) Refer to Filament2_from Edge.SCM Lambda Research Proprietary Filament Another approach Refer to Filament.SCM Cylinder part Create a cylinder (define cylinder1 (solid:cylinder (position 1 -1 0) (position 1 0 0) 0.1)) “2” means Surface No.3 Set the edge surface as the (define face1 (tools:face-in-body 2 cylinder1)) base surface for sweeping (define helix_edge Create a spiral path (edge:helix (position 0 0 0) (position 0 0 4) (gvector 1 0 0) 1 0.8 #t)) Sweep (property:apply-name (sweep:law face1 helix_edge) "Filament") Delete the edge (entity:delete helix_edge) Lambda Research Proprietary Grid Solid (file:new) (define grid (splgrid)) (define points1 (list (position 0 0 0) (position 0 1 0) (position 0 2 0) (position 1 0 0) (position 1 1 1) (position 1 2 0) (position 2 0 0) (position 2 1 0) (position 2 2 0) )) u (splgrid:set-point-list grid points1 3 3) Grid numbers ; Set the start and end tangent vector lists for u. (define vectors1 (list (gvector 0 1 0) (gvector 0 1 0) (gvector 0 1 0))) (splgrid:set-u-tanvec-list grid vectors1 #t) v (define vectors1 (list (gvector 0 1 0) (gvector 0 1 0) (gvector 0 1 0))) (splgrid:set-u-tanvec-list grid vectors1 #f) ; Set the start and end tangent vector lists for v. (define vectors2 (list (gvector 1 0 0) (gvector 1 0 0) (gvector 1 0 0))) (splgrid:set-v-tanvec-list grid vectors2 #t) (define vectors2 (list (gvector 1 0 0) (gvector 1 0 0) (gvector 1 0 0))) (splgrid:set-v-tanvec-list grid vectors2 #f) (define gridface (face:spline-grid grid #t)) (property:apply-name (sweep:law gridface (gvector 0 0 2)) "My Object") Ray Tracing Refer to SplineGridSolid.scm Lambda Research Proprietary Grid Solid (tangent vector for u) (file:new) (define grid (splgrid)) (define points1 (list (position 0 0 0) (position 0 1 0) (position 0 2 0) (position 1 0 0) (position 1 1 1) (position 1 2 0) (position 2 0 0) (position 2 1 0) (position 2 2 0) )) (splgrid:set-point-list grid points1 3 3) End tangent vector for u direction u Grid numbers ; Set the start and end tangent vector lists for u. (define vectors1 (list (gvector 0 1 0) (gvector 0 1 0) (gvector 0 1 0))) (splgrid:set-u-tanvec-list grid vectors1 #t) v Start tangent vector for u direction (define vectors1 (list (gvector 0 1 0) (gvector 0 1 0) (gvector 0 1 0))) (splgrid:set-u-tanvec-list grid vectors1 #f) ; Set the start and end tangent vector lists for v. (define vectors2 (list (gvector 1 0 0) (gvector 1 0 0) (gvector 1 0 0))) (splgrid:set-v-tanvec-list grid vectors2 #t) (define vectors2 (list (gvector 1 0 0) (gvector 1 0 0) (gvector 1 0 0))) (splgrid:set-v-tanvec-list grid vectors2 #f) (define gridface (face:spline-grid grid #t)) (property:apply-name (sweep:law gridface (gvector 0 0 2)) "My Object") Refer to SplineGridSolid.scm Note: A Boolean operation (subtract) needs to be added to the swept grid solid in order to make the bottom surface flat Lambda Research Proprietary Grid Solid (tangent vector for v) (file:new) (define grid (splgrid)) (define points1 (list (position 0 0 0) (position 0 1 0) (position 0 2 0) (position 1 0 0) (position 1 1 1) (position 1 2 0) (position 2 0 0) (position 2 1 0) (position 2 2 0) )) (splgrid:set-point-list grid points1 3 3) Start tangent vector for v direction u Grid numbers ; Set the start and end tangent vector lists for u. (define vectors1 (list (gvector 0 1 0) (gvector 0 1 0) (gvector 0 1 0))) (splgrid:set-u-tanvec-list grid vectors1 #t) (define vectors1 (list (gvector 0 1 0) (gvector 0 1 0) (gvector 0 1 0))) (splgrid:set-u-tanvec-list grid vectors1 #f) ; Set the start and end tangent vector lists for v. (define vectors2 (list (gvector 1 0 0) (gvector 1 0 0) (gvector 1 0 0))) (splgrid:set-v-tanvec-list grid vectors2 #t) (define vectors2 (list (gvector 1 0 0) (gvector 1 0 0) (gvector 1 0 0))) (splgrid:set-v-tanvec-list grid vectors2 #f) (define gridface (face:spline-grid grid #t)) (property:apply-name (sweep:law gridface (gvector 0 0 2)) "My Object") v End tangent vector for v direction Refer to SplineGridSolid.scm Note: A Boolean operation (subtract) needs to be added to the swept grid solid in order to make the bottom surface flat Lambda Research Proprietary Blend (Fillet) Select the object (solid:blend-edges (entity:edges (entity:get-by-name "Block 1")) 1.0) by name Select the object Radius by mouse click (solid:blend-edges (entity:edges (pick:entity (read-event))) 1.0) Select the edge (solid:blend-edges (pick:edge (read-event)) 1.0) by mouse click Select the surface (solid:blend-edges (entity:edges (pick:face (read-event))) 1.0) by mouse click Lambda Research Proprietary
© Copyright 2026 Paperzz