VDF常见问题整理(七十一):纠正为Infinity或NaN double值的对象属性

本系列教程整理了VectorDraw Developer Framework(VDF)最常见问题,教程整理的很齐全,非常适合新手学习。本文将会介绍如何纠正为Infinity或NaN double值的对象属性。

VectorDraw开发人员框架(VDF)是一个使用的应用程序可视化的图形引擎库。有了VDF提供的功能,您可以轻松地创建,编辑,管理,输出,输入和打印2D和3D图形文件。该库还支持许多向量和先前输入和输出格式,包括本地PDF和SVG输入。

VectorDraw开发者框架


问:如何校正为Infinity或NaN double值的对象属性/span>

答:出于某种原因,图中可能存在的物体是无穷大或NaN的双重性质 ,这可能产生很多问题到图像替换或选择。在下面的示例检查所有的图中有对StartTangent和EndTangent无效属性的多段线。

使用下面的代码在出口前DWG格式图纸

//check if a double value is a valid numberstatic bool IsdoubleValid(double d){return !(double.IsNaN(d) && !double.IsInfinity(d));}//check if a Vector x,y,z are valid numbersstatic bool IsValidVector(Vector v){return IsdoubleValid(v.x) && IsdoubleValid(v.y) && IsdoubleValid(v.z);}document.UndoHistory.PushEnable(false);//force disable the undo history .Changes of polylines wrong properties does not need to be saved to undo historyvdPrimariesList primaries = document.GetPrimaries(true);//get all entities in the drawing in all layouts and all blocksforeach (vdPrimary item in primaries){vdPolyline pl = item as vdPolyline;if (pl == null) continue;if (pl.StartTangent != null && !IsValidVector(pl.StartTangent)) pl.StartTangent = null;if (pl.EndTangent != null && !IsValidVector(pl.EndTangent)) pl.EndTangent = null;}document.UndoHistory.PopEnable();//restore the undo history to previous state4

================================================== =====

如果您对想要购买正版授权VectorDraw Developer Framework(VDF),可以联系在线客服>>咨询相关问题。

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月18日
下一篇 2021年3月18日

相关推荐

发表回复

登录后才能评论