土木在线论坛 \ 商易宝社区 \ 行业脉动 \ 一个画节点板的程序,谁能帮我优化一下

一个画节点板的程序,谁能帮我优化一下

发布于:2008-11-20 18:06:20 来自:商易宝社区/行业脉动 [复制转发]
这是一个画节点板的程序,谁能帮我优化一下,

它的精度不够,还有各个参数没有初始值或者是上一次输入的默认值

(
defun c:123() (/ jd jd1 zuo you gao xian r A B C D);画节点板
(setvar "cmdecho" 0)
(setq jd (getpoint "\n 请点取基点"))

(setq zuo (getdist jd "\n左点距离:"))
(setq you (getdist jd "\n右点距离:"))
(setq gao (getdist jd "\n节点板高:"))
(setq r (getangle jd "\n板件角度:"))
(setq xian (getdist jd "\n弦杆高:"))
(setq jd1 (polar jd (+ (* pi 1.5) r) (/ xian 2)))
(setq A (polar jd1 (+ pi r) zuo))
(setq D (polar jd1 r you))
(setq B (polar A (+ (* pi 1.5) r) gao))
(setq C (polar D (+ (* pi 1.5) r) gao))
(command "line" A B C D "")
(princ)

)
  • tongmingniao
    tongmingniao 沙发
    (defun c:123() ;画节点板
    (setvar "cmdecho" 0)
    (setq jd (getpoint "\n 请点取基点"))
    (setq zuo0 zuo)
    (setq zuo (getdist jd "\n左点距离:"))
    (if(= zuo nil) (setq zuo zuo0))
    (setq you0 you)
    (setq you (getdist jd "\n右点距离:"))
    (if(= you nil) (setq you you0))
    (setq gao0 gao)
    (setq gao (getdist jd "\n节点板高:"))
    (if(= gao nil) (setq gao gao0))
    (setq r0 r)
    (setq r (getangle jd "\n板件角度:"))
    (if(= r nil) (setq r r0))
    (setq xian0 xian)
    (setq xian (getdist jd "\n弦杆高:"))
    (if(= xian nil) (setq xian xian0))
    (setq jd1 (polar jd (+ (* pi 1.5) r) (/ xian 2)))
    (setq A (polar jd1 (+ pi r) zuo))
    (setq D (polar jd1 r you))
    (setq B (polar A (+ (* pi 1.5) r) gao))
    (setq C (polar D (+ (* pi 1.5) r) gao))
    (command "line" A B C D "")
    (princ)
    )
    距离和角度参数的输入可以用getreal,如果你知道确切的数值。如果按空格或回车,这些参数就默认为上一次输入的值。
    2009-03-12 23:07:12

    回复 举报
    赞同0
这个家伙什么也没有留下。。。

行业脉动

返回版块

12.06 万条内容 · 86 人订阅

猜你喜欢

阅读下一篇

【请教】关于lisp压缩命令格式

之前看到CAD技巧集里面曾经介绍过关于用lisp来进行命令压缩格式,原文如下:命令压缩格式 (DEFUN C:简码 () (COMMAND "命令" "命令行中的选项" "命令行中的选项" "命令行中的选项" ""))例如:用SW键代替进入西南视图的命令, 程序为 (DEFUN C:SW () (COMMAND "-VIEW" "SWISO")) 而我按照上述格式编写的lisp文件,用CAD加载以后,提示语法错误,命令不能执行。因为测量面积命令"area",每次输入后还需要选择"o"来点取实体,我觉得很麻烦,就想把该命令用新命令集成,这样就只需要按一次命令就可以。

回帖成功

经验值 +10