好建议,比格尔!
我考虑过使用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)
- )
- )
- )
现在,我认为我在使用和想象极性函数时不再有问题(正如我在上一篇文章“绘制正方形”中所做的那样)。
这个例子可以帮助任何人在代码中“绘制”更复杂的形状。 |