这令人鼓舞。。。
我通过了。
我认为你搞砸了下水道调查,尤其是根据你的动议。 这可能会让我们走到一半。。。
(defun c:tpt (/ Make_Point Make_Text pt BoxNum BoxHgt BoxWid)
(setvar 'dimzin 0)
(defun Make_Point (pt)
(entmakex (list (cons 0 "POINT") (cons 10 pt))))
(defun Make_Text (pt val)
(setq pt1 (polar pt (atan BoxHgt (* BoxNum BoxWid))
(sqrt (+ (expt (* BoxNum BoxWid) 2)
(expt BoxHgt 2)))))
(entmakex (list (cons 0 "MTEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbMText")
(cons 71 3)
(list 10 (car pt1) (cadr pt1) (caddr pt))
(cons 40 (getvar 'TEXTSIZE))
(cons 1
(strcat "{\\fCourier New|b0|i0|c0|p49;" val "}")))))
(setq BoxNum (+ 0.5 (getvar 'LUPREC))
BoxHgt (getvar 'TEXTSIZE)
BoxWid (* (expt 1.00272389 (getvar 'LUPREC)) (getvar 'TEXTSIZE)))
(while (setq pt (getpoint "\nPick Point: "))
;(Make_Point (setq pt (trans pt 1 0)))
(Make_Text pt (rtos (caddr pt))))
(princ))
我将对lee进行测试,我之前对其进行了硬编码,因为将每个字母放在方框中似乎会漏掉,尽管它是一种等距字体,但我们拭目以待。 可能会到达那里李(但不是靶心),
看起来很好,在处理任意数量的小数方面做得很好,只需要稍微调整一下
(+0.5(getvar‘LUPREC))
太累了,现在想不起来了,回来吧,汤姆。 我更新了上面的代码,稍加改进,但仍然不是bullseye。 如果是水文/水深测量,那么测深的平面位置通常是最接近的米,因此它应该是足够的。但以后不要更改文本的大小。(这是小数点对正有用的地方)
水深测量仅涉及测量深度,而水文测量涉及制图和其他事项,包括测量深度。 这说明了使用“装箱”文本的方法的问题:
绿色框是使用文本中符号的几何范围获得的框,洋红色线是1.0 x 1.0正方形,x坐标使用绿色框居中。
Textsize为1.0
请注意,字符之间存在不均匀的空格,因此很难获得到小数点的精确距离。
李
李,
您始终可以强制使用真正的等距字体-大卫 好主意,大卫!我迷上了Courier New。。。
(defun c:tpt (/ Make_Point Make_Text pt BoxNum BoxHgt BoxWid)
;; Lee Mac, David Bethel & Wizman~10.01.10 (= 38)
(setvar 'dimzin 0)
(defun Make_Point (pt)
(entmakex (list (cons 0 "POINT") (cons 10 pt))))
(defun Make_Text (pt val)
(setq pt1 (polar pt (atan BoxHgt (* BoxNum BoxWid))
(sqrt (+ (expt (* BoxNum BoxWid) 2)
(expt BoxHgt 2)))))
(entmakex (list (cons 0 "MTEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbMText")
(cons 71 3)
(list 10 (car pt1) (cadr pt1) (caddr pt))
(cons 40 (getvar 'TEXTSIZE))
(cons 1(strcat "{\\fMonospac821 BT|b0|i0|c0|p49;" val "}")))))
(setq BoxNum (+ 0.412636 (getvar 'LUPREC))
BoxHgt (* 0.892748 (getvar 'TEXTSIZE))
BoxWid (* (/ 13 15.) (getvar 'TEXTSIZE)))
(while (setq pt (getpoint "\nPick Point: "))
;(Make_Point (setq pt (trans pt 1 0)))
(Make_Text pt (rtos (caddr pt))))
(princ))
页:
1
[2]