明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1530|回复: 2

[求助]一个极简单的LISP程序,帮忙看看:)

[复制链接]
发表于 2004-3-22 19:53:00 | 显示全部楼层 |阅读模式
就是画一个荷载示意图: (Defun C:loadq ()
(setvar "cmdecho" 1)
(command "layer" "m" "loadq" "C" 2 "loadq" "")
(command "_.line"
(setq pt1 (getpoint "均布荷载起点a:"))
(setq pt2 (getpoint "\n均布荷载终b:"))
(setq pt3 (getpoint "\n均布荷载高度h:"))
(setq pt4 (list (car pt1) (cadr pt3)))
"c"
)
(setq h (distance pt2 pt3))
(setq n (fix (/ (distance pt1 pt2) h)))
(if (< n 6)
(setq n 6)
)
(setq pt5 (list (car pt1) (+ (cadr pt4) (/ h 5))))
(command "_.pline" pt1 "w" 0 (/ h 10) pt5 "w" 0 0 pt4 "")
(setq ent (entlast))
(command "array"
ent
""
""
""
(+ n 1)
(/ (distance pt1 pt2) n)
)
) 1。红色部分是画一个箭头,不知道为什么只有“头”,没有“尾巴”,如何修改?
2。里面的语句请帮忙修改一下,如开头怎么打开正交? 3。如果要想作为一个“对象”,而且附加扩展数据Q=36KN/m,应该怎么做?(因为这种荷载可能不只一个) 请帮忙想一个办法~~多谢~~
发表于 2004-3-22 20:41:00 | 显示全部楼层
1、(setvar "orthomode" 1)



2、你先用命令行试试看画一个箭头该怎么画。。。(注意各点的位置,不要搞错了)


3、要把谁作为一个对象?所有的箭头吗?


4、(setq pt2 (getpoint pt1...))
 楼主| 发表于 2004-3-22 21:17:00 | 显示全部楼层
3。举个例子来说,我用pline花了一个箭头: (Defun C:loadf ()
(setvar "cmdecho" 1)
(command "layer" "m" "loadf" "C" 3 "loadf" "")
(command "linetype" "S" "BYLAYER" "")
(setq fo (getpoint "选择集中力作用点:" ))
(setq ft (getpoint "高度:" ))
(setq fl (distance fo ft ))
(if (null cal)(arxload"geomcal"))
(setq fm (c:cal "(fo + ft) / 2"))
(setq fe (c:cal "(fo +fm ) / 2"))
(command "_.pline" fo "w" 0 (/ fl 10) fe "w" 0 0 ft "")
;(setvar "cmdecho" 1)
(princ)
) 然后用(entget(entlast))可以得到一个对象,可以添加扩展数据,因为一次完成的
而上面的那个图,是由很多线段组成的,不知道给那个对象添加数据。。。。
N
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 22:30 , Processed in 0.172477 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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