(view 'object)
Description
Visualize an object with the choosen boundaries.
Syntax
(view 'object my-finite-element)
Parameters
my-finite-element The finite element object to be visualized.
Examples
;;; fem-example
(new)
(define side 0.002) (define r 7 ) (define s 21 )
(define h (*2.2 r side ))
(define base ( make-mesh 'single-point (vector side side 0) ))
(duplicate 'translation base 1 (vector (* -2 side) 0 0))
(duplicate 'translation base 1 (vector 0 (*-2 side) 0))
(duplicate 'homothety base 1 (vector 0 0 ( *2 side)) 1 )
(define base_inv (make-mesh 'copy base ))
(transform 'reflection base_inv (vector 0 0 1) (vector 0 0 ( *-2 side )))
(define base (make-mesh 'add (list base base_inv)))
(define diapason (make-mesh 'single-point (vector side side 0)))
(duplicate 'translation diapason 1 (vector (*-2 side) 0 0))
(duplicate 'translation diapason 1 (vector 0 (*-2 side) 0))
(duplicate 'translation diapason r (vector 0 0 (*2 side) ))
(define arc (make-mesh 'restrict-quadrilateral diapason
(vector (+ 4 (*4 r )) (+ 2 (*2 r)) (+ 1 (*2 r)) ( + 3 (*4 r)))))
(duplicate 'rotation arc 6 (vector 1 0 0) (vector 0 side h) 15)
(define branch (make-mesh 'restrict-plane arc (vector 0 0 1) (vector 0 0 h)))
(duplicate 'translation branch s (vector 0 0 (*2 side)))
(define fork (make-mesh 'add (list arc branch))) (define fork-copy
(make-mesh 'copy fork))
(transform 'reflection fork-copy (vector 0 1 0) (vector 0 0 0))
(define diapason (make-mesh 'add (list base diapason fork fork-copy)))
(save-mesh diapason \"diapason.mesh\")
(view 'mesh diapason )
(define hold (make-mesh 'restrict-quadrilateral diapason (vector 63 189 188 62)))
(define my-finite-element (make-object 'finite-element (mesh diapason)
(modes 25)
(block hold) (young 19.5e10) (density 7700)
(poisson 0.2)
(freq-loss 0)
(const-loss 0)))
;(view 'object my-finite-element ) (compute-modes my-finite-element )
(set-mode-freq! my-finite-element 0 0)
(set-mode-freq! my-finite-element 1 0)
(save-object my-finite-element \"diapason.modal\" ) (view 'mode my-finite-element 3 10 3 )
(define my-fem-access-in ( make-access my-finite-element (const 120) 'normal ))
(define my-fem-access-out ( make-access my-finite-element (const 15) 'normal ))
(define my-plectrum (make-object 'bi-two-mass))
;;;
;;; make pluck connection
;;;
(define my-plectrum-plk (make-access my-plectrum (const 1) 'trans0))
(make-connection 'pluck my-fem-access-in my-plectrum-plk 0 .1 (const 50))
;;;
;;; make position connection to push plectrum
;;;
(define my-plectrum-mov (make-access my-plectrum (const 0) 'trans0))
(make-connection 'position my-plectrum-mov
(make-controller 'envelope 1
(list (list 0.00 .1)
(list 0.50 -.5))))
;;;
;;; make listening point on string
;;;
(make-point-output my-fem-access-out)
;;;
;;; run the synthesis and play the sound
;;;
(run 2) ;; make 2 seconds of sound (play)
(save \"diapason.aiff\")
★