NX 차 개발 -UFUN는 곡선 UF_MODL_ask_proj_curves에 곡선을 예상 얻을

  1 NX11 + VS2013 
  2 
  3 #INCLUDE <uf.h> 
  4 #INCLUDE <uf_modl.h> 
  5 #INCLUDE <uf_curve.h> 
  6 #INCLUDE <uf_obj.h> 
  7 
  8 
  9 
 10      
 11 UF_initialize (); 
 12 
 13 //创建四条直线
 14 UF_CURVE_line_t Line_coords1; 
 15 Line_coords1.start_point [0] = 0.0 ;  16 Line_coords1.start_point [1] = 0.0 ;  17 Line_coords1.start_point [2] = 0.0 ; 18 Line_coords1.end_point [0] = 10.0 ; 19 Line_coords1.end_point [1] = 0.0 ; 20 Line_coords1.end_point [2] = 0.0 ; 21 tag_t LineTag [4 ]; 22 UF_CURVE_create_line (Line_coords1, LineTag [0]); 23 24 UF_CURVE_line_t Line_coords2; 25 Line_coords2.start_point [0] = 10.0 ; 26 Line_coords2.start_point [1] = 0.0 ; 27 Line_coords2.start_point [2] = 0.0 ; 28 Line_coords2.end_point [0] = 10.0 ; 29 Line_coords2.end_point [1] = 10.0 ; 30 Line_coords2.end_point [2] = 0.0 ; 31 UF_CURVE_create_line (Line_coords2, LineTag [1 ]); 32 33 UF_CURVE_line_t Line_coords3; 34 Line_coords3.start_point [0] = 10.0 ; 35 Line_coords3.start_point [1] = 10.0 ; 36 Line_coords3.start_point [2] = 0.0 ; 37 Line_coords3.end_point [0] = 0.0 ; 38 Line_coords3.end_point [1] = 10.0 ; 39 Line_coords3.end_point [2] = 0.0 ; 40 UF_CURVE_create_line (Line_coords3, LineTag [2 ]); 41 42Line_coords4 UF_CURVE_line_t는, Line_coords4.start_point 43 [0]가 0.0 = 44이 Line_coords4.start_point이다. 1] = 10.0 ; 45 Line_coords4.start_point [2] = 0.0 ; 46 Line_coords4.end_point [0] = 0.0 ; 47 Line_coords4.end_point [. 1] 0.0 = 48이 Line_coords4.end_point [2] = 0.0 ; 49 UF_CURVE_create_line ([. 3 Line_coords4, LineTag가 ]) // 작성 부 51 50 52 UF_FEATURE_SIGN 기호이다 = UF_NULLSIGN // 설정된 부울 53 번 Corner_pt [3] = { -50.0 , -50.0, -110.0} // 원점 54 문자 세트 * Edge_Len [3] = { "100", "100", "100"} // 세트 tag_t BlkTag = LWH 55 NULL_TAG; 56 UF_MODL_create_block1이다 (부호 , Corner_pt는 Edge_Len, BlkTag) 표면 (57)을 찾는 것을 특징으로 58 // 59이고 60 UF_MODL_ask_feat_faces (BlkTag,; faceList uf_list_p_t faceList);// 61 (62)은 숫자 63 INT 카운트 = 0의리스트를 얻을64 UF_MODL_ask_list_count (faceList, COUNT) 65 = 66 tag_t redFaceTag NULL_TAG; 67은 (INT는 0 = I, I는 <COUNT; I ++ ) 68 {69 // 각 연결 목록 70 tag_t faceTag = 태그 위젯 NULL_TAG을 71은 UF_MODL_ask_list_item (faceList, I, faceTag) 72 // 73 각면 (74)의 수득 INT 원점 유형 [. 3 75 포인트 배 ] 76 번 디렉터리 [3. ] 77 번 박스 [6. ]. 78 번 반경 [3 ] 79 번 RadData [3. ] 80 INT NormDir 81 UF_MODL_ask_face_data (faceTag, 유형, 크기 디렉터리, 상자, 반경 RadData, NormDir) 표면 8283 // 거리 (10) (블록의 상부면)을 찾아 IF (84) (FABS (FABS 요점 ([2]) - 10) <0.001 ) (85) {// 86은 색 UF_OBJ_set_color 87 (faceTag, 186 세트 ) 88 redFaceTag = faceTag 89 } 90} 커브 (91) (92) (93)에서 94 만들 // 95 UF_MODL_create_list (; curve_refs uf_list_p_t curve_refs) 96 //하는리스트 (97)에 객체를 추가 (.; I <4 I ++ INT I = 0 (98); face1_refs uf_list_p_t을 99) {100 UF_MODL_put_list_item (curve_refs, LineTag [I]) 101 } 102 103 // 표면 UF_MODL_create_list 목록을 만들 104 ( face1_refs) 105 UF_MODL_put_list_item (face1_refs, redFaceTag) 106 107 108 // 투영 곡선을 생성 (109)의 INT along_face = 0, // 0 투영 벡터 = (proj_vector) 1 = 표면 법선 110 번 proj_vector를 사용를 사용 [3] = { 0.0, 0.0, -1.0} // 투영 벡터 방향 tag_t의 proj1tag = 111 NULL_TAG 112 UF_MODL_create_proj_curves (curve_refs, face1_refs, along_face , proj_vector, proj1tag) 113 114 115 // // 그래프 (117)에 투영 곡선 1116있어서 얻기 uf_curve_refs uf_list_p_t 1 18 UF_MODL_ask_proj_curves (proj1tag을,uf_curve_refs) 119 120 // 0 = 121 curveCount의 INT의 수의리스트 얻을 122 UF_MODL_ask_list_count (uf_curve_refs,; curveCount가) 123 124 (INT I = 0; I <curveCount; I ++ ) 125 취득한 {126 //리스트 각 tag_t curveTag = 127 태그 NULL_TAG 128 UF_MODL_ask_list_item (uf_curve_refs, I, curveTag가) 129 130 UF_OBJ_set_color 131 (curveTag, 136 색으로 설정 // 132) } (133) (134)에있어서 //// 2 135 // INT n_curve_refs =을 0 136 * // tag_t curve_refsTag = NULL_TAG 137 // UF_CURVE_ask_proj_curves (proj1tag, n_curve_refs, curve_refsTag) 138 (139) // 대 (I 0 = 나타내는 int I <n_curve_refs 단계; I ++) {// 140 // 141 집합 컬러 (142) // UF_OBJ_set_color (curve_refsTag [I] , 136) 143 144 145} // // 리스트 UF_MODL_delete_list 146 (삭제 uf_curve_refs) UF_MODL_delete_list 147 (curve_refs); 148 UF_MODL_delete_list ( face1_refs)를; 149 UF_MODL_delete_list ( faceList)를; 150 151 UF_terminate (); 152 153 시저卢尚宇154 2,020 29年2月日

추천

출처www.cnblogs.com/nxopen2018/p/12387297.html