+发表新主题
wangshuzhi 发布于2025-5-13 22:50 22 次浏览 2 位用户参与讨论
跳转到指定楼层

各位大神,我刚开始学习Autolisp,目前做到下面这个题目,自己编写了一段小程序,但是在CAD中加载后却运行不了,显示已经加载完成,输入命令却没有用!麻烦大神们帮我瞧一下我的程序!烦请指点一下!!非常感谢!




我写的程序如下:
(defun C:drawn
(setq p0 (getpoint“\n确定起点或输入坐标”))
(setq a (getreal “\n输入a段长度:”))
(setq b (getreal “\n输入b段长度:”))
(setq c (getreal “\n输入c段长度”))
(setq d (getreal “\n输入d段长度”))
(setq r (getreal “输入圆角半径r”))
(if (< c (+ d r)) (princ “ok”) (= c (+ d r)))
(setq p1 (polar p0 0 a))
(setq p2 (polar p1 (* pi 1.5) d))
(setq p3 (polar p2 (* pi 1) (- a (+ b r)))
(setq p4 (polar p3 (* pi 1.5) r)
(setq p6 (polar p0 (* pi 1.5) c)
(setq p5 (polar p6 0 b)
(command “line” po p1 p2 p3
(command “arc” “c” p4 “a” p3 (* pi 0.5))
P5 p6 “c”)
(princ)
)
帮我指正一下,哪边指令错误??

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

已有2人评论

wangshuzhi 发表于 2025-5-13 22:58:53
没有大神在啊?????
回复

使用道具 举报

s13620 发表于 2025-5-15 23:33:09
(if (< c (+ d r)) (princ “ok”) (= c (+ d r)))
后半句(= c (+ d r))错误,我猜你是想写c=d+r,但autolisp不是这么写的,应写成(setq c (+ d r))
(command “line” po p1 p2 p3
(command “arc” “c” p4 “a” p3 (* pi 0.5))
P5 p6 “c”)

建议画完直线段再画圆弧段,command命令不要再嵌套command命令
(command “line” p4 p5 p6 po p1 p2 p3 "")
(command "arc" p4 "A" P3 60 “”) 角度要用角度值,非弧度值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ| Archiver|手机版|小黑屋| 碧波制图网 Published by Stonespider

Copyright © 2021-2023 Kangli Wu   All Rights Reserved.

Powered by Discuz! X3.5( 苏ICP备18011607号-1 )

快速
回复
返回
列表
返回
顶部