找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 568|回复: 0

[求助] [求助]:编写LISP程序时出现的一个问题

[复制链接]
发表于 2007-4-16 09:42:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
DCL
fl:dialog{
label=
"螺母正视图绘制器"                        ;
:text{
label=
"输入数据,然后单击确定"                ;
}
:boxed_row{
label=
"输入螺母的中心点"                        ;
:edit_box{
label=
"x轴坐标"                                ;
key=
"cpx"                                        ;
fixed_width=true                        ;
width=5                                        ;
alignment=centered                        ;
}
:edit_box{
label=
"y轴坐标"                                ;
key=
"cpy"                                        ;
fixed_width=true                        ;
width=5                                        ;
alianment=centered                        ;
}
}
:boxed_row{
label=
"轮廓尺寸参数"                                ;
:edit_box{
label=
"螺母口径"                                ;
key=
"kj"                                        ;
edit_limit=20                                ;
edit_width=5                                ;
}
:edit_box{
label=
"螺母内孔半径"                                ;
key=
"nb"                                        ;
edit_limit=20                                ;
edit_width=5                                ;
}
}
ok_only                                        ;
}


AUTOLISP
(defun c:fl (/ dcl_id)
  (setq dcl_id (load_dialog "fl.dcl"))
  (if (not (new_dialog "fl" dcl_id))
    (exit)
  )
  (action_tile "accept" "(date_manage)")
  (start_dialog)
  (unload_dialog dcl_id)
  (draw1)
  (princ)
)
(defun date_manage (/ x y cp rd rx pt1 pt2 pt3 pt4 pt5 pt6)
  (setq x (atof (get_tile "cpx")))
  (setq y (atof (get_tile "cpy")))
  (setq cp (list x y))
  (setq rd (atof (get_tile "kj")))
  (setq rx (atof (get_tile "nb")))
  (setq pt1 (polar cp (/ pi 6) (* (/ rd 2) (/ 2 (sqrt 3)))))
  (setq pt2 (polar cp (/ pi (- 0 6)) (* (/ rd 2) (/ 2 (sqrt 3)))))
  (setq pt3 (list x (- y (+ 2 (/ rd 2)))))
  (setq pt4 (list x (+ y (+ 2 (/ rd 2)))))
  (setq pt5 (list (- x (+ 2 (/ rd 2))) y))
  (setq pt6 (list (+ x (+ 2 (/ rd 2))) y))
)
(defun draw1 ()
  (command "line" pt1 pt2 "")
  (command "array" "l" "" "p" cp "6" "" "y")
  (command "circle" cp "D" rd)
  (command "circle" cp "D" rx)
  (command "layer" "m" 1 "c" 1 "" "")
  (command "line" pt3 pt4 "")
  (command "line" pt5 pt6 "")
  (command "arc" "c" cp (list (* 0.55 rx) y) "a" "270.0")
  (command "layer" "m" 0 "on" "" "")
)
问题是在加载执行时却出现"命令: ; 错误: 参数类型错误: numberp: nil"
谢谢```
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-29 04:19 , Processed in 0.174520 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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