Mobile Communication Direct

絶対スペースの1点を製図座標にマップする。


サンプル

void	Func1(){
	int		ret;

	double dPt[2] = {150.0, 150.0};

	//図面へのビューの取り込み
	ret = uc6481("SHT1", "TOP", dPt, 1);

	if(ret != 0){cout << "ERROR\n";}

	int		num_views;
	tag_t	*view_list;

	UF_DRAW_ask_views(NULL_TAG, &num_views, &view_list );
	
	int		i;
	char	szBuff[31];

	for(i = 0; i < num_views; i++)
	{
		//指定された要素の名前を取得する。
		UF_OBJ_ask_name(view_list[i], szBuff);
		cout << szBuff << "//" << endl;

		//ビューのスケールを指定の値に設定
		UF_DRAW_set_view_scale (view_list[i], 0.2);

		//ビュー境界を自動ビュー境界として定義。
		UF_DRAW_define_view_auto_rect(view_list[i]);

		//現在の図面のタグを返します
		tag_t	drawing_tag = NULL_TAG;
		UF_DRAW_ask_current_drawing (&drawing_tag);		

		logical	out_of_date;

		//要素の未更新状態を照会する。今のところ、ビューと図面の2つの要素だけが有効。
		UF_DRAW_is_object_out_of_date(view_list[i], &out_of_date);

		if (out_of_date)
		{
			//図面上の1つの図面メンバビューを更新する。
			UF_DRAW_update_one_view(drawing_tag, view_list[i]);
		}

		/*
		絶対スペースの1点を製図座標にマップします。
		この関数を使用してベクトルをマップすることはできません。
		この関数は、製図メンバビューからのみマップします。
		*/
		double	model_pt[3] = {10.0, 10.0, 10.0};
		double	map_pt[2];

		ret = UF_VIEW_map_model_to_drawing(view_list[i], model_pt, map_pt);
		if(ret != 0){cout << "ERROR\n";}

		cout << "map_pt[0] = " << map_pt[0] << endl;
		cout << "map_pt[1] = " << map_pt[1] << endl;
		
	}

	//
	UF_free(view_list);

	return;

}
			

 


under