UF Objectsug中的大部分公共对象都是头文件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_all、UF_OBJ_cycle_by_name和UF_LAYER_cycle_by_layer更有效。因此建议使用UF_OBJ_cycle_objs_in_part而不是函数UF_OBJ_cycle_all、 UF_OBJ_cycle_by_name和UF_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没有被编辑(例如:改变颜色等),也没有被引用,那么它不被保存到装配件文件中,它是暂时的,每次加载装配件时被重建。反之,它是永久被保存的。9 o$ b- p7 z+ ]7 f/ s0 E# q
|