不是真的。图形中没有块。
在变量中使用它的值后,我想重置它是dwg本身的基础。
这就是你的意思吗?
注意:在调用例程之前解锁并打开所有层,以确保取得丰硕成果。
(defun c:Test ( / pt ss)
; Tharwat 18. Feb 2011
(vl-load-com)
(if
(and
(setq pt (getpoint "\n Base point of Objects :"))
(setq ss (ssget "_x" ))
)
((lambda (i / ss1 o )
(while
(setq ss1 (ssname ss (setq i (1+ i))))
(setq o (vlax-ename->vla-object ss1))
(vla-move o
(vlax-3d-point pt)
(vlax-3d-point '(0.0 0.0 0.0)))
)
)
-1
)
(princ)
)
(princ)
)
塔瓦特 (setq pt (getpoint "\n Base point of Objects :"))
输入“base”命令后,该信息应由命令提示符返回。
某人 究竟为什么要更改INSBASE系统变量?我可能错了,但我一直认为不应该更改INSBASE变量,并使用原点(0,0,0)作为所有块的基点-我认为这是大多数公司的标准。
确切地
在图书馆工作的那个人有这些画。所以他把它做成了wbloks。
他没有将几何体移动到0,0,0点。他就这样离开了,定义了一个基点。
这就是为什么我想重置它们:wink: 这将修复图形:
(defun c:FixIns nil (vl-load-com) ;; © Lee Mac 2011
(
(lambda ( p1 p2 / ss )
(if (ssget "_X")
(progn
(vlax-for obj
(setq ss
(vla-get-activeselectionset
(vla-get-activedocument (vlax-get-acad-object))
)
)
(vla-move obj p1 p2)
)
(vla-delete ss) (setvar 'INSBASE '(0. 0. 0.))
)
)
)
(vlax-3D-point (trans (getvar 'INSBASE) 1 0)) (vlax-3D-point '(0. 0. 0.))
)
(princ)
) 像往常一样完美。
“insbase”就是这样。
非常感谢李! 不客气,坐吧。
页:
1
[2]