高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】oddbgetmaterials asser
oddbgetmaterials assert
oddbgetmaterials assert
i am using oda 2.4.2 and when i execute the following code i get an assertion on the oddbgetmaterials call.
code:
odrxiteratorptr pit;
odavematerialptr pmat;
pit = oddbgetmaterials(pdb);
while ( ! pit->done() )
{
pmat = pit->object();
if ( ! pmat.isnull() )
logavematerial(pdb, log, reportkw, pmat->holderid());
pit->next();
}the details of it are:
file: source\ve\avematerial.cpp
line: 513
expression: nullstr.isempty()
this seems to be a recent occurence but i can't imagine why. i'm hoping some insight into the meaning of the assertion will help.
thanks,
- moe -
hi, i am using 2.5.2 and i am also having very similiar problems. maybe the problem is with the call to oddbgetmaterials. it is asking for a oddbdatabase* whereas i am using a oddbdatabaseptr (smartptr).
anton
this is causing a major problem. i have the following code snippet :
code:
odrxiteratorptr pit = oddbgetmaterials(m_pdb->database());if i load a drawing which does contain ave materials, my application stops with a runtime error - there is no further error information available. if i load a drawing without any materials, there is no problem. using odamfcapp with the same drawing that causes a problem, of course works fine. what can be the reason for this problem?
anton
the assertion means some unexpected data (ave stuff is stored as xdata).
since 2.4.2 this place of code was changed a bit.
could you test it with 2.6.1?
if the problem still exists please attach the problem file.
btw, 2.6 contains implementation of convertoldmaterials and convertoldlights commands which convert ave stuff to oddbmaterials and oddblights.
sergey slezkin
|