
CAD
(defun c:move-to-origin (arg) (let* ((start (car arg)) (end (CADr arg)) (origin (CADdr arg)) (height (cddir arg)) (x (cdega1 arg)) (y (cdegb1 arg)) (z (cdegc1 arg)) (dx (cdega2 arg)) (dy (cdegb2 arg)) (dz (cdegc2 arg)) (newx (cdega3 arg)) (newy (cdegb3 arg)) (newz (cdegc3 arg)) (ax (if (zerop (cddot product start end)) (list 'y 0) (list 'x (cddot product start end))) (if (zerop (cddot product origin start)) (list 'y 0) (list 'x (cddot product start origin))) (if (zerop (cddot product origin end)) (list 'y 0) (list 'x (cddot product end origin))) (list 'z height) (lambda (x y z dx dy dz newx newy newz ax) (if (zerop dx) (lambda () (move-to-origin (list newx newy newz ax)) (lambda () (move-to-origin (list x y z ax) (list newx newy newz ax)))))) (lambda () (funcall 'move-to-origin 'start 'end 'origin 'height 'x 'y 'z 'dx 'dy 'dz 'newx 'newy 'newz 'ax))))))(defun product (a b) (if (zerop a) 0 (* a b)))(defun c:move-to-origin2 (arg) (let* ((start (CADr arg)) (end (cddr arg)) (origin (CADdr arg)) (height (cddir arg)) (x (cdega1 arg)) (y (cdegb1 arg)) (z (cdegc1 arg)) (dx (cdega2 arg)) (dy (cdegb2 arg)) (dz (cdegc2 arg)) (newx (cdega3 arg)) (newy (cdegb3 arg)) (newz (cdegc3 arg)) (ax (if (zerop (cddot product start end)) (list 'y 0) (list 'x (cddot product start end))) (if (zerop (cddot product origin start)) (list 'y 0) (list 'x (cddot product start origin))) (if (zerop (cddot product origin end)) (list 'y 0) (list 'x (cddot product end origin))) (list 'z height) (lambda (x y z dx dy dz newx newy newz ax) (if (zerop dx) (lambda () (move-to-originCopyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号