高程点程序
我想知道是否有人知道已经编写的程序,或者如何更正一个简单的程序,该程序将从一个点提取高程,并将文本中的高程放置在节点上,小数点位于该点的节点上。任何帮助都将不胜感激。 沿着这些路线?
(defun c:tpt (/ Make_Point Make_Text pt)
(defun Make_Point (pt)
(entmakex (list (cons 0 "POINT") (cons 10 pt))))
(defun Make_Text (pt val)
(entmakex (list (cons 0 "TEXT")
(cons 10 pt)
(cons 40 (getvar "TEXTSIZE"))
(cons 1 val)
(cons 72 1)
(cons 73 1)
(cons 11 pt))))
(while (setq pt (getpoint "\nPick Point: "))
(Make_Point (setq pt (trans pt 1 0)))
(Make_Text pt (rtos (caddr pt))))
(princ))
李看起来不像是“在点的节点上用小数点”实现的。
这个问题以前已经讨论过了(小数点左右两侧的文本大小不同)。
除非可以精确知道小数点和文本的位置,否则您可能必须为小数点的L和R部分创建单独的文本项。 AutoCAD始终缺少十进制对正。
通常,水文测量受益于小数点对齐(假设小数点是点而不是逗号)
没错,我只是用了下中对齐 十进制对正有什么用?,这是一个近似值:
(defun c:tpt (/ Make_Point Make_Text pt)
(setvar 'dimzin 0)
(defun Make_Point (pt)
(entmakex (list (cons 0 "POINT") (cons 10 pt))))
(defun Make_Text (pt val)
(setq pt1 (polar pt (* (/ 16.180.) pi) (* (getvar 'textsize) 3.6099)))
(entmakeX
(list '(0 . "MTEXT")
'(100 . "AcDbEntity")
'(100 . "AcDbMText")
'(71 . 3)
'(8 . "0")
(list 10 (car pt1) (cadr pt1)(caddr pt))
(cons 40(getvar 'textsize));
(cons 1
(strcat
"{\\fCourier New|b0|i0|c0|p49;"
val
"}"
)
)
)
))
(while (setq pt (getpoint "\nPick Point: "))
;(Make_Point (setq pt (trans pt 1 0)))
(Make_Text pt (rtos (caddr pt) 2 3)))
(princ))
当我试着运行它时,它会倾斜。。
错误如下。。。
命令:appload
tpt。lsp已成功加载。
命令:;错误:错误的参数类型:numberp:nil Stevesfr,我没有发现这个错误,我稍微修改了一下,请再试一次,这不是确切的位置,但我可以从修改lee的代码中得到最接近的位置,但我仍然建议文本插入点在点上,而不是小数点上。
你显然没有经历过水文测量,这将非常有用。
然而,您的代码很巧妙,但应该限定为只能使用小数点后三位和字体。
但是它可以被修改为使用不同的小数位数和不同的字体。 没有埃尔登,从未从事过水文测量,这和水深测量是一样的吗?不管怎样,我只要用谷歌搜索一下。你说得对,它可以修改为不同的小数位数,但必须正确对齐,并且只适用于等距字体。
页:
[1]
2