乐筑天下

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

四例ARX问答

[复制链接]

32

主题

150

帖子

7

银币

后起之秀

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

铜币
278
发表于 2002-9-3 15:31:00 | 显示全部楼层 |阅读模式
一:用ARX产生一个实体后,为体么不能马上用ssget选中它并进行操作?
答: 在ARX中产生一个实体如*pLine,一般最后执行appendAcDbEntity和pLine->close().
执行appendAcDbEntity后, 只是往数据库中增加数据,并没有在图形区产生(没有Draw()),因此ssget是得不到的。 pline->close() 只是关闭指针并发送消息,它本身并不执行Draw的任务,因此这个时候也是从图形区得不到的。 acedssget操作的是图形区,而append 和close()操作的是数据库,这两者之间有是时间差的。如果一定要在产生一个实体后马上用ssget去选它,则在此之前要执行一点别的东西如”redraw” 之类的。
二isp程序如何同Arx交换数据
答:首先,在定义Arx命令的时候要定义成ads_defun的形式; 在命令函数中resbuf* pArg = acedGetArgs();将会自动产生。其中pArg中就是我们从Lisp中传来的参数。比如我们在Lisp中调Arx命令(Test 8.0 “testtxt”) , 那么,在pArg中,第一个数将会是8.0 ,第二个参数将会是”testtxt”. 反过来,将Arx的参数传给Lisp,则用acedRetReal()等Arx函数。
三:如何在中批量处理Dwg,如改变一个目录下所有的图形的字体设置.
答:要遍历一个目录下的所有文件或文件夹,可以用VC中的CFileFind. 对每一个图,我们定义一个新的AcDbDataBase *pDb=new AcDbDataBase(…);然后用 pDb->readDwgFile()将图纸读进来,再对pDb进行任意的操作,最后将运行pDb->save(),再运行delete pDb;
四:在非模式对话框中,操作图形数据库时为何死机?
答: 在多档状态时(SDI=0),使用非模式对话框时要显式地管理文档的状态;例如我们要加入一条直线,可以这样写:
AcGePoint3d pt0(0,0,0),pt1(100,500,0);
AcDbLine *pEnt=new AcDbLine(pt0,pt1);
AcDbBlockTable *pBlockTable;
acDocManager->lockDocument( acDocManager->curDocument(), AcAp::kWrite,
NULL,
NULL,true) ;
//将当前文档锁定,因为要写入实体了
acDocManager->curDocument()->database()->getBlockTable(pBlockTable,AcDb::kForRead);
//打开当前文档的块表
//acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable,AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRec;
pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRec,AcDb::kForWrite);
pBlockTable->close();
AcDbObjectId eId;
pBlockTableRec->appendAcDbEntity(eId,pEnt);
pEnt->close();
pBlockTableRec->close();
//运行完了要解锁
acDocManager->unlockDocument( acDocManager->curDocument())
回复

使用道具 举报

16

主题

33

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
97
发表于 2002-9-12 19:29:00 | 显示全部楼层
我是一个初学者(仅熟悉些AutoLisp),把第二个问题(lisp与ARX交换数据)给个现成的例子,我再下来惨悟或者直接套用,如何?  多谢!
  能再详细解释一下更好。
回复

使用道具 举报

0

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
4
发表于 2011-11-12 22:27:00 | 显示全部楼层
不懂,唉
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-5 14:01 , Processed in 0.147035 second(s), 58 queries .

© 2020-2025 乐筑天下

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