(defun c:arrow (/ p1 p2 dist vrt pickangle p3 p4 old new)
(setq p1 (getpoint "\nSpecify Start point of Arrow:")
p2 (getpoint p1 "\nSpecify End point of Arrow:")
dist (distance p1 p2)
vrt (/ dist 3)
pickAngle (angle p1 p2)
p3 (polar p2 (+ pickAngle (/ pi 2)) vrt)
p4 (polar p2 (- pickAngle (/ pi 2)) vrt))
(setq old (getvar 'osmode)
new (setvar 'osmode 0))
(vl-cmdf "_.pline" p1 "_w" 0 0 p3 p4 "_c" )
(vl-cmdf "_.-hatch" "_s" (entlast) "" "_p" "_solid" "" "")
(setvar 'osmode old)
(princ))
塔瓦特 请参阅修订。。。
(defun c:arrow (/ p1 Len Alen p2 p3)
(if (and (setq p1 (getpoint "\nSpecify Start point of Arrow:"))
(setq p2 (getpoint p1 "\nSpecify End point of Arrow:"))
)
(progn
(setq dist (distance p1 p2)
vrt (/ dist 3)
pickAngle (angle p1 p2)
p3 (polar p2 (+ pickAngle (/ pi 2)) vrt)
p4 (polar p2 (- pickAngle (/ pi 2)) vrt)
)
(vl-cmdf "_.pline" "_non" p1 "_w" 0 0 "_non" p3 "_non" p4 "_c")
(vl-cmdf "_.-hatch" "_s" (entlast) "" "_p" "_solid" "")
)
)
(princ)
) 非常强壮,速度更快。当然。
没有评论。
是什么让它在执行常规方面如此强大?
它是IF函数吗?
谢谢
请参阅注释。。。
(defun c:arrow (/ p1 Len Alen p2 p3)
(if (and (setq p1 (getpoint "\nSpecify Start point of Arrow:")) ; notice these are broken up to avoid error if the first is not defined, etc.
(setq p2 (getpoint p1 "\nSpecify End point of Arrow:")) ; only if these two variables are filled, will the routine continue
)
(progn
(setq dist (distance p1 p2)
vrt (/ dist 3)
pickAngle (angle p1 p2)
p3 (polar p2 (+ pickAngle (/ pi 2)) vrt)
p4 (polar p2 (- pickAngle (/ pi 2)) vrt)
)
(vl-cmdf "_.pline" "_non" p1 "_w" 0 0 "_non" p3 "_non" p4 "_c") ; if you add "_non" before defining a point in any command, it will ignore any running OSnaps. Thus, you don't have to worry with osmode
(vl-cmdf "_.-hatch" "_s" (entlast) "" "_p" "_solid" "")
)
)
(princ)
) 我说不出话来。
你很好地说服了我。
谢谢Alan
我的问候
塔瓦特 欢迎你,Michaels,很高兴你觉得这很有帮助
没问题,欢迎你tharwat313 享受
页:
1
[2]