乐筑天下

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

请问如何用arx实现在当前文件中,应用另一文件中定义的块?thanks

[复制链接]

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2002-9-29 00:15:00 | 显示全部楼层 |阅读模式
我想实现用arx在当前打开的文件中,插入外部一文件中定义好的某一个块。在插入时,对于插入点可以在屏幕上控制。不知用什么方法可以?
谢谢!
回复

使用道具 举报

11

主题

36

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2002-9-30 14:54:00 | 显示全部楼层
先定义 AcDbDatabase * pDb = new AcDbDatabase(Adesk::kFalse);
然后读入有块的文件 pDb->readfile(strFile);
从中获取所需图块的描述或将所需图块写到另一个文件(bb.dwg)中,在新文件中插入bb.dwg,试试吧,祝好运!
不过我觉得似乎没有必要这么做???
回复

使用道具 举报

14

主题

230

帖子

5

银币

后起之秀

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

铜币
286
发表于 2002-9-30 15:33:00 | 显示全部楼层
stoneball朋友觉得似乎没有必要这么做,我有同感。不过我的意见与stoneball朋友有所不同:首先,仅就使用其它文件定义的图块而言,ACDA设计中心很容易做到,无须ARX编程。其次,就算要用ARX实现也并不困难。这是我一直未回复该主题的原因。
首先新建AcDbDatabase并打开图形文件(不是readfile,而是pDb->readDwgFile(strFile););然后浏览strFile的块表记录,找到要使用的图块,获取该图块的块表记录。最后,在当前图形数据库中插入图块,用AcDbBlockReference类的构造函数:
AcDbBlockReference(const AcGePoint3d& position,AcDbObjectId blockTableRec);
该函数的第二个参数就是从strFile文件中获取的块表记录。在此之前用acedGetPoint()函数要求用户输入点后转换为AcGePoint3d类型作为构造函数的第一个参数,即可实现插入点在屏幕上控制。
stoneball朋友试着做做,这是ARX图形数据库操作的基本知识。有什么困难告诉我,会回复的。
回复

使用道具 举报

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
12
发表于 2004-10-12 18:23:00 | 显示全部楼层
我也遇到同样问题,但是如你说的:
首先新建AcDbDatabase并打开图形文件(不是readfile,而是pDb->readDwgFile(strFile););然后浏览strFile的块表记录,找到要使用的图块,获取该图块的块表记录。最后,在当前图形数据库中插入图块,用AcDbBlockReference类的构造函数:
AcDbBlockReference(const        AcGePoint3d&        position,AcDbObjectId        blockTableRec);
用新建的AcDbDatabase获取图块id后,如何插入到当前数据库呢?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 23:53 , Processed in 0.201263 second(s), 71 queries .

© 2020-2025 乐筑天下

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