| | even2004: UF_PARAM_set_int_value的用法 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <uf.h>
 #include <uf_ui.h>
 #include <uf_disp.h>
 #include <uf_object_types.h>
 #include <uf_obj.h>
 #include <uf_modl.h>
 #include <uf_curve.h>
 #include <uf_assem.h>
 
 #include <uf_ui_ont.h>
 #include <uf_ui_param.h>
 #include <uf_oper.h>
 #include <uf_cam.h>
 #include <uf_cam_errors.h>
 
 #include <uf_param.h>
 #include <uf_param_indices.h>
 
 
 
 #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
 
 static int report_error( char *file, int line, char *call, int irc)
 {
 if (irc)
 {
 char err[133],
 msg[133];
 
 sprintf(msg, "*** ERROR code %d at line %d in %s:n+++ ",
 irc, line, file);
 UF_get_fail_message(irc, err);
 '
 /*  NOTE:  UF_print_syslog is new in V18 */
 
 UF_print_syslog(msg, FALSE);
 UF_print_syslog(err, FALSE);
 UF_print_syslog("n", FALSE);
 UF_print_syslog(call, FALSE);
 UF_print_syslog(";n", FALSE);
 
 if (!UF_UI_open_listing_window())
 {
 UF_UI_write_listing_window(msg);
 UF_UI_write_listing_window(err);
 UF_UI_write_listing_window("n");
 UF_UI_write_listing_window(call);
 UF_UI_write_listing_window(";n");
 }
 }
 
 return(irc);
 }
 
 
 
 #define WRITE_S(X) (write_string_to_listing_window(X))
 
 
 void write_string_to_listing_window( char *string)
 {
 char
 msg[MAX_LINE_SIZE+1];
 
 UF_CALL(UF_UI_open_listing_window());
 sprintf(msg, "%sn", string);
 UF_CALL(UF_UI_write_listing_window(msg));
 }
 
 static logical specify_point(char *prompt, double loc[3])
 {
 int
 ia2[2] = { 0,0 },
 ip3 = 0,
 irc;
 
 irc = uc1616(prompt, ia2, ip3, loc);
 if (irc == 5) return TRUE;
 else return FALSE;
 }
 
 
 static void do_it(void)-
 {/
 
 tag_t        *objects;
 tag_t        point;
 
 int       i,
 entity_count,)
 object_count, err_code, type, subtype,response,
 TRIM_POINT1_TOG_AUTOMATIC = 0,
 TRIM_POINT1_TOG_VECTOR = 1,
 TRIM_POINT1_TOG_ANGLE = 2,
 togle_off = 0,
 togle_on = 1;
 
 double ang_val_radians = 1.57; // 90 degress
 
 double pos[3];
 
 char        msg[MAX_LINE_SIZE+1];
 char errorstrg[133];
 
 
 logical  is_initialized;
 logical is_generated;
 
 
 if (UF_CALL(UF_CAM_is_session_initialized(&is_initialized)) || (is_initialized == FALSE))return;
 
 
 while (specify_point("Indicate point location", pos))
 UF_CALL(UF_CURVE_create_point(pos, &point));
 
 /* Get the highlighted/selected objects from Navigation Tool. */
 UF_UI_ONT_ask_selected_nodes( &object_count, &objects );
 
 if (object_count > 0)
 {
 UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));
 
 sprintf(msg,"type is %d subtype is %d",type,subtype);
 WRITE_S(msg);
 
 if (type == UF_machining_operation_type && subtype == UF_mach_turn_rough_subtype )
 {
 UF_CALL(UF_PARAM_set_int_value(objects[0],UF_PARAM_TURN_TRIM_POINT1_TOG,togle_on));
 UF_CALL(UF_PARAM_set_tag_value(objects[0],UF_PARAM_TURN_TRIM_POINT1_TAG,point));
 
 
 
 UF_CALL(UF_PARAM_set_int_value(objects[0],UF_PARAM_TURN_TRIM_POINT1_ANGLE_TOG,TRIM_POINT1_TOG_ANGLE));
 UF_CALL(UF_PARAM_set_double_value(objects[0],UF_PARAM_TURN_TRIM_POINT1_ANGLE_VAL,ang_val_radians));
 UF_CALL(UF_PARAM_generate(objects[0],&is_generated));
 }
 else
 {
 sprintf(msg,"object type is not UF_machining_operation_type and subtype is not UF_mach_turn_rough_subtype");
 WRITE_S(msg);
 }
 UF_free(objects);
 }
 else
 {
 UF_CALL(UF_UI_open_listing_window( ));
 sprintf(msg,"objects selected in ONT is not equal to 1");
 UF_CALL(UF_UI_write_listing_window(msg));
 }
 
 return;
 }
 
 extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
 {
 /* Initialize the API environment */
 if( UF_CALL(UF_initialize()) )
 {
 /* Failed to initialize */
 return;
 }
 
 do_it();
 
 /* Terminate the API environment */
 UF_CALL(UF_terminate());
 }
 
 
 extern int ufusr_ask_unload( void )
 {
 return( UF_UNLOAD_IMMEDIATELY );
 
 | 
 |