几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   -   【转帖】oddbpolygonmesh type (http://www.dimcax.com/hust/showthread.php?t=17580)

yang686526 2009-05-06 08:02 PM

【转帖】oddbpolygonmesh type
 
oddbpolygonmesh type
oddbpolygonmesh type
hi,
i can quite successfully create meshes of type polymeshtype::ksimplemesh.
if meshes set to other types like polymeshtype::kquadsurfacemesh, kcubicsurfacemesh, etc come from autocad, they are rendered fine in dwgdirect.
but if i change the type in dwgdirect from simple to some other type then i see no difference. is it autocad that puts some cached vertices in the mesh? can dwgdirect make the needed calculations to render such meshes?
best regards
chudomir

dear chudomir,
you're as always absolutely correct - when you're changing the polygon mesh type, autocad calculates and puts additional vertices to the polygon mesh (these additional vertices have type "3d fit vertex"). this functionality (putting fit vertices to polygon mesh) is not implemented yet in dd, but it will be implemented.
if you want to get this functionality implemented right now, there are no problems to implement it using mathematical methods, that we already implemented in odgenurbsurface class.
sincerely yours,
george udov
thanks george! i wish i was really always correct but unfortunately not!
in this case, can i use the nurbs surface to implement all the 3 options: quadratic, cubic and bezier or only one of them? (sorry if it is a stupid question...).
best regards
chudomir

i think yes.
it needs to be looked into, but for first glance the way autocad uses is:
1) take odgenurbsurface object
2) propagate vertices to odgenurbsurface as control points
3) set up a surface degree. for quadratic it is 2, for cubic it is 3, for bezier it is quadratic or cubic depending on control points number (interesting behaviour)
4) set up knot vector - (degree+1) knots in start and end are coincident; distance between other adjacent knots is equal. (in this case nurbs surface is a set of bezier surfaces)
then fit points can be obtained by computevisoline, computeuisoline, odgenurbcurve3d::getsamplepoints().
sincerely yours,
george udov


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