移动块Z值?
给定一个特定块,我如何检索它的X、Y和Z坐标,然后将其Z值移动到特定深度(同时保持X和Y相同)?谢谢
这样做有助于:
(command "._move" block_entity_selected "" '(0 0 0) (list 0 0 Z))
~'J'~ 谢谢Fixo,
也许我需要澄清一点-我需要将变量“深度”的值添加到当前Z值,并将其设置为新的Z值。我不认为我可以使用命令调用来实现。。。? 那么是这样
(setq Z (getreal "\nEnter delta Z value: "))
(princ "\nSelect block")
(setq ss (ssget "_:L" '((0 . "INSERT"))))
(command "_.MOVE" ss "" "0,0,0" (strcat "@0,0," (rtos Z 2 15)))
以下是Q&D示例
也试试吧
(defun C:MZ (/ elist en sset zv)
(setq zv (getreal "\nEnter a Z value to add to an existing Z value: "))
(princ "\n >> Select block instance >>")
(if
(setq sset (ssget "_:S:E:N" '((0 . "INSERT"))))
(progn
(setq en (ssname sset 0))
(setq elist (entget en)
ptlist (assoc 10 elist)
)
(entmod (subst
(cons 10 (list (car (cdr ptlist))
(cadr (cdr ptlist))
(+ (last (cdr ptlist)) zv)))
ptlist
elist)
)
(entupd en)
)
)
(princ)
)
~'J'~ 谢谢你的帮助,菲索
我相信还有更好的方法,但在插入块之前,我就这样结束了:
(setq x (car pt))
(setq y (cadr pt))
(setq Z1 (caddr pt))
(setq Z2 (+ depth Z1))
(setq PT2 (list x y Z2)) 不客气
快乐计算
~'J'~
哈,让我们称之为“快乐学习!”
谢谢 如果在插入块之前知道所需的标高,则更容易,只需“标高”“标高”并设置值,但不要忘记将其设置回0.0
在这种情况下我没有。我只知道地表以下的深度。高程从三维柱基线上的点开始,然后移动到其下方。
...我刚刚意识到我正在添加代码,在那里我需要减去。。。
页:
[1]
2