![]() |
How to get such parameters as qualityIndex, TessMin, qualityNum, TessMax, BodyDiamet
Q:
Robin, How to get such parameters as qualityIndex, TessMin, qualityNum, TessMax, BodyDiameter, Deviation? Yogy |
回复: How to get such parameters as qualityIndex, TessMin, qualityNum, TessMax, BodyDiamet
R:
BodyDiameter is the diagonal distance across the bounds of the part box. See PartDoc::GetPartBox for details. Use ModelDocExtension::GetUserPreferenceDoubleValueRange with swImageQualityShadedDeviation to get the TessMax and TessMin. qualityNum is the number set in ModelDoc2::SetTessellationQuality. qualityIndex can be calculated using the first equation. Robin Richter |
回复: How to get such parameters as qualityIndex, TessMin, qualityNum, TessMax, BodyDiamet
Q:
Robin, Thanks. How to get TessMin? tessDeviation result which is calculated by my code is 83 according to your formula. Which unit does tessDeviation used? If its unit is meter, it looks that tessDeviation value is too large. My code as follows: // get qualityNum
long qualityNum = dModelDoc.GetTessellationQuality();
// get TessMax
double tessMax = dModelDoc.GetUserPreferenceDoubleValue ( swImageQualityShadedDeviation);
dModelDoc.DetachDispatch();
// get qualityIndex
double qualityIndex = qualityNum / 100 * tessMax;
if (qualityIndex > 0)
tessDeviation = bodyDiameter / qualityIndex * 0.025;
return tessDeviation;Are you sure the following formula is correct? Pls check it and tell me the correct formula. qualityIndex = TessMin + qualityNum*((TessMax-TessMin)/100)
Deviation = 0.025 * (BodyDiameter) / qualityIndex Yogy |
回复: How to get such parameters as qualityIndex, TessMin, qualityNum, TessMax, BodyDiamet
R:
The number returned by ModelDoc2.GetTessellationQuality () is the quality index. The “quality number” is the number you pass to SetTessellationQuality. The formulas are correct, but you don’t need the first formula when using ModelDoc2.GetTessellationQuality (). Robin Richter |
回复: How to get such parameters as qualityIndex, TessMin, qualityNum, TessMax, BodyDiamet
Q:
Robin, I don’t think so. I need your strict and patient guidance. I found that quality number was equal as quality index. long qualityNumber = 100; dModelDoc.SetTessellationQuality(qualityNumber); // qualityIndex is 100 in watch window long qualityIndex = dModelDoc.GetTessellationQuality(); As view as your given formula, qualityIndex value is between TessMin and TessMax and its unit is meter. qualityIndex = TessMin + qualityNum*((TessMax-TessMin)/100)
Example:
Consider TessMax is 0.001, TessMin is 0 and qualityNum is 100, qualityIndex is 0.001. But, as view as SW_API help doc, qualityIndex should be number, not value with unit. SW_API help doc as follows: Number between 0 and 100 that indicates the quality of tessellation to use for this part; a higher index means finer tessellation Yogy |
回复: How to get such parameters as qualityIndex, TessMin, qualityNum, TessMax, BodyDiamet
R:
Sorry, I made a mistake in my last email. The number returned by GetTessellationQuality is the quality Number. Use the qualityIndex returned by the formula to find the deviation. Robin Richter |
所有的时间均为北京时间。 现在的时间是 05:48 AM. |