;; Assembly (setf b1 (oli:sd-pathname-to-obj "/B1")) ;; Object (setf t1 (oli:sd-pathname-to-obj "/B1/T1")) ;; Coordinate system (setf cosy1 (oli:sd-pathname-to-obj "/B1/T1/CoSy1")) ;; Create animation (hard-coded directions) (oli:sd-call-cmds (oli:anim_create_animation :animation_item :create_animation :owner b1 :accept :sel_selected :next_group t1 :select_done :current-direction 1,0,0 100 :dyn_pos_capture :next_group t1 :select_done :rotate :axis :direction3d 0,0,1 :position3d 0,0,0 :rotation_angle 1.4 :dyn_pos_capture)) ;; Create animation (sd-inq-coord-sys-elem-values, not working, only initial values are evaluated) ;(oli:sd-call-cmds ; (oli:anim_create_animation :animation_item :create_animation :owner b1 :accept :sel_selected ; :next_group t1 :select_done :current-direction (second (oli:sd-inq-coord-sys-elem-value cosy1 :x-axis t :dest-space :global)) 100 ; :dyn_pos_capture ; :next_group t1 :select_done :rotate :axis :direction3d (second (oli:sd-inq-coord-sys-elem-value cosy1 :z-axis t :dest-space :global)) :position3d (second (oli:sd-inq-coord-sys-elem-value cosy1 :origin t :dest-space :global)) :rotation_angle 1.4 ; :dyn_pos_capture)) ;; Create animation (sd-inq-coord-sys-elem-values, without sd-call-cmds, working, UI crashes when a lot of positions are captured ~60) ;anim_create_animation :animation_item :create_animation :owner b1 :accept :sel_selected ; :next_group t1 :select_done :current-direction (second (oli:sd-inq-coord-sys-elem-value cosy1 :x-axis t :dest-space :global)) 100 ; :dyn_pos_capture ; :next_group t1 :select_done :rotate :axis :direction3d (second (oli:sd-inq-coord-sys-elem-value cosy1 :z-axis t :dest-space :global)) :position3d (second (oli:sd-inq-coord-sys-elem-value cosy1 :origin t :dest-space :global)) :rotation_angle 80 ; :dyn_pos_capture