几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   SolidWorks二次开发 (http://www.dimcax.com/hust/forumdisplay.php?f=111)
-   -   How to get the current tolerance parameters of Tessellate curve? (http://www.dimcax.com/hust/showthread.php?t=727)

yogy 2007-05-20 09:21 AM

How to get the current tolerance parameters of Tessellate curve?
 
Q:
Hi,
I want to get the boundary of 3D model. In other words, I want to get the display or tessellation data of Curve in wireframe mode.
How to get the current chordTolerance and lengthTolerance for curve objects?
Your API is given below:
vTessPnts = swCurve.GetTessPts ( chordTolerance, lengthTolerance, vStartPnt, vEndPnt );

yogy

yogy 2007-05-20 09:22 AM

回复: How to get the current tolerance parameters of Tessellate curve?
 
R:
Dear,
You should be able to find the chordTolerance from Tessellation::CurveChordTolerance. The length tolerance doesn't have a default value. The minium for both is .00000001.
Regards,
Robin Richter
SolidWorks Technical Support

yogy 2007-05-20 09:23 AM

回复: How to get the current tolerance parameters of Tessellate curve?
 
R:
Dear,
The main controlling factor to determine the number of tessellated points is chordTolerance. So here is my suggestions on how to use function GetTessPts():

(1) Set lengthTolerance to be the same as chordTolerance.
(2) The SW default value for chordTolerance is 0.0001m.
(3) If the curve is long (say 100m etc.), 0.0001m may be too small as too many tessellated points will be generated. In this case, users have to come up with their own value of chordTolerance. On example is that they can set up a rough upper limit of the number of tessellated points needed: nPoints. Then get the full length of the curve: lLength. Given these two parameters, they can calculate a chordTolerance = (lLength/ nPoints) and pass this value into GetTessPts().
Regards,
Robin Richter
SolidWorks Technical Support


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