几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】converting to lines (http://www.dimcax.com/hust/showthread.php?t=15488)

yang686526 2009-05-04 06:16 PM

【转帖】converting to lines
 
converting to lines
converting to lines
hi,
dwgdirect have any function or sample to convert arc, shells or mesh to lines ?
im developping a convertion to application's company proprietary format and it oly work with circles, lines and dots...
tks,
[]s,
celso
quote:
originally posted by celsolrc
dwgdirect have any function or sample to convert arc, shells or mesh to lines ?
you can use the dwgdirect geometry simplifier to get polyline/polygon entities.
take a look at odgigeometrysimplifier class in the dwgdirect documentation and such samples as odvectorizeex and exporting to dwf, svg, pdf.
you can inherit your own class from odgigeometrysimplifier for handling geometry output for all entities and breaking complex entities to simple one.
misha kuzinets
quote:
originally posted by celsolrc
hi,
dwgdirect have any function or sample to convert arc, shells or mesh to lines ?
im developping a convertion to application's company proprietary format and it oly work with circles, lines and dots...
tks,
another solution you can do is use the explode functionality, depending on the complexity of the drawings.
or another way for example is as follows from my project :
bool copendwg::tolinesarc(oddbentityptr odentptr, csmplptr pent) {
csmplptr psmpl( (csmpl *) pent.get());
oddbarcptr odarcptr = odentptr;
odgecircarc3d odgearc(odarcptr->center(),
odarcptr->normal(),
odarcptr->normal().perpvector(),
odarcptr->radius(),
odarcptr->startangle(),
odarcptr->endangle());
odgepoint3darray pnts;
odgearc.getsamplepoints(20, pnts);
odgepoint3d odprvpnt;
odgepoint3d odpnt;
bgnaddpnts(psmpl);
odgepoint3darray::iterator iter = pnts.begin();
while( iter != pnts.end() ) {
odpnt = *iter;
addpnt2ent(psmpl, odpnt);
iter++;
}
endaddpnts(psmpl);
return true;
}
bascially if the line type and everything about the entitiy is simple, i just do the above kind of calculations and store the result, if the entity has linetypes applied and or thickness then i store the above for indexing, and use the vectorization framework to display it correctly.
if you look at odge classes, there is one there for ellipses, and splines etc... to do the above.
hope this helps
cheers
jason
quote:
originally posted by janderssen
another solution you can do is use the explode functionality, depending on the complexity of the drawings.
or another way for example is as follows from my project :
(...)
if you look at odge classes, there is one there for ellipses, and splines etc... to do the above.
hope this helps
cheers
jason
hi,
tkx for your help !
but now, according i understood, the odvectorizeex make this for me and more. import and convert (exactly i need in my application). i need only get the points and add in my old structure.
now, i have another trouble (describe in another thread and not solve in moment) with "deviaton". i cannot understand where i need set deviation and whats a value acceptable....
tkx
[]s,
celso
quote:
originally posted by celsolrc
hi,
tkx for your help !
but now, according i understood, the odvectorizeex make this for me and more. import and convert (exactly i need in my application). i need only get the points and add in my old structure.
now, i have another trouble (describe in another thread and not solve in moment) with "deviaton". i cannot understand where i need set deviation and whats a value acceptable....
tkx
hi,
well, im make a mistake... tks for your routine. im including this code in my program .
tkx,
[]s,
celso


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