明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2359|回复: 4

四例ARX问答

[复制链接]
发表于 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函数。
三:如何在AutoCAD中批量处理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())
 楼主| 发表于 2002-9-11 11:24:00 | 显示全部楼层

up

发表于 2002-9-12 19:29:00 | 显示全部楼层

再询问一下第二个问题?[求助]

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

up

发表于 2011-11-12 22:27:24 | 显示全部楼层
不懂,唉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 11:00 , Processed in 0.161364 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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