青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 3328|回复: 1

[教程] UG二次开发实用入门教程_UG 对象类型及操作(2)_UF Objects

[复制链接]
发表于 2014-3-31 07:46 | 显示全部楼层 |阅读模式
  UF Objects
ug中的大部分公共对象都是头文件uf_object_types.h中定义的对象. 所有这些对象都有明确的函数与它们对应,只有特定的对象子类和displayable UF objects有另外的函数与它们对应。
   UF Objects的共性和对应函数
所有 UF objects 拥有下列的共有信息:
·        atype-- uf_object_types.h文件中列出了所有类。一个对象的类型可通过函数UF_OBJ_ask_type_and_subtype查询出来。
·        asubtype-- uf_object_types.h文件中列出了所有子类。不是所有的对象都使用子类。
·        astatus– 通过使用函数UF_OBJ_ask_status可查出对象的状态。对象共有下列几种状态:
o    UF_OBJ_DELETED 。
o    UF_OBJ_TEMPORARY -例如临时坐标系由UF_CSYS_create_temp _csys函数创建,不会被保存。
o    UF_OBJ_CONDEMNED -一般由于对象被删除,但它是其他对象的参考,只有所有的这些参考被删除后,该对象才从模型中删除。 该状态的对象永远不被显示。
o    UF_OBJ_ALIVE 。
UF objects 可用的方法有:
·        访问或指定单个对象的名称 (使用 UF_OBJ_set_name,UF_OBJ_ask_name, and UF_OBJ_delete_name)
·        遍历 (使用UF_OBJ_cycle_objs_in_part, UF_OBJ_cycle_all, 和 UF_OBJ_cycle_by_name)
注意: 因为UG中对象的存储方式的独特, 函数UF_OBJ_cycle_objs_in_part比函数UF_OBJ_cycle_allUF_OBJ_cycle_by_nameUF_LAYER_cycle_by_layer更有效。因此建议使用UF_OBJ_cycle_objs_in_part而不是函数UF_OBJ_cycle_all UF_OBJ_cycle_by_nameUF_LAYER_cycle_by_layer
·        分配和访问 attributes (头文件 uf_attr.h中的所有函数)
Attributes两个不同的组成部分:a title and a value.
Title的长度要小于 UF_ATTR_MAX_TITLE_LEN
Attributes类型表:
  
Attribute Type
  
  
Example Title
  
  
Example Value
  
  
UF_ATTR_integer
  
  
COUNT
  
  
10
  
  
UF_ATTR_real
  
  
DENSITY
  
  
12.75
  
  
UF_ATTR_null
  
  
IS_PURCHASED
  
  
<NONE>
  
Null  attributes have no value, only a title.
  
  
UF_ATTR_string
  
  
MATERIAL
  
  
STEEL
  
  
UF_ATTR_time
  
  
TODAY
  
  
{  9838 , 10020 }
  
  
UF_ATTR_reference
  
  
DIAMETER
  
  
"<X5.2@P1>"
  
UF_ATTR_time 属性由两个整数组成,第一个整数是日期表示从1970年1月1日到当前的天数,第二个整数表示时间,可用函数uc4583 (见头文件 uf_cfi.h) 计算这两个整数,用函数uc4582(见头文件 uf_cfi.h)从这两个整数得到代表时间及日期的字符串。
上表中的UF_ATTR_reference属性的value随着表达式P1的变化而变化。该属性的语法格式如下:
<(x|X)m(.|,)n@exp_name>
"<(x|X)"– 大小写均可,格式的标识。
"m(.|,)n"–m标识域宽,n标识小数点后的精度,有点类似C语言中的real型数据格式。
">"-结束标志。
在上例中, if P1 13.579, DIAMETER 13.58.
   Displayable UF Objects
使用函数UF_OBJ_is_type_displayable 来检测UF Objects是否属于Displayable UF Objects
·        DisplayableUF Objects的独特信息和函数
所有displayable UF objects 除了有UF objects的特性外,还包括下列信息:
层 – 对象所在的当前层(1-255)。
颜色 – 对象的当前颜色,可以是下列15种颜色之一:
  
UF_OBJ_BLUE
  
  
UF_OBJ_GREEN
  
  
UF_OBJ_CYAN
  
  
UF_OBJ_RED
  
  
UF_OBJ_MAGENTA
  
  
UF_OBJ_YELLOW
  
  
UF_OBJ_WHITE
  
  
UF_OBJ_OLIVE
  
  
UF_OBJ_PINK
  
  
UF_OBJ_BROWN
  
  
UF_OBJ_ORANGE
  
  
UF_OBJ_PURPLE
  
  
UF_OBJ_DARK_RED
  
  
UF_OBJ_AQUAMARINE
  
  
UF_OBJ_GRAY
  
blank 状态 – 对象当前的blank状态: UF_OBJ_BLANKED 或 UF_OBJ_NOT_BLANKED。
线宽 – 对象当前被指定的线宽:UF_OBJ_WIDTH_NORMAL、UF_OBJ_WIDTH_THICK 和 UF_OBJ_WIDTH_THIN。
字形 -- 对象当前被指定的字形: 1 - 7。
高亮状态 -- 对象当前的高亮状态:一个逻辑变量。
所有以上信息可以在一单个的结构中:UF_OBJ_disp_props_t,得到该结构的函数是:UF_OBJ_ask_display_properties。
使用displayable UF objects的函数。
设置displayable UF objects信息的函数:
UF_OBJ_set_layer,UF_OBJ_set_color, UF_OBJ_set_blank_status, UF_OBJ_set_line_width,UF_OBJ_set_font, UF_DISP_set_highlight
除了高亮状态外,其它信息都可以保存到part文件中。
显示对象 ,函数UF_DISP_add_item_to_display增加一个新的对象到UG的
显示窗。
附加的查询函数UF_LAYER_cycle_by_layer。
选择对象,使用函数UF_UI_select_single、UF_UI_select_by_class、UF_UI_select_feature或UF_UI_select_sketch。
这些函数让用户在UG的交互环境中从UG的图形窗口选择对象UF_UI_select_by_class 显示类型选择对话框。
其它函数见头文件uf_obj.h
·        装配意义下的Displayable UF Objects
装配件是特殊类型的Part,装配件中的parts也叫 components(组件),component可以是装配件,也可以是普通part文件。 一个part在同一装配件中可以有多次出现,每次都有不同的位置和方位。装配件中不包含其组件的几何,而是包含occurrences(事件),occurrence表示了组件的几何是如何定位,定向的,occurrence指向的真实几何叫prototype(原型)。
Occurrences的行为很象它指向的原型,它们可以被显示、被选择、被引用,甚至可以通过某种方式被修改(如:改变颜色、增加属性等),这一特性使用户可以改变一个occurrence的外观,而不影响它的原型及同一装配件中的其它occurrence。如果一个occurrence没有被编辑(例如:改变颜色等),也没有被引用,那么它不被保存到装配件文件中,它是暂时的,每次加载装配件时被重建。反之,它是永久被保存的。
. ?) N# U) X' Q) s1 {
发表于 2015-8-12 15:04 | 显示全部楼层
是否有 选择一个对像,列出他的图层,,的例子呢* u. I+ l- l, G$ o; m8 f) e
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2024-5-4 01:47 , Processed in 0.141236 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表