s1os5210 发表于 2024-3-4 16:09:04

自定义函数的返回值问题

(defun inters->nil (p1 p2 p3 p4 / dum)
(if (inters p1 p2 p3 p4)
    (setq dump2
          p2p4
          p4dum
    )
)
)
(setq p1 '(-50.0 -50.0 0.0)
      p2 '(50.0 50.0 0.0)
      p3 '(-50.0 50.0 0.0)
      p4 '(50.0 -50.0 0.0)
    )
(inters->nil p1 p2 p3 p4)
设置变量p1 p2 p3 p4

判断是否有交点,如果有交换p2 p4 的坐标
结果函数运行完,却啥也没发生,哪位大神知道问题在哪里?

飞雪神光 发表于 2024-3-4 19:34:16

(defun inters->nil (p1 p2 p3 p4 / dum)
(if (inters p1 p2 p3 p4)
    (setq
      dum p2
      p2p4
      p4dum
    )
)
(list p2 p4)
)
(setq
p1 '(-50.0 -50.0 0.0)
p2 '(50.0 50.0 0.0)
p3 '(-50.0 50.0 0.0)
p4 '(50.0 -50.0 0.0)
)
(setq p2p4 (inters->nil p1 p2 p3 p4))
(mapcar 'set '(p2 p4) p2p4)
(print (list p2 p4))
(princ)

xyp1964 发表于 2024-3-4 22:14:41

(defun inters->nil (p1 p2 p3 p4 )(if (inters p1 p2 p3 p4 nil)(list p1 p4 p3 p2)(list p1 p2 p3 p4)))
页: [1]
查看完整版本: 自定义函数的返回值问题