许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  NX UG二次开发《Getting Started with NX Open》第六章:位置、矢量和点(C#)

NX UG二次开发《Getting Started with NX Open》第六章:位置、矢量和点(C#)

阅读数 3
点赞 0
article_banner

接下来的几章简要介绍了可用于执行简单任务的 NX Open功能。函数描述相当简短,因为我们只是想向您展示可用的函数范围。《NX开放参考指南》有更详细的信息,如果您使用像Visual Studio这样的良好开发环境,在编写代码时也会向您提供这些详细 信息 。具体来说,只要在函数名后面键入左括号,就会出现函数输入列表以及说明。通过使用Visual Studio中的对象浏览器,您还可以获得有关任何函数或对象的完整信息。

在对函数的描述之后,我们通常会给出一小段示例代码,展示如何使用这些函数。这些例子很简单,但仍然很有用。为了保持简洁,示例代码通常不完整。例如,声明经常被忽略,而完整的Main函数很少被包含。如果您确实想要编译示例代码,通常需要进行一些添加。

  • Point3d对象

Point3d对象表示三维空间中的位置。在基本数之后,位置和向量是几何应用中最基本的对象,因此我们将首先描述它们。还有Point2d和Point4d对象,但这些对象的使用频率不高,因此我们这里不讨论它们。注意,Point3d不是真正的NX对象。Point3d对象只存在于NX Open程序中-它们不会永久存储在NX模型中(或其他任何地方)。因此,一旦程序运行完毕,所有的Point3d对象都将消失。从这个意义上讲,它们就像你在程序中使用的数字变量。如果要创建永久NX对象以记录位置,应使用NXOpen。点,而不是Point3d。可以使用以下函数创建Point3d对象:


作用输入和创建方法
Point3d(x As Double, y As Double, z As Double)从三个直角坐标。

在第一列中,您可以看到在调用函数时应该提供的输入类型的正式描述——您必须提供三个“double”类型的变量。

这个函数是一个构造函数,所以在调用它时,我们必须在代码中使用“New”关键字。以下是一些示例:

Point3d p = new Point3d(3, 5, 8); //使用坐标(3,5,8)创建点pPoint3d q = new Point3d(1.7, 2.9, 0);//使用坐标(1.7, 2.9, 0)创建点q

Point3d对象属性如下:


数据类型所有物通道描述
DoubleXget, setPoint3d的x坐标
DoubleYget, setPoint3d的y坐标
DoubleZget, setPoint3d的z坐标


  • Vector3d对象

Vector3d对象表示三维空间中的方向或位移。与Point3d对象一样,Vector3d对象只存在于NX Open程序中-它们不会永久存储在NX模型中(或其他任何地方)。您可以使用以下构造函数创建Vector3d对象:


作用输入和创建方法
Vector3d(x As Double, y As Double, z As Double)来自三个矩形组件。

矢量对象属性如下:


数据类型所有物通道描述
DoubleXget, set向量的x分量
DoubleYget, set向量的y分量
DoubleZget, set向量的z分量

NXOpen.VectorArithmetic类提供了一个与NXOpen.Vector3d非常相似的Vector3对象。此类还提供了对Vector3对象执行操作的函数,如加法、减法、叉积等。在某些情况下,使用Vector3进行计算,然后将答案转换为NXOpen可能会很方便。Vector3d表单供进一步使用。以下代码说明了该方法:

NXOpen.VectorArithmetic.Vector3 u = new NXOpen.VectorArithmetic.Vector3(3, 4, 7);NXOpen.VectorArithmetic.Vector3 v = new NXOpen.VectorArithmetic.Vector3(4, 2, 1);NXOpen.VectorArithmetic.Vector3 w = new NXOpen.VectorArithmetic.Vector3(3, 4, 7) + 0.5 * new NXOpen.VectorArithmetic.Vector3(4, 2, 1);NXOpen.Vector3d r = new NXOpen.Vector3d(w.x, w.y, w.z);


  • Point 点

Point可能看起来很像Point3d对象,但它们非常不同。Point是NX对象,永久存储在NX零件文件中;Point3d和Vector3d对象是仅在NX Open程序运行时存在的临时对象。

为了创建一个点,我们按照第5章中解释的“工厂”模式编写代码。基本思想是零件文件包含不同对象类型的“集合”。因此,例如,给定名为myPart的Part对象,有一个名为myPart的集合。包含零件中所有Point对象的点。类似地,myPart.Arcs是一个集合,包含此零件和myPart中的所有圆弧。曲线包括所有曲线。

这些集合用作“factory”对象,我们可以使用这些对象在零件文件中创建新对象,如下所示:

Part workPart = theSession.Parts.Work;  //获得工作部件PointCollection points = workPart.Points;  //获取工作部件的点集合PointCollection Point3d coords = new Point3d(3, 5, 0);  // 定义点的坐标Point p1 = points.CreatePoint(coords); // 创建点(添加到集合)p1.SetVisibility(SmartObject.VisibilityOption.Visible);

最后一行代码是必需的,因为NXOpen.Point是“SmartObject”,默认情况下不可见。上面的代码以相当冗长的方式编写,以便进行完整的解释。在实践中,您通常会这样写:

Part workPart = theSession.Parts.Work;  //获得工作部件Point3d coords = new Point3d(3, 5, 0); // 定义点的坐标Point p1 = workPart.Points.CreatePoint(coords); // 创建点p1.SetVisibility(SmartObject.VisibilityOption.Visible); // 使可见

如果你愿意,你甚至可以用一行代码创建一个点,如下所示:

 Point p1 = NXOpen.Session.GetSession().Parts.Work.Points.CreatePoint(new Point3d(3, 5, 0));

总之,以下函数在名为myPart的部分中创建一个点:


作用输入和创建方法
myPart.Points.CreatePoint(x As Double, y As Double, z As Double)从x,y,z坐标

Point对象的特性如下:


数据类型所有物通道描述
DoubleXget, set点的x坐标。
DoubleYget, set点的y坐标。
DoubleZget, set点的z坐标。

有许多函数需要Point3d对象作为输入。如果我们有一个Point,而不是Point3d,我们总是可以得到一个Point3d。所以,如果pt是一个点,我们要设置NXOpen的原点。Direction(需要Point3d对象),则需要的代码是:

myDirection.Origin = new Point3d(pt.Coordinates.X, pt.Coordinates.Y, pt.Coordinates.Z);


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空