Mobile Communication Direct

ビューの編集(移動、回転)


サンプル

#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;
}
			

 


<戻る>