乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 66|回复: 6

[编程交流] 复制嵌套对象,一个奇怪的

[复制链接]

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 17:49:15 | 显示全部楼层 |阅读模式
  1. (defun make*ublock(obj / blockobj)  
  2. (setq blockobj (vla-add (vla-get-blocks acaddocument) (vlax-3d-point (list 0 0 0))  "*u" ))     
  3. (vla-copyobjects acaddocument
  4.         (vlax-safearray-fill
  5.                 (vlax-make-safearray vlax-vbobject (cons 0 0) )
  6.                 (list obj)   
  7.         )
  8.         blockobj
  9. )   
  10. (vla-delete obj)
  11. (vla-get-name  blockobj)
  12. )
  13. (setq acadobject (vlax-get-acad-object)
  14. acaddocument (vla-get-activedocument acadobject)
  15. mspace (vla-get-modelspace acaddocument)
  16. )
  17. (setq nent (nentsel "\nSelect Nested Objects:"))
  18. (entmake (entget (car nent)))
  19. (setq objent (vlax-ename->vla-object (entlast))i 0)   
  20. (foreach n (last nent)  
  21. (setq obj (vlax-ename->vla-object n))   
  22. (setq blockrefobj
  23.         ( vla-insertblock
  24.                 mspace
  25.                 (vla-get-insertionpoint obj)
  26.                 (make*ublock  objent)
  27.                 (vla-get-xscalefactor   obj)
  28.                 (vla-get-yscalefactor   obj)
  29.                 (vla-get-zscalefactor   obj)
  30.                 (vla-get-rotation       obj)
  31.         )
  32. )
  33. (setq i (1+ i))  
  34. (if(> i 1)  (command "_.explode" (entlast)))
  35. (setq objent(vlax-ename->vla-object (entlast)))     
  36. )

 
 
见附件。
从块“12”复制嵌套对象是正常的。在原始位置复制对象。
 
但从块“34”复制嵌套对象有问题。复制对象,而不是在原始位置。
 
为什么?如何修复?
测试3.dwg
回复

使用道具 举报

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 18:00:54 | 显示全部楼层
找了很久,没找到原因
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 18:18:55 | 显示全部楼层
你好
 
原始块的原点(插入点)远离其定义内的原点,因此新创建的块遵循这些参数。
所以这也难怪,因为一切都是准确和正常的。
回复

使用道具 举报

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 18:28:42 | 显示全部楼层
 
谢谢我测试,如果我移动了块,那么使用该代码。复制对象,而不是在原始位置。有办法解决吗?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 18:34:14 | 显示全部楼层
 
上载修改后的块。
回复

使用道具 举报

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 18:41:31 | 显示全部楼层
 
移动时。如何上传?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 18:54:24 | 显示全部楼层
 
是否修改了块本身并将块内的所有对象移动到0,0,0?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 23:28 , Processed in 0.453503 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表