创建草图,添加约束,获取草图表达式

	//1.进入草图环境
	char name[UF_OBJ_NAME_BUFSIZE] = "SKETCH";
	tag_t  sketTAG = NULL_TAG;
	UF_SKET_initialize_sketch(name, &sketTAG);

	//2.指定CSYS创建草图
	double matrix[9] = { 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 };
	tag_t object[2];
	int reference[2];
	int plane_dir = 2;
	UF_SKET_create_sketch(name, 2, matrix, object, reference, plane_dir, &sketTAG);

	//3.创建直线
	UF_CURVE_line_t line;
	line.start_point[0] = 2.0;
	line.start_point[1] = 2.0;
	line.start_point[2] = 0.0;
	line.end_point[0] = 10.0;
	line.end_point[1] = 10.0;
	line.end_point[2] = 0.0;
	tag_t lineTAG = NULL_TAG;
	UF_CURVE_create_line(&line, &lineTAG);

	//4.添加曲线到当前草图
	tag_t  objline[1] = { lineTAG };
	UF_SKET_add_objects(sketTAG, 1, objline);

	//5.添加线性尺寸约束
	UF_SKET_dim_object_t obj1[2];
	obj1[0].object_tag = lineTAG;
	obj1[0].object_assoc_type = UF_SKET_end_point;
	obj1[0].object_assoc_mod_value = UF_SKET_first_end_point;
	obj1[1].object_tag = lineTAG;
	obj1[1].object_assoc_type = UF_SKET_end_point;
	obj1[1].object_assoc_mod_value = UF_SKET_last_end_point;
	double dim_origin[3] = { 10, 5, 0 };
	double dim_origin1[3] = { 5, 12, 0 };
	tag_t con_TAG = NULL_TAG;
	tag_t con_TAG1 = NULL_TAG;
	UF_SKET_create_dimensional_constraint(sketTAG, UF_SKET_vertical_dim, 2, obj1, dim_origin, &con_TAG);//创建竖直的尺寸
	UF_SKET_create_dimensional_constraint(sketTAG, UF_SKET_horizontal_dim, 2, obj1, dim_origin1, &con_TAG1);//创建水平的尺寸

	//6.创建几何约束
	UF_SKET_con_geom_t  con_geoms[1];
	con_geoms[0].geom_tag = lineTAG;
	con_geoms[0].vertex_type = UF_SKET_start_vertex;
	tag_t con_tag1 = NULL_TAG;
	UF_SKET_create_geometric_constraint(sketTAG, UF_SKET_fixed, 1, con_geoms, &con_tag1);

	//7.获取草图的表达式Tag
	int countExp;
	tag_t* exprTAG = NULL;
	UF_SKET_ask_exps_of_sketch(sketTAG, &countExp, &exprTAG);

	//打印表达式Tag
	UF_UI_open_listing_window();
	char msg[256];
	for (int i = 0; i < countExp; i++)
	{
		sprintf(msg, "%d\n", exprTAG[i]);
		UF_UI_write_listing_window(msg);
	}
	UF_free(exprTAG);	//释放内存

	//8.更新草图
	UF_SKET_update_sketch(sketTAG);

	//9.退出草图环境
	UF_SKET_terminate_sketch();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值