查看单个帖子
旧 2009-05-06, 03:00 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】how to obtain model information 9high level entity0

how to obtain model information (high level entity)
how to obtain model information (high level entity)
hello,
i am working on an application that basically reads a dwg file and displays it. i have implemented all my custom drawing (gdi + opengl) functions by overriding the shell and mesh functions from the geometry classes.
i have been working on some of kind of tree structure which will allow me show/hide objects. currently, i am being able to build such tree, but composed by low level entities (like faces) identified by numbers. however when i load a complex structure this just doesnt help at all.
so, my question is: is there any way to access high level entity attributes/information (model name, assembly name, part name, color, tolerance) for the current low level entity (face, edge, etc.) being drawn during a call to mesh, shell, polylinedc, etc.
thanks,
luis
figured out the problem
thank you all for reading my post, but i have already figured it out.
for anybody out there that wants to know how to arrange entities, into some kind of high level hierarchy, the way to go is to group them by layer. this may probably seem obvious, but believe me, it is not if you are new to opendwg.
after calling update, and when the framework calls any function to draw (like mesh, or shell, or polylinedc, etc.), you can use the following piece of code to obtain the names of layer and entity:
// get the layer of the entity being drawn
oddbentity * pent = (oddbentity *)m_pdrawable;
strcpy(szlayername, pent->layer());
sprintf(szobjectname, "layer [%ld]: %s", nlayerno, szlayername);
// get the type of entity being drawn
sprintf(szobjectname, "%s-%ld", pent->isa()->name(), m_nobjectno);
i hope this helps somebody!
regards,
luis
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)