#include <uf_draw.h>
#include <uf_draw_errors.h>
#include <uf_draw_types.h>
#include <uf_view.h>
#include <uf_view_ugopenint.h>
#include <uf_obj.h>
#include <uf_obj_errors.h>
#include <uf_obj_types.h>
#include <uf_object_types.h>
using namespace std;
// 関数のプロタイプ宣言
void Func1(tag_t drawing_tag, tag_t view_tag);
// 関数のプロタイプ宣言の終了
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);
//ビュー更新
Func1(drawing_tag, view_tag);
//正投影ビューを現在の図面に追加。
UF_DRAW_proj_dir_t projection_direction = UF_DRAW_project_infer;
double reference_point[2] = {400.0, 400.0};
tag_t ortho_view_tag = NULL_TAG;
//正投影ビューを現在の図面に追加。
ret = UF_DRAW_add_orthographic_view(drawing_tag, view_tag,
projection_direction, reference_point,
&ortho_view_tag );
//ビュー更新。
Func1(drawing_tag, ortho_view_tag);
//図面内のビューの検索
char view_name2 [MAX_ENTITY_NAME_SIZE] = "";
ret = UF_OBJ_ask_name(ortho_view_tag, view_name2);
cout << "view_name2 -> " << view_name2 << endl;
double reference_pt[2] = {0.0, 0.0};
//図面内のビューの図面参照点位置の読み込み。
ret = uc6483("", view_name2, 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] = reference_pt[0] + 100.0;
reference_pt_move[1] = reference_pt[1];
ret = UF_DRAW_move_view(ortho_view_tag, reference_pt_move);
return 0;
}
|