Example II
List of: Discussion Topic
Subjects: ACIS Journal
Contents: Kernel

The following example illustrates a journaling operation through Scheme extensions. In this example, the snapshot journal for a boolean and a blending operation is created from a Scheme script using the ACIS Journal and ACIS Option Scheme extensions.

(define j1 (acis_journal:set "file" "journal_bend3"))
(define ao (acisoptions:set "journal" j1))
(acis_journal:start ao)
(part:clear)
(define block1 (solid:block (position 0 0 0)(position 20 5 1)))
(bool:subtract block1 (solid:block (position 0 1 0)

(position 20 4 1)) ao)
(solid:unite block1 (solid:cylinder (position 20 -4 .5)

(position 20 8 .5) .6))
(bool:unite block1 (solid:block (position 11 0 0)

(position 12 5 1)))
(bool:unite block1 (solid:block (position -2 -5 1)

(position 6 10 3)))

(define block2 (solid:block (position 6 1 -8)(position 7 4 12)))
(bool:subtract block2 (solid:block (position 6 2 -8)

(position 7 3 12)))
(solid:unite block2 (solid:cylinder (position 6.5 -4 -8)

(position 6.5 8 -8) .6))
(solid:unite block2 (solid:block (position 4 -4 8)

(position 6 9 16)))

(define wheel1 (bool:unite (solid:cylinder (position 0 0 0)

(position 0 1 0) 1) (solid:cylinder (position 0 .5 0)

(position 0 .5 2) .25)))
(define wheel2 (entity:copy wheel1))
(define wheel3 (entity:copy wheel1))
(define wheel4 (entity:copy wheel1))
(entity:rotate wheel3 0 1 0 -90)
(entity:rotate wheel4 0 1 0 -90)
(entity:move wheel1 20 -3 -2)
(bool:unite block1 wheel1)
(entity:move wheel2 20 7 -2)
(bool:unite block1 wheel2)
(entity:move wheel3 8.5 -4 -8)
(bool:unite block2 wheel3)
(entity:move wheel4 8.5 8 -8)
(bool:unite block2 wheel4)

(define root (position 12 0 0 ))
(define axis (gvector 0 1 0))
(define direction (gvector 0 0 1))
(entity:bend block1 root axis direction -1 60 8 ao)

(define root2 (position 7 1 -3))
(define axis2 (gvector 0 1 0))
(define direction2 (gvector 1 0 0))
(entity:bend block2 root2 axis2 direction2 -1 -60 5)

(define root3 (position 6 1 4))
(define axis3 (gvector 0 1 0))
(define direction3 (gvector -1 0 0))
(entity:bend block2 root3 axis3 direction3 -1 -60 4)

(bool:unite block1 block2)

(acis_journal:end ao)
PDF/KERN/11AJOUR.PDF
HTM/DATA/KERN/KERN/11AJOUR/0005.HTM