Skip to content

(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\")

★     ★