ビューの編集(移動、回転)
サンプル #include <uf_draw.h> #include <uf_draw_errors.h> #include <uf_draw_types.h> #include <uf_view.h> #include <uf_view_ugopenint.h> using namespace std; int ThisProject(void){ int ret; //負の値はエラー //double dPt[2] = {150.0, -10.0}; double dPt[2] = {200.0, 200.0}; //図面へのビューの取り込み ret = uc6481("SHT1", "TOP", dPt, 1); if(ret != 0){cout << "ERROR uc6481 ret = " << ret << endl; return 0;} //図面内のビューの検索 char view_name [MAX_ENTITY_NAME_SIZE] = ""; uc6499("", view_name); cout << "view_name -> " << view_name << endl; //名前で指定した既存のビューのタグを取得 tag_t view_tag = NULL_TAG; UF_VIEW_ask_tag_of_view_name (view_name, &view_tag); //ビューのスケールを指定の値に設定 UF_DRAW_set_view_scale (view_tag, 0.1); //ビュー境界を自動ビュー境界として定義 UF_DRAW_define_view_auto_rect(view_tag); //現在の図面のタグを返します tag_t drawing_tag = NULL_TAG; UF_DRAW_ask_current_drawing (&drawing_tag); //ビュー角度を特定の値に設定します。 UF_DRAW_set_view_angle (view_tag, 90.0); //要素の未更新状態を照会する。今のところ、ビューと図面の2つの要素だけが有効。 logical out_of_date; UF_DRAW_is_object_out_of_date(view_tag, &out_of_date); if (out_of_date) { //図面上の1つの図面メンバビューを更新する。 UF_DRAW_update_one_view(drawing_tag, view_tag); } double reference_pt[2]; //図面内のビューの図面参照点位置の読み込み。 ret = uc6483("", view_name, reference_pt); cout << "reference_pt[0] " << reference_pt[0] << endl; cout << "reference_pt[1] " << reference_pt[1] << endl; double reference_pt_move[2]; reference_pt_move[0] = 100.0; reference_pt_move[1] = 100.0; //このルーチンは、指定されたビューを、現在の図面上の所定の位置へ移動します。 ret = UF_DRAW_move_view(view_tag, reference_pt_move); //図面内のビューの図面参照点位置の読み込み。 ret = uc6483("", view_name, reference_pt); cout << "reference_pt[0] " << reference_pt[0] << endl; cout << "reference_pt[1] " << reference_pt[1] << endl; return 0; }