几何尺寸与公差论坛------致力于产品几何量公差标准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-07, 12:33 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】reading geometric data

reading geometric data
reading geometric data
hello, i'm a beginner, so excuse my question:
i want to write a converter to transform all walls of a building-autocad file into my own fileformat. i have study the odreadex example, but i don't understand how i can read the geometric data of a oddb3dsolid.
- are walls allways saved as oddb3dsolid?
- how can i read the geometric data?
thanks a lot!
jörg

i don't think that all walls are always represented as 3dsolids
maybe you'll find something useful in odvectorizeex sample?
sincerely yours,
george udov
can you give me a hint, please? i can't find any usefull information in odvectorizeex ..
i only need 2 coordinates(x/y/z) of one wall (cuboid) for example the upper/right and lower/left...
last edited by joerg; 20th october 2005 at 02:41 amfff">.
i found some out:
in the odamfcapp tool is a option "convert acis".
after converting i can read the oddbblockreference values!
now i just need one little tip: which funktion must i call in code, to convert my database automaticaly on load?

now i have following code:
code:
if (!pdb.isnull())
{
std(cout) << "file version: " << pdb->originalfileversion() << std(endl);
oddbblocktablerecordptr pms = 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);
}
}
}
dbdumper dumper;
dumper.dump(pdb, &svcs, std(cout));
}
in result, i don't get 3dsolids anymore ...but unfortunately i get no blockreferences.
what have i forgotten?
have you defined next section in your app ?
#ifndef _toolkit_in_dll_
odrx_declare_static_module_entry_point(modelermodu le);
odrx_begin_static_module_map()
odrx_define_static_application("modelergeometry", modelermodule)
odrx_end_static_module_map()
#endif
possibly, you havn't loaded modelergeometry.
yes, i have the defined section in my code.
the code is running, but i have no blockreferences in result.
does i need any refresh or something else after this method?
last edited by joerg; 20th october 2005 at 08:31 amfff">.

i still have the same problem...
3dsolids are decomposed (?) , but pnewobj is allways null ?!?
i need blockreferences!!
code:
bool fff"> exchangexdata;
oddbobjectid replaceid;
oddbobjectptr pnewobj = pent->decomposeforsave(oddb::vac12, replaceid, exchangexdata);
if fff"> (!pnewobj.isnull()) //pnewobj is allways null ?!?!?!?
{
pent->handoverto(pnewobj);
}
attached is my dwg-file and the modified odreadex sample. can someone help me please?
thanks much!
j&ouml;rg
attached files (1.9 kb, 27 views)
(77.2 kb, 16 views)

last edited by joerg; 21st october 2005 at 02:30 amfff">.
hi,
it works fine for me.
most likely dd can't load modelergeometry service:
if you use dll version of dd - modelergeometry.drx or dll it depends on can't be loaded.
if you use lib version of dd -
quote:
odrx_declare_static_module_entry_point(modelermodu le);
odrx_begin_static_module_map()
odrx_define_static_application("modelergeometry", modelermodule)
odrx_end_static_module_map()

that's it! thank you very, much!!!
modelergeometry.drx was not in the directory!

thanks again and best regards
j&ouml;rg
problem with oddbregion vectorization
hi,
i am using dd 1.13.02.
i have a dll which statically links to the dd libs. the dll is then loaded/used by the main application.
i can vectorize all entities except oddbregion. i have written:
quote:
odrx_declare_static_module_entry_point(modelermodu le);
odrx_begin_static_module_map()
odrx_define_static_application("modelergeometry", modelermodule)
odrx_end_static_module_map()
in one of my cpp files and called:
quote:
odrx_init_static_module_map();
just after odinitialize().
..but the oddbregion entities are not vectorized. i can see the draw() function being called for them though.
the odvectorize example calls odrx_init_static_module_map(); before odinitialize() while the dwgdirect help file says that
quote:
after the static module map has been declared, the dwgdirect client application should call the odrx_init_static_module_map macro once to initialize the static module map. this should be done after odinitialize,
i tried both..but it still didn't work. i cannot reproduce the problem with the odvectorize sample though.
01. do i have to do something special to initialize modelergeometry library when the libs are statically linked to a dll??
02. how can i know if the modeleregeometry.lib has been initialized properly?
thanks
alex
odrxclassptr prxclass =odrxgetmodelergeometrycreatorservice();
if prxclass is null, you have a problem with modelergeometry.drx loading or it is not linked.
hi,
are oddb3dsolid entities vectorized properly in both 2d wireframe and flat/gouraud shading modes ?
>>01. do i have to do something special to initialize modelergeometry library when the libs are statically linked to a dll??
>>02. how can i know if the modeleregeometry.lib has been initialized properly?
you can call odrxdynamiclinker()->loadapp("modelergeometry"); it should return not null if modeleregeometry.lib is initialized properly.
last edited by dmitry a. novikov; 28th october 2005 at 03:03 amfff">.
yes, dd is able to vectorize both 2dwireframe sphere and shademode=gouard sphere..
also the odrxdynamiclinker()->loadapp("modelergeometry"); function returned non-null value with the vtable looking correct.
is this a bug in oddbregion's vectorization?
plz help.
thanks
alex
please, try both release and debug dd libs, does problem appear with both ?
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


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

高级搜索
显示模式

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

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

相似的主题
主题 主题发起者 论坛 回复 最后发表
【转帖】meshproc and shellproc data yang686526 DirectDWG 0 2009-05-06 05:44 PM
【转帖】memory leak issue yang686526 DirectDWG 0 2009-05-06 05:37 PM
【转帖】how to add extended entity data yang686526 DirectDWG 0 2009-05-05 12:35 PM
【转帖】hot to get the data stored in dxfinfields of a custom obje yang686526 DirectDWG 0 2009-05-05 12:11 PM
Draft International Standard Iso/dis 10303-108 huangyhg ISO standards 2 2007-01-02 12:55 PM


所有的时间均为北京时间。 现在的时间是 06:28 AM.


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