可以给节点一个Z-va
长时间用户首次海报。我有一个旧的调查,我们再也没有原始数据了。我们从LSS创建的节点有一些相关级别(以文本形式),但是节点本身都是2D的。
有没有办法告诉这些节点将其Z值移动到文本行中的高度?我习惯于使用LISPs,虽然我对LISPs不太在行!
期待您的回复。
您好,欢迎来到CADtutor
有很多例子
这是快速和肮脏
(defun c:TXZ (/ ss i l vo p)
(princ "\nSelect TEXT.. ")
(if (setq ss (ssget ":L" '((0 . "TEXT"))))
(repeat (setq i (sslength ss))
(setq i (1- i) l
(mapcar ''((x) (vlax-get (setq vo (vlax-ename->vla-object (ssname ss i))) x))
'(TextString InsertionPoint)
))
(if (numberp (read (car l)))
(progn
(vla-put-InsertionPoint vo (vlax-3d-point (setq p (list (caadr l) (cadadr l) (atof (car l))))))
(entmakex (list '(0 . "POINT")(cons 10 p)))
)
)
)
)
(princ)
)
这对于给文本一个Z值是非常好的;有没有一种方法可以给它旁边的节点一个相同的值?
代码已更新
谢谢我还使用另一个线程中的其他内容得到了类似的结果,这在文本插入处创建了一个点。然而,上面的代码似乎没有为点提供Z值。
我对目前的情况感到满意。我的下一个问题是,有没有快速的方法将文本对象的Z属性与块/线匹配? 是的,通过匹配到最近的点(蛮力)是可能的,但在处理多个点的时间上存在问题,如果更多点在块线上共享相同的坐标,则如何覆盖。。
令人恼火但幸运的是,工作中的测量员已经找到了他的原始测量数据,因此我将能够从头开始处理它,并从中检索我需要的数据。
不过,这之前一直是个问题,我相信这些信息对未来的任务很有用。谢谢你迄今为止的帮助! 非常有用。我想知道是否有可能用属性块而不是纯文本来实现这一点。或者这一切都已经存在。在许多情况下,标签以块状形式出现。 是的,我们的测量员正在使用Geomax,因为我们使用lisp将数据属性输出为点ID,带有3个标记索引级别代码和一个节点,属性层基于测量员的点代码插入。使用express tools ATTOUT ATTIN或定制的lisp等来操作这些数据很容易 转换文本时需要注意的一件事是,文本相对于点的位置,如果使用插入点,比如左下角,但我们可以生成文本,因此小数点是实际点位置,因此存在x,y误差。要解决这个问题,只需在制作3d点之前检查并移动“所有”文本(如果需要)。大多数时候总比什么都没有好。
页:
[1]
2