插入图块,三种方法,那个最好
如题;;插入图块----(一级)-----
;;(vla-ins-b "\\ XYZ\\kuai.dwg" '(0 0 0) 1 1 1 0)
(defun vla-ins-b (bname pt xscale yscale zscale rot / mspace)
(if (= (getvar "CTAB") "Model") (setq mspace *Model-Space*) (setq mspace *Paper-Space*))
;(command "-INSERT" bname pt 1 1 0) 插入方法1
;(vla-InsertBlock mspace (vlax-3d-point pt) bname xscale yscale zscale rot)插入方法2
(vlax-invoke mspace 'insertblock pt bname xscale yscale zscale rot) ;插入方法3
(princ)
)
本帖最后由 你有种再说一遍 于 2024-8-18 17:17 编辑
第一种是原生arx方式,虽然是command方式.
第二种似乎只是映射arx或者com.
第三种是com接口.
用第二个就好了.
但是这个克隆+插入有一个文字偏移的bug,
文字偏移
解决这个bug需要设置文字样式,再克隆,再切换图纸,粘贴之后再恢复文字样式.
一直用第二种 用command就挺好。 方法2与方法3,没啥区别吧,都是vla函数,只是写法的不同而已。 可以选的话第1和3,第一个常用,第三个短 还有一种用entmake也可以. 本帖最后由 e2002 于 2024-8-20 16:41 编辑
2和3是相同的。
另外代码中还需要:
a. 判断布局中的视口对象是否是激活状态;
b. 对于非平行与WCS的平面,还需要设置 对象的 Normal。
页:
[1]