我考虑过使用DtR功能:
Command: (setq p45 (/ pi 4.0))
0.785398
Command: (defun DtR (d) ( * PI (/ d 180.0)))
DTR
Command: (DtR 45)
0.785398
对于像我这样不使用弧度的人来说,它似乎很方便。
昨天我找到了一种简单的方法来检查一系列点,每个点都是从极函数返回的。
我没有创建点对象,而是使用点名称的内容(就像我在代码中引用的那样)生成带有中间对齐的多行文字。例子:
(defun C:test ( / pt1 pt2 midpt keypt dist ang )
(while
(and
(setq pt1 (getpoint "\nPick first point"))
(setq pt2 (getpoint pt1 "\nPick second point"))
)
(progn
(setq dist (distance pt1 pt2))
(setq ang (angle pt1 pt2))
(setq midpt (polar pt1 ang (/ dist 2.0)))
(setq keypt (polar midpt (+ ang (/ pi 2.0)) dist)) ; keypt-midpt should be perpendicular to pt1-pt2
; perform points check:
(M-Text pt1 "pt1")
(M-Text pt2 "pt2")
(M-Text midpt "midpt")
(M-Text keypt "keypt")
; perform length check:
(Line pt1 pt2)
(Line midpt keypt)
);progn
)
(princ)
);defun
; LM
(defun M-Text (pt str)
(entmakex
(list
(cons 0 "MTEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbMText")
(cons 10 pt)
(cons 1 str)
(cons 71 5)
)
)
)
(defun Line (p1 p2)
(entmakex
(list
(cons 0 "LINE")
(cons 10 p1)
(cons 11 p2)
)
)
)
现在,我认为我在使用和想象极性函数时不再有问题(正如我在上一篇文章“绘制正方形”中所做的那样)。
这个例子可以帮助任何人在代码中“绘制”更复杂的形状。
页:
1
[2]