更新arrowhe的Lisp例程
我有一个lisp例程,它绘制一条弧,然后在弧的末端绘制一个箭头,类似于leader命令。我要做的是根据我设置图形的dimscale更改箭头。为了节省时间,我们使用了很多用这些弧预先绘制的细节,但我不想在不同比例的图形中使用每个箭头时都按比例缩放。有什么建议吗?我正在使用Autocad 2007。 你能发布要修改的LISP吗?谢谢 这个对你想做的事有用吗?
http://www.cadtutor.net/forum/showthread.php?p=96233&highlight=arrow*#邮政编码96233
不,不是真的,它几乎和我现在运行的Lisp程序是一样的。我想做的是能够更改图形的dimscale,然后使用DIM UPDATE将箭头大小调整为正确的大小。已绘制弧箭头。
给你。
(定义c:ARCARW(/sblip shigh sorth ssnp saptr arc1 arc1s arc2 arc3 rotpt pt rot th dim);IMB1ARW公司
(setvar“cmdecho”0)
(命令“undo”“g”)
(setq as(getvar“dimscale”))
(提示“\nArc(3 pt)箭头:”)
(setq arc1(getpoint“\n输入第一个弧点:”)
(setq arc2(getpoint“\n输入第二个弧点:”))
(命令“color”“green”)
(命令“linetype”S“hidden”)
(命令“arc”arc1 arc2 pause)
(setq arc3(getvar“lastpoint”)en(entlast)ed(entget en))
(命令“color”“bylayer”)
(命令“linetype”“S”“continuous”“”“”)
(setq rotpt(极弧3(角弧3 arc2)(*0.1(getvar“dimscale”)))
(setq rad(cdr(assoc 40 ed))cen(cdr(assoc 10 ed)))
(setq arrw(*0.0625(getvar“dimscale”))bside(sqrt(-rad rad)(*arrw arrw)))
(setq radend(角度cen arc3)difang(atan(/arrw bside)))
(arcdir ed arc3);返回ARCD“E”或“N”
(如果(=弧D“E”);相等,角度加90
(progn(setq newang(+radend difang)rotang(+newang pi))
)
(progn(setq newang(-radend difang)rotang(-newang pi))
)
)
(setq mopt(极坐标cen newang rad)rot(角度arc3 mopt)rotd(*(/rot pi)180))
(命令“-INSERT”“L:/LIBRARY/i66”arc3 as(*(/rot pi)180))
(命令“undo”“e”)(prin1)
(setvar“cmdecho”1)
) 碰撞
页:
[1]