Creating Complex Geometries Using TracePro Scheme Commands

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