距离值->文本
大家好!我需要一些帮助。
我发现自己每天都在测量从一个基点到其他点的距离,然后在几何图下方的文本形式中输入距离值。
有没有什么方法可以测量距离,立即得到一个文本及其值,并将其定位在您想要的位置。
我用dimesnions做了一些事情,使用基线选项,然后爆炸,但造成了很多混乱,你最终清理,这导致了大量的时间损失。
这是一个示例。
文字值表示红线与绿线的距离。
谢谢Butch
你可以通过点击空格来旋转文本,或者你在这里要求不同的东西?
这应该不会太难合并。 试试这个:
我为例程增加了更多的安全性,并加入了“基础提升”选项。
你能澄清一下你的其他要求吗。 李-麦克这东西很有魅力!:-)
我的意思是,你的第一次点击是距离测量的基点。指定基点后,只需单击要测量的其他点,以确保与基点之间的距离。。。看这幅画。
有没有可能你只需要2个文本位置,就像图片上的那样?
一个更伟大的人!;-)
谢谢你这么做!
http://img196.imageshack.us/img196/1995/afdl.th.jpg 这样地?
;; Distance Plotter by Lee McDonnell (Lee Mac)
;; 16.06.2009
(defun c:dist2 (/ *error* doc spc tmp pt1 pt2 tObj gr)
(vl-load-com)
(defun *error* (msg)
(if (not (wcmatch (strcase msg) "*CANCEL*,*EXIT*"))
(princ (strcat "\n<< Error: " msg " >>")))
(princ))
(if (eq 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (getvar "CLAYER"))))))
(progn
(princ "\n<< Current Layer Locked >>") (exit)))
(or *Mac$Rot* (setq *Mac$Rot* 0.0))
(or *Mac$Def* (setq *Mac$Def* 0.0))
(setq doc (vla-get-ActiveDocument
(vlax-get-Acad-Object))
spc (if (zerop (vla-get-activespace doc))
(if (= (vla-get-mspace doc) :vlax-true)
(vla-get-modelspace doc)
(vla-get-paperspace doc))
(vla-get-modelspace doc)))
(setq tmp (getreal
(strcat "\nSpecify Base Elevation <" (rtos *Mac$Def*) ">: ")))
(or (not tmp) (setq *Mac$Def* tmp))
(if (setq pt1 (getpoint "\nSelect Base Point: "))
(while (setq pt2 (getpoint "\nSelect Second Point: " pt1))
(vla-put-Alignment
(setq tObj
(vla-addText spc
(rtos
(+ (distance pt1 pt2) *Mac$Def*))
(vlax-3D-point '(0 0 0))
(getvar "TEXTSIZE"))) acAlignmentMiddleCenter)
(while
(or
(and (setq gr (grread t 15 0))
(eq 5 (car gr)))
(and (eq 2 (car gr))
(eq 32 (cadr gr))))
(cond ((and (eq 5 (car gr)) (listp (cadr gr)))
(vla-move tObj
(vla-get-TextAlignmentPoint tObj)
(vlax-3D-point (cadr gr))))
((and (eq 2 (car gr)) (eq 32 (cadr gr)))
(vla-put-Rotation tObj
(setq *Mac$Rot* (- (/ pi 2.) *Mac$Rot*))))))))
(princ))
李,抱歉耽搁了!
它工作得很好,但可以更快。你能做以下事情吗。。。与测量距基点的总距离不同,您是否可以仅测量距基点的δx或δy值?对不起,我太挑剔了:-(
看这张照片,你就会明白了。
http://img197.imageshack.us/img197/2513/asdgf.th.jpg 试试这个:
;; Distance Plotter by Lee McDonnell (Lee Mac)
;; 16.06.2009
(defun c:dist2 (/ *error* doc spc tmp tmp2 pt1 pt2 tObj gr)
(vl-load-com)
(defun *error* (msg)
(if (not (wcmatch (strcase msg) "*CANCEL*,*EXIT*"))
(princ (strcat "\n<< Error: " msg " >>")))
(princ))
(if (eq 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (getvar "CLAYER"))))))
(progn
(princ "\n<< Current Layer Locked >>") (exit)))
(or *Mac$Rot* (setq *Mac$Rot* 0.0))
(or *Mac$Def* (setq *Mac$Def* 0.0))
(or *Mac$Dir* (setq *Mac$Dir* "Y"))
(setq doc (vla-get-ActiveDocument
(vlax-get-Acad-Object))
spc (if (zerop (vla-get-activespace doc))
(if (= (vla-get-mspace doc) :vlax-true)
(vla-get-modelspace doc)
(vla-get-paperspace doc))
(vla-get-modelspace doc)))
(setq tmp (getreal
(strcat "\nSpecify Base Elevation <" (rtos *Mac$Def*) ">: ")))
(or (not tmp) (setq *Mac$Def* tmp))
(initget "X Y")
(setq tmp2 (getkword
(strcat "\nSpecify Axis to Measure <" *Mac$Dir* ">: ")))
(or (not tmp2) (setq *Mac$Dir* tmp2))
(if (setq pt1 (getpoint "\nSelect Base Point: "))
(while (setq pt2 (getpoint "\nSelect Second Point: " pt1))
(vla-put-Alignment
(setq tObj
(vla-addText spc
(rtos
(+ (- ((if (eq *Mac$Dir* "X") car cadr) pt2)
((if (eq *Mac$Dir* "X") car cadr) pt1)) *Mac$Def*))
(vlax-3D-point '(0 0 0))
(getvar "TEXTSIZE"))) acAlignmentMiddleCenter)
(while
(or
(and (setq gr (grread t 15 0))
(eq 5 (car gr)))
(and (eq 2 (car gr))
(eq 32 (cadr gr))))
(cond ((and (eq 5 (car gr)) (listp (cadr gr)))
(vla-move tObj
(vla-get-TextAlignmentPoint tObj)
(vlax-3D-point (cadr gr))))
((and (eq 2 (car gr)) (eq 32 (cadr gr)))
(vla-put-Rotation tObj
(setq *Mac$Rot* (- (/ pi 2.) *Mac$Rot*))))))))
(princ))
李,你现在可能想杀了我…:-)
根据测量值的方向,这件事在逻辑上运行良好,可以获得-或+值。
问题是,即使在距离基点左侧的点是否定的,我也必须总是把它们写成肯定的。。。是的,我知道这很糟糕:-(
你有没有可能让他们转向Abslout值,这样他们总是积极的?(你现在可能经常提到我母亲;-)
http://img197.imageshack.us/img197/5163/gtrs.th.jpg 这不是问题-只需要一个小的改变:
3 李·麦克!
我们仍然有一个问题。。。我们必须让你成为百万富翁;-)
这是一些很棒的东西,它将为我节省大量时间和无聊的编辑!
但是我有一个小问题。我定义了一个我想在你的工具中使用的文本样式(格式->文本样式->新建->并将其高度设置为0.4个单位和Arial字体。问题是,当我使用你的工具时,我的字体样式处于活动状态,我得到的是Arial字体样式,但无论我做什么,字体高度始终为0.2(在本例中,将其设置为0.4)。你能帮忙吗?
页:
[1]
2