acis capabilities
acis capabilities
hi,
i've just started to use dwgdirect, and i need some info about acis data embedded in dwg files.
when i open a file containing a boolean operation, a pipe or an extrusion in odamfcapp, i can see the acis data (useless in my case), and a proxy describing the object's type. so i wonder if it is possible to get the "source objects" : a polygon, and an offset for an extrusion, the original meshes and operators for a boolean op, a spline and a polygon for a pipe... rather than the triangulated result object ???
otherwise, what is the simplest way to get a polyfacemesh from a 3dsolid built from acis data ?
thx
hi,
void cdwgview:

neditacisconversion() containes an example code for the simplest way to get a polyfacemesh.
you cannot got a "source objects" information from oddb3dsolid\body\region. these entities store only the acis stream inside. also last autocads sometimes store a 'creation history' for oddb3dsolid (only). but we don't provide an interface to work with the history. you will see it like proxy entities.
oddbextrudedsurface, oddbrevolvedsurface have full access user interface.
thanks for your help, but i've looked at the example, and i am not sure this is what i need.
first of all, it don't mentioned any polyfacemesh...
secondly, it's about vectorization. i forgot to mention that i use dwgdirect only to read acad files, and convert them into my own classes. consequently, i don't need dwgdirect vectorization.
i still don't know how to to get a polyfacemesh or polygonmesh from a 3dsolid with acis data.
if oddb3dsolid::isaproxy returns true, it means it holds acis data, doesn't it?
after that, oddb3dsolid::acisin can be read with oddbacisio::readacisdata which returns a
odmodelergeometry
instance. but i don't know how to use it to get a polyfacemesh or polygonmesh... maybe it's not the right way ?
thanks again
edit : i've just seen how you proceed in the odwrite example. first the db is filled and then pdb->writefile(&fb, filetype, outver, true /* save preview */); (odwriteex.cpp, line 514) converts all 3dsolids into polyfacemesh if outver == ac12. exactly what i want! unfortunately, i don't have access to the sources, so if you could tell me how to have the same conversion only on a single entity (not the whole file), it would be great !!
last edited by
adrien.lair@allsystems.fr; 28th may 2008 at 01:02 amfff">.
hi,
small example - please, generate file with single 3dsolid, open it with mfcapp, call convert acis. oddb3dsolid will be converted to oddbpolyfacemesh. the same functionality used when called writefile to r12.
if oddb3dsolid::isaproxy returns true, it means it holds acis data, doesn't it?
no. isaproxy doesn't relate to acis data.
thanks a lot !!
sorry, when you first mentionned cdwgview, i didn't look in the examples files but in the help... it points to a vectorization application example, what explains my answer... anyway, i won't bother you anymore on that topic!