高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】query regarding modifying entity properties
query regarding modifying entity properties.
query regarding modifying entity properties.
hi all,
i have a query regarding modifying the property of entities in a drawing. the properties includes setting the color of an entity, or setting the layer of an entity, etc.
i'm using the library dwg direct 1.11 for creating a mfc activex control. there are soem functions for creating of entities, also have some functions for modifying the properties of entities.
the problem which i face, is when i create 50 to 70 oddbtext entities, and using a seperate function, i'm modifying the properties of them, with respect to a particular handle.
the way i'm doing is,
pblock = m_pdb->getmodelspaceid().safeopenobject(oddb::kforwrite) ;
piter = pblock->newiterator();
for (piter->start(); !piter->done(); piter->step())
{
pchildobj = piter->objectid().safeopenobject (oddb::kforwrite, true);
if(pchildobj->iskindof(oddbtext::desc()))
{
str.format("%i64x", pchildobj->objectid().gethandle());
str.makeupper();
if (str.compare(strhandle) == 0)
{
ptext = oddbtext::createobject();
ptext = pchildobj;
ptext->setlayer((lpcstr)strlayer, true);
ptext->setcolorindex(ncolor);
ptext->setthickness(nthickness);
return;
}
}
}
this is the way which i'm doing now. but here comes the problem, i'm creating some oddbtext entity and setting the property for each object in a loop(in the client appln).
and if the drawing is a big one(having lots of entities), then while adding 2 to 3 entities, the application crashes.
i would like to know, without traversing the entire entities using the (iteratorptr), can we directly change the properties..? if there won't be case for an invalid handle..
tia
thanks & regards,
rajesh parameswaran
rajuinnet
# 20th december 2004, 03:31 am
moderator join date: mar 2002
posts: 2,994
1. comparing handles (oddbhandle) is much more efficient than comparing their string representation.
2.
ptext = oddbtext::createobject(); // here text object is created
ptext = pchildobj; // and here newly created object is deleted and pointer is assigned another value (pchildobj)
3. if you know entity handle you need not iterate any block to get it. use
oddbobjectid oddbdatabase::getoddbobjectid(oddbhandle&)
based on information provided i can say nothing why your application crashes.....
sergey slezkin
sslezkin
none
? | ?
thread tools
display modes
linear mode
search this thread
rate this thread
excellent
good
average
bad
terrible
posting rules
you may post new threads
you may post replies
you may post attachments
you may edit your posts
is on
are on
code is off
html code is off
forum jump
user control panel private messages subscriptions who's online search forums forums home general topics news questions and remarks business issues industry commentary general software issues documentation issues future directions dwg libraries dwgdirect.net dwgdirect, c++ version dwgdirectx, activex version adtdirect/c3ddirect opendwg toolkit/viewkit dgn libraries dgndirect, c++ version (2.x+) dgndirect libraries (legacy 0.99xx)
all times are gmt -7. the time now is 12:36 amfff">.
- - -
copyright ?2000 - 2009, jelsoft enterprises ltd.
copyright 1998-2008 open design alliance inc.
1. comparing handles (oddbhandle) is much more efficient than comparing their string representation.
2.
ptext = oddbtext::createobject(); // here text object is created
ptext = pchildobj; // and here newly created object is deleted and pointer is assigned another value (pchildobj)
3. if you know entity handle you need not iterate any block to get it. use
oddbobjectid oddbdatabase::getoddbobjectid(oddbhandle&)
based on information provided i can say nothing why your application crashes.....
sergey slezkin
|