直线或柱脚的自动尺寸标注非常简单,只需列出直线并获取其长度,然后将文本放在中点即可。
困难的部分是让文本在每行的正确一侧,您可能需要为每行输入“是”或“否”。
这是一个很老的问题,但一个很好的起点为你提供了创建自己的问题的大部分答案。
- ;SETOUT3.LSP
- ; program to draw setout details as a co-ord list
- ; with co-ords to two points
- ; 29/7/01 by alan
- (setvar "menuecho" 0)
- (setvar "SNAPMODE" 0)
- (COMMAND "STYLE" "MYDEFAULT" "ISO3098b" 0.0 1.0 0.0 "N" "N" "N")
- (setq oldangbase (getvar "angbase"))
- (setq oldangdir (getvar "angdir"))
- (setq oldaunits (getvar "aunits"))
- (setvar "angbase" 0.0)
- (setvar "angdir" 0)
- (setvar "aunits" 3)
- (SETQ SETSC (GETREAL "\nWhat is overall scale 1 ? "))
- (SETQ TXTHT (* 1.75 setsc)) ;CHANGE TO ASK FOR FINAL PLOT SCALE
- (while
- (SETVAR "OSMODE" 1)
- (setq pt1 (getpoint "\nPick 1st point, press <cr> to exit"))
- (setq pt2 (getpoint "\nPick next point, press <cr> to exit"))
- (SETQ DIST (DISTANCE PT1 PT2))
- (SETQ DISTMID (/ DIST 2.0))
- (SETQ ANG (ANGLE PT1 PT2))
- (setq pt3 (polar pt1 ANG DISTMID))
- (setq pt3 (polar pt3 (+ ang 1.5707) 1.5))
- (SETQ BLOCKLEN (RTOS DIST 2 2))
- (SETVAR "OSMODE" 0)
- (command "text" "MC" pt3 txtht ANG BLOCKLEN)
- (setq flip (getstring "\nFlip text 180 press f "))
- (if (or (= flip "f")(= flip "F"))
- (command "rotate" "l" "" pt3 3.14159)
- )
- ) ; end while
- (setvar "angbase" oldangbase )
- (setvar "angdir" oldangdir)
- (setvar "aunits" oldaunits)
- (setq pt1 nil
- pt2 nil
- pt3 nil
- pt4 nil
- pt5 nil
- pt6 nil
- stpt nil
- ans nil
- )
- (princ)
今天还有另一篇关于文字到行的帖子。 |