明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 931|回复: 7

[提问] 插入图块,三种方法,那个最好

  [复制链接]
发表于 2024-8-18 12:52:42 | 显示全部楼层 |阅读模式
如题


  1. ;;插入图块----(一级)-----
  2. ;;(vla-ins-b "\\ XYZ\\kuai.dwg" '(0 0 0) 1 1 1 0)
  3. (defun vla-ins-b (bname pt xscale yscale zscale rot / mspace)
  4.   (if (= (getvar "CTAB") "Model") (setq mspace *Model-Space*) (setq mspace *Paper-Space*))
  5.   ;(command "-INSERT" bname pt 1 1 0) 插入方法1
  6.   ;(vla-InsertBlock mspace (vlax-3d-point pt) bname xscale yscale zscale rot)插入方法2
  7.   (vlax-invoke mspace 'insertblock pt bname xscale yscale zscale rot) ;插入方法3
  8.   (princ)
  9. )


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-8-18 17:06:42 | 显示全部楼层
本帖最后由 你有种再说一遍 于 2024-8-18 17:17 编辑

第一种是原生arx方式,虽然是command方式.
第二种似乎只是映射arx或者com.
第三种是com接口.
用第二个就好了.

但是这个克隆+插入有一个文字偏移的bug,
文字偏移

解决这个bug需要设置文字样式,再克隆,再切换图纸,粘贴之后再恢复文字样式.
回复 支持 1 反对 0

使用道具 举报

发表于 2024-8-18 13:47:27 | 显示全部楼层
一直用第二种
发表于 2024-8-18 15:01:21 | 显示全部楼层
用command就挺好。
发表于 2024-8-18 16:18:41 | 显示全部楼层
方法2与方法3,没啥区别吧,都是vla函数,只是写法的不同而已。
发表于 2024-8-18 16:34:20 | 显示全部楼层
可以选的话第1和3,第一个常用,第三个短
发表于 2024-8-19 00:42:14 | 显示全部楼层
还有一种用entmake也可以.
发表于 2024-8-20 16:39:45 | 显示全部楼层
本帖最后由 e2002 于 2024-8-20 16:41 编辑

2和3是相同的。

另外代码中还需要:
   a. 判断布局中的视口对象是否是激活状态;
   b. 对于非平行与WCS的平面,还需要设置 对象的 Normal。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 09:59 , Processed in 0.265397 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表