几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » DirectDWG
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


 
 
主题工具 搜索本主题 显示模式
旧 2009-05-06, 03:47 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】incomplete acis convertion in odamfcapp

incomplete acis convertion in odamfcapp
incomplete acis convertion in odamfcapp
try this :
build a dwg with a 3dsolid in the model space bloc, and put another 3dsolid in a new bloc (foo for example). the tree in odamfcapp should looks like that :
db
|-blocktable
...|-foo
......|-3dsolid
...|-modelspace
......|-3dsolid
code:
oddbblocktablerecordptr pms = pdb->getmodelspaceid().openobject();this line explicitly show that only modelspace is decomposed. the 3dsolid into foo will still be here.
i tried to process the whole block table with this code
code:
oddbblocktableptr pbtp = pdb->getblocktableid().openobject();
oddbsymboltableiteratorptr pstiter = pbtp->newiterator();
while(!pstiter->done())
{
oddbblocktablerecordptr pms = (oddbblocktablerecordptr) pstiter->getrecord();
oddbobjectiteratorptr pentiter = pms->newiterator();
while(!pentiter->done())
...original code...but it seems to loop.
do i miss something ?
hi,
please, publish the full code.
hi,
just replace the original function with this code
code:
void cdwgview:neditacisconversion()
{
// todo: add your command handler code here
oddbdatabase* pdb = getdocument()->m_pdb;
pdb->startundorecord();
oddbblocktableptr pbtp = pdb->getblocktableid().openobject();
oddbsymboltableiteratorptr pstiter = pbtp->newiterator();
while(!pstiter->done())
{
oddbblocktablerecordptr pms = (oddbblocktablerecordptr) pstiter->getrecord();//pdb->getmodelspaceid().openobject();
oddbobjectiteratorptr pentiter = pms->newiterator();
while(!pentiter->done())
{
oddbentityptr pent = pentiter->entity(oddb::kforwrite);
pentiter->step();
if (!pent.isnull()
&& (pent->iskindof(oddbregion::desc())
|| pent->iskindof(oddbbody::desc())
|| pent->iskindof(oddb3dsolid::desc())))
{
bool exchangexdata;
oddbobjectid replaceid;
oddbobjectptr pnewobj = pent->decomposeforsave(oddb::vac12, replaceid, exchangexdata);
if (!pnewobj.isnull())
{
pent->handoverto(pnewobj);
}
}
}
}
filltree();
}it maybe come from the fact that decomposeforsave modifies the blocktable, so the iterator becomes invalid ?
did you forget pstiter->step ?
..........
i need more sleep.... thanks for showing me how tired i am....!
about odamfcapp::convertacis, would not it be more "correct" to convert the whole tree instead of only modelspace ?
huh, do you work at two jobs too ?
it is just sample code... answer to faq about 3dsolid tessalation. "how to ?" - see oneditacisconversion.
no, just one, but apparently, it's already too much !
let's hope my futures topics won't be so lame...
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭

相似的主题
主题 主题发起者 论坛 回复 最后发表
【转帖】how to keep the correct visibility after acis convertion yang686526 DirectDWG 0 2009-05-06 02:56 PM
【转帖】dwg version9s0 -- acis 9sat0 version9s0 yang686526 DirectDWG 0 2009-05-05 08:10 AM
【转帖】access violation crash in recoverfile9file.dxf0 yang686526 DirectDWG 0 2009-05-04 03:29 PM
【转帖】acis的功能和特点 yogy ACIS 0 2007-06-06 01:04 PM
Acis 3.0简介 huangyhg ACIS 0 2006-11-05 02:38 PM


所有的时间均为北京时间。 现在的时间是 05:57 PM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多