您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > UG二次开发资料(SIEMENS内部培训)7
1©UGSCorp.2007.Allrightsreserved.装配设计日期:2007年8月2主要内容¾基本概念和术语¾装配树结构¾部件对象间的访问¾装配体中的几何对象¾部件的装入¾配合关系的创建与编辑¾组件集和引用集操作¾装配复制操作¾WAVE23©UGSCorp.2007.Allrightsreserved.基本概念和术语基本概念和术语44基本概念和术语在装配环境中总保持只有一个部件是当前活动的,它叫工作部件(workpart)。用户创建的所有UF对象、表达式等都是在工作部件中创建。此外,还有一个叫当前显示部件(displaypart)的概念。在UG的某些应用(如Modeling)时,当前显示部件和工作部件可以不同。5基本概念和术语5术语描述tag对象标识,一个tag_t标识一个UG对象,这个对象不仅仅是几何对象。还可以是部件文件、实例和事例piecepart单个零件,是装配中最基本的元素,包含几何和特征。Occurence当若干个零件被加入到一个装配中,系统不在装配中拷贝零件和其中的对象,而是将零件加载到内存,并将零件的事例放入到装配中,事例是对实际存在的部件原型的引用。objectOccurence零件中的每个对象,都会在装配中有一个对应的对象事例。instance当组件被加入到装配中,组件称为实例。对每个实例,都会显示一个对应的事例,实例可理解为一种指针,由下级部件事例指向上级部件事例。Multi-level装配可以是多层的,即装配中可以有子装配。prototype一个事例的主几何体。对于组件文件事例情况下,是包含主几何体的零件。6基本概念和术语6componentpart组件是部件在装配体中的引用,组件可以是包含更低一级组件的子装配。referenceset在复杂装配中,为简化组件表达而定义的有名字的集合。这个集合包含了部件文件中的几何实体。当传递给函数的引用集名称是NULL时,表示函数对整个操作有用,如果引用集的名称是Empty,则使用emptyreferencesetdisplaypart当前显示在图形窗口中的模型。可以是一个零件,也可以是装配。显示模型必须是完全加载的。workpart建模过程中正在被使用的组件文件。该文件中的几何或装配结构正在被修改。工作组件可以和显示组件相同,或者是装配中的某个显示组件。当工作组件作为一个显示装配中的组件,可以仅仅被部分加载。只有在工作组件中的对象可以被修改。对象的事例不能被改变。7©UGSCorp.2007.Allrightsreserved.装配树结构装配树结构8装配树的结构装配树的结构8UG装配是以树型结构组织装配中的部件,一个部件文件中只能有一棵装配树,即只能存在一个装配根节点。装配中的节点由部件原型、部件事件与部件实例3种对象进行描述。9装配树的结构¾部件事件(partoccurrence)是装配环境下对实际存在的部件模型(即部件原型)的一种引用,部件事件也可以理解为指向部件原型的指针。如果需要一次或多次装配一个部件,并不复制该部件的原型,而是建立该部件原型所对应的事件。在装配中,不同的部件事件表征不同的装配节点,因此UG赋予它唯一的标识。910装配树的结构¾部件原型(partPrototype)是真实存在的部件模型,它记录了模型所需的所有数据。当一个部件文件被多次装入时,将产生不同的部件事件,但这些事件都指向相同的部件原型。可以看出,部件原型与部件事件之间形成一对多的映射关系。部件事件随原型的改变而改变,但修改部件事件不会影响它的原型。1011装配树的结构¾部件实例(partInstance)记录子节点与其父节点之间的关联关系,从而形成各节点间的层次结构。在装配体中,部件与其子部件之间的装配关系是利用部件实例来描述的。部件实例是指一次或多次装入装配体的部件对象,它描述装配环境下实例之间的层次关系,并表征惟一的上下级部件间的装配关系。部件实例也可以理解为一种指针,由下级部件事件指向上一级部件事件。可以看出,部件实例与部件事件之间形成一对多的映射关系,即不同的装配节点可能具有相同的装配关系。1112装配树的结构12装配节点具有相同部件实例的条件有3个:f装配节点具有相同的部件原型。f父装配节点不能相同,即父节点事件不同。f父节点事件指向同一个部件文件,即父节点原型相同。例如,由于WheelPart-occur-tag-5与WheelPart-occur-tag-7具有相同的部件原型和不同的父节点事件AxlePart-occur-tag-3与AxlePart-occur-tag-4,且父节点事件都指向相同的部件原型,因此它们具有相同的部件实例Instance-tag-1;尽管WheelPart-occur-tag-5与WheelPart-occur-tag-6指向同一个部件原型,但其父节点相同,不满足上述条件(2),因此它们具有不同的部件实例Instance-tag-1与Instance-tag-2。13装配树的结构装配树的结构13WheelPart-tag-1Object-tag-1AxlePart-tag-2Object-tag-2WheelPart-occur-tag-1Object-occur-tag-1Instance-tag-1(Left)WheelPart-occur-tag-2Object-occur-tag-2Instance-tag-2(Right)AutoAutoFrontAxleFrontAxleRearAxleRearAxleLeftWheelLeftWheelRightRightWheelWheelLeftWheelLeftWheelRightRightWheelWheel14AxlePart-occur-tag-3Object-occur-tag-3WheelPart-occur-tag-5Object-occur-tag-5Instance-tag-1(Left)WheelPart-occur-tag-6Object-occur-tag-6Instance-tag-2(Right)AxlePart-occur-tag-4Object-occur-tag-4WheelPart-occur-tag-7Object-occur-tag-7Instance-tag-1(Left)WheelPart-occur-tag-8Object-occur-tag-8Instance-tag-2(Right)AutoPart-tag-3Object-tag-3Instance-tag-3(Front)Instance-tag-4(Rear)装配树的结构装配树的结构15f/*得到当前的workpartprototypetag*/externtag_tUF_ASSEM_ask_work_part();f/*设置当前的workpartprototypetag*/externintUF_ASSEM_set_work_part(tag_tpart);f/*得到当前的workpartoccurrencetag*/externtag_tUF_ASSEM_ask_work_occurrence();f/*设置当前的workpartoccurrencetag*/externintUF_ASSEM_set_work_occurrence(tag_tpart_occur);f/*得到根part的occurrencetag,输入的part必须是根partprototypetag*/externtag_tUF_ASSEM_ask_root_part_occ(tag_tpart);f/*得到某个instance的父partprototypetag*/externtag_tUF_ASSEM_ask_parent_of_instance(tag_tinstance);常用函数16常用函数16f/*得到某个instance的partprototypetag*/externtag_tUF_ASSEM_ask_child_of_instance(tag_tinstance);f/*得到父part下某个instancename的instancetag*/externtag_tUF_ASSEM_ask_instance_of_name(tag_tparent_part,constchar*instance_name);f/*得到父part下某个instance的partoccurrencetag*/externtag_tUF_ASSEM_ask_part_occ_of_inst(tag_tparent_part_occ,tag_tinstance);f/*得到某个instance的所有partoccurrencetag*/externintUF_ASSEM_ask_part_occs_of_inst(tag_tinstance,tag_t**part_occs);f/*得到某个partoccurrence的instancetag*/externtag_tUF_ASSEM_ask_inst_of_part_occ(tag_tpart_occur);17f/*得到父part下某个partprototype的所有partoccurrencetag*/externintUF_ASSEM_ask_occs_of_part(tag_tparent_part,tag_tpart,tag_t**part_occs);f/*得到某个objectprototype的所有objectoccurrencetag*/externintUF_ASSEM_ask_occs_of_entity(tag_tobject,tag_t**occurrences);f/*得到某个object或partoccurrence的object或partprototypetag*/externtag_tUF_ASSEM_ask_prototype_of_occ(tag_toccurrence);f/*得到某个object或partoccurrence的父partoccurrencetag*/externtag_tUF_ASSEM_ask_part_occurrence(tag_toccurrence);f/*得到某个partoccurrence下所有子partoccurrencetag*/externintUF_ASSEM_ask_all_part_occ_children(tag_tpart_occur,tag_t**child_part_occs);常用函数1818f/*同上*/externintUF_ASSEM_ask_part_occ_children(tag_tpart_occur,tag_t**child_part_occs);f/*得到某个partoccurrence中所有objectoccurrencetag的个数*/externintUF_ASSEM_count_ents_in_part_occ(tag_tpart_occur);f/*得到某个partoccurrence中某个objectprototype的objectoccurrencetag*/externtag_tUF_ASSEM_find_occurrence(tag_tpart_occur,tag_tobject_prototype);f/*得到某个partoccurrence在当前workpart中的partoccurrencetag*/externintUF_ASSEM_get_occ_in_work_occ(tag_tpart_occ,tag_t*occ_in_work);f/*判断某个part或objecttag是否是occurrencetag*/externlogicalUF_ASSEM_is_occurrence(tag_tentity);常用函数19f/*判断某个part是否是occurrencetag*/externlogicalU
本文标题:UG二次开发资料(SIEMENS内部培训)7
链接地址:https://www.777doc.com/doc-1517277 .html