当前位置: 首页 > news >正文

自贡市建设局网站石家庄外贸网站建设

自贡市建设局网站,石家庄外贸网站建设,dedecms win8风格网站模板,网站 开发做UG二次开发快一年了#xff0c;每次遇到装配的问题涉及到部件事件、部件原型和部件实例还是一头雾水#xff0c;什么是实例#xff0c;什么是原型这些专业术语等等。 针对这个问题#xff0c;今天专门写了一篇特辑#xff0c;结合装配实例深度剖析装配过程中的的所有参数…        做UG二次开发快一年了每次遇到装配的问题涉及到部件事件、部件原型和部件实例还是一头雾水什么是实例什么是原型这些专业术语等等。 针对这个问题今天专门写了一篇特辑结合装配实例深度剖析装配过程中的的所有参数。 先来看看装配相关的基本概念 UG装配是以树型结构组织装配中的部件一个部件文件中只能有一棵装配树即只能存在一个装配根节点。装配中的节点由部件原型、部件事件与部件实例3种对象进行描述。 部件事件(partoccurrence)是装配环境下对实际存在的部件模型(即部件原型)的一种引用部件事件也可以理解为指向部件原型的指针。如果需要一次或多次装配一个部件并不复制该部件的原型而是建立该部件原型所对应的事件。在装配中不同的部件事件表征不同的装配节点因此UG赋予它唯一的标识。部件原型(partPrototype)是真实存在的部件模型它记录了模型所需的所有数据。当一个部件文件被多次装入时将产生不同的部件事件但这些事件都指向相同的部件原型。可以看出部件原型与部件事件之间形成一对多的映射关系。部件事件随原型的改变而改变但修改部件事件不会影响它的原型。部件实例(partInstance)记录子节点与其父节点之间的关联关系从而形成各节点间的层次结构。在装配体重部件与其子部件之间的装配关系是利用部件实例来描述的。部件实例是指一次或多次装入装配体的部件对象它描述装配环境下实例之间的层次关系并表征唯一的上下级部件间的装配关系。部件实例也可以理解为一种指针由下级部件事件指向上一级部件事件。可以看出部件实例与部件事件之间形成一对多的映射关系即不同的装配节点可能具有相同的装配关系。一、实例截图及免费下载地址 从截图可以看到本实例创建了一个简单的装配为了方便区分各节点特意用了2个球、1个圆柱、一个圆锥和一个长方体来进行案例分析。 实例免费下载地址入口https://download.csdn.net/download/MarcoPro/87452892 二、 部件事件、部件原型和部件实例分析 光看上面的概念很难理解部件事件、部件原型和部件实例到底是什么更不要提怎么用了那么我们先把所有节点的数据拿出来看一下 上图的数字都是相关属性的Tag值从上之下三层代表了装配的层级关系其中根节点下有2个球和2个长方体长方体下面有两个子节点圆柱和圆锥。下面我会逐个分析所有节点 1、根节点_asm1 根节点比较特殊因为他没有原型实际上是一个虚拟的节点参数获取方法如下 workpart theUFSession.Assem.AskWorkPart(); //获得当前workpart的部件 tag workocc theUFSession.Assem.AskWorkOccurrence(); //获得当前workpart的occurrence tag 2、二级节点COMPONENT ball 1、COMPONENT ball 2和COMPONENT block 1 1为什么这里要做2个球体就是为了看看来自同一个零件原型的节点他的部件原型是否相同。 从数据不难发现他们有相同的部件原型tag:32161有不同的部件事件33595和33597不同的部件实例33581和33580然后他们的父部件和父部件事件是相同的。 2反观同样在二级目录的球和长方体的数据他们的部件事件、部件原型和部件实例都是不一样的父部件和父部件事件是相同的。 3、三级节点COMPONENT Cylinder 1和COMPONENT Cone 1 从长方体和圆柱体、圆锥的数据不难发现部件事件、部件原型和部件实例以及父节点和子节点的关系已经很明朗了。  三、 部件事件、部件原型和部件实例数据的获取方法 那么上面的数据是怎么获取的呢下面直接上源码 1、调用主方法 theSession Session.GetSession(); displayPart theSession.Parts.Display; ListComponent allComponents new ListComponent(); ListComponentModel componentList new ListComponentModel(); Component root displayPart.ComponentAssembly.RootComponent; if (root ! null) {AssemHelper.GetAllComponents(displayPart.ComponentAssembly.RootComponent, allComponents, componentList); }theUFSession UFSession.GetUFSession(); Tag workpart; Tag workocc; workpart theUFSession.Assem.AskWorkPart(); //获得当前workpart的prototype tag workocc theUFSession.Assem.AskWorkOccurrence(); //获得当前workpart的occurrence tag if (workocc Tag.Null) workocc theUFSession.Assem.AskRootPartOcc(workpart);int ChildOccNum 0; Tag[] childOccs; //子组件的occurrence ChildOccNum theUFSession.Assem.AskPartOccChildren(workocc, out childOccs);Tag[] childInstances new Tag[ChildOccNum]; //子组件的instance for (int i 0; i ChildOccNum; i) {Tag childInstance theUFSession.Assem.AskInstOfPartOcc(childOccs[i]);childInstances[i] childInstance; }int ChildOccNum1 0; Tag[] childOccs1; ChildOccNum1 theUFSession.Assem.AskPartOccChildren((Tag)int.Parse(33592), out childOccs1);Tag[] childInstances1 new Tag[ChildOccNum1]; //子组件的instance for (int i 0; i ChildOccNum1; i) {Tag childInstance1 theUFSession.Assem.AskInstOfPartOcc(childOccs1[i]);childInstances1[i] childInstance1; } 2、子方法 /// summary /// 用递归获得所有组件的方法 /// /summary /// param namefatherComponent父组件/param /// param nameallComponents全部的组件集合/param public static void GetAllComponents(Component fatherComponent, ListComponent allComponents, ListComponentModel componentsList) {theUFSession UFSession.GetUFSession();Component[] tempComponent fatherComponent.GetChildren(); //得到子组件数组foreach (Component x in tempComponent)//没有子组件时foreach的语句不会执行跳出递归{allComponents.Add(x);string partName, refsetName, instanceName;double[] origin new double[3]; //组件的位置double[] csys_matrix new double[9]; //坐标系矩阵double[,] transform new double[4, 4]; //转换矩阵theUFSession.Assem.AskComponentData(x.Tag, out partName, out refsetName, out instanceName, origin, csys_matrix, transform);ComponentModel model new ComponentModel();model.origin new double[3];model.csys_matrix new double[9];model.transform new double[4, 4];model.origin origin;model.csys_matrix csys_matrix;model.transform transform;model.partName partName;model.refsetName refsetName;model.instanceName instanceName;model.journalIdentifier x.JournalIdentifier;componentsList.Add(model);GetAllComponents(x, allComponents, componentsList);} } 四、小节 通过上面的梳理我们了解了部件事件、部件原型和部件实例的基本概念以及在装配过程中的具体数据表现形式。 但是说实话在实际项目中这些概念似乎并不是必须有用的比如在使用Nxopen进行开发的过程中我们不需要了解部件原型和部件事件我们只需要找到component Tag就能去操作零件其实这里的component Tag就是部件事件。 作为一名合格的程序员我相信大家都有专研精神对于黑盒的深入了解才是一步一步走向职业生涯巅峰的正确途径。
http://www.hkea.cn/news/14306743/

相关文章:

  • 网站建设公司的出路蝴蝶传媒网站推广
  • 在招聘网站做销售技巧如何推广网站会员注册
  • 深圳市住房城乡建设局网站app下载入口
  • 网站上传可以发广告的100个网站
  • 医院网站后台管理系统登录住房城乡建设部官网
  • 搭建个人网站的步骤做外贸 是否需要做中文网站
  • 有什么网站可以做微信支付宝支付如何自己创造网站
  • 做旅游网站怎么做呀网站建设笔记
  • 网站上怎么做动画广告网站备案号码查询
  • 夹江移动网站建设网站设计英文报告
  • 华为电子商务网站建设修改wordpress登录框
  • 吴忠网站设计公司青岛做视频的网站设计
  • 想要网站导航推广页电商怎么注册开店
  • 重庆网站建设软件北京移动端网站公司
  • 苏州建设网站制作重庆网站推广软件
  • 营销型网站软件wordpress首页聚合
  • 网站开发客户需求分析wordpress 当前页面id
  • 网站语言编程成都网站建设制作公司
  • 网站后台首页模板免费ppt模板制作软件
  • 做视频赚钱的网站flashfxp上传网站模板
  • 卡姿兰网站建设策划书微信菜单栏那些网站怎么做
  • 你愿不愿意做我女朋友网站网页模版是已经做好的
  • 中铁建设门户网站主机托管网站
  • 毕设做网站答辩会要求当场演示吗工业设计网官网
  • 企业网站的主要功能板块门户网站asp源码
  • 怎样维护网站网络营销学院
  • 中小企业网站建设问题永久免费手机网站建设教程
  • 电商主图设计网站制作网站的步骤域名
  • 即墨公司做网站潜江资讯网最新招聘
  • 竭诚网络网站建设公司wordpress集成环境有哪些