You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AutoLISP摩天轮绘图代码仅绘主圆,请求故障排查

问题分析与解决

错误原因

  • 变量名冲突:ANGLE是AutoLISP的内置函数(用于计算两点间的角度),属于受保护的系统符号,不能把它当作自定义变量赋值,这就是弹出“Assignment to protected symbol: ANGLE”错误的核心原因——代码执行到这一步直接中断,后续绘制吊舱的逻辑根本没机会运行。
  • 次要问题:用command "line"画线段时没明确结束命令,可能导致后续操作异常。

修正后的代码

(defun c:ferriswheel ()
  (setq radius 50)
  (setq cart-size 5)
  (setq num-carts 8)

  (setq center-point '(0 0))

  (command "circle" center-point radius)

  ; 把变量名从angle改成step-angle,避开内置函数冲突
  (setq step-angle (/ (* 2 pi) num-carts))
  (setq current-angle 0)

  (repeat num-carts
    ; 基于中心点计算坐标,后续调整中心位置更方便
    (setq x1 (+ (car center-point) (* radius (cos current-angle))))
    (setq y1 (+ (cadr center-point) (* radius (sin current-angle))))

    (setq x2 (+ (car center-point) (* (+ radius cart-size) (cos current-angle))))
    (setq y2 (+ (cadr center-point) (* (+ radius cart-size) (sin current-angle))))

    ; 加""表示结束line命令,避免命令挂起
    (command "line" (list x1 y1) (list x2 y2) "")
    (setq current-angle (+ current-angle step-angle))
  )
  (princ) ; 清理命令行多余输出
)

额外优化说明

  • 坐标计算优化:原代码默认以(0,0)为中心,修改后坐标基于center-point计算,后续调整摩天轮位置只需改这个变量即可。
  • 命令行清理:添加(princ)可以避免函数执行后在命令行显示多余的变量值,让输出更干净。

内容的提问来源于stack exchange,提问作者Ristori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 08:13:15