NX二次开发常用函数:UF_MODL_ask_feat_......(二)

        最近学习NX二次开发发现有一些函数经常使用,俗话说得好,好记性不如烂笔头,现在做一下笔记,帮助理解。

UF_MODL_ask_feat_......在头文件uf_modl.h

1、UF_MODL_ask_feat_direction (查询特征的方向)

概述:获得特征的方向,特征的方向取决于特性类型。有的特征有一个或两个方向,有些则一个都没有。

适用环境:内部或者外部模式

参考:列表 list特征和他们的方向

tag_t (tag_t类型)	feature_obj_id	Input(输入)	特征对象的TAG值
double (实数型)	    dir_x [ ]	    Output(输出)	X方向
double (实数型)	    dir_y [ ]	    Output(输出)	Y方向

实例:通过特征找X、Y的方向,并打印特征的方向值

    UF_initialize();
	//创建块
	UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
	double Corner_pt[3] = { 0.0, 0.0, 0.0 };//设置原点
	char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
	tag_t BlkTag = NULL_TAG;
	UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

	//查找特征的X,Y方向(可能一个或两个,也可能一个都没有)
	tag_t dirTag = BlkTag;
	double dir_x[3], dir_y[3];
	UF_MODL_ask_feat_direction(dirTag, dir_x, dir_y);

	//打印坐标
	char msg[256];
	sprintf(msg, "dir_x:%f,%f,%f\n", dir_x[0], dir_x[1], dir_x[2]);
	print(msg);
	char msg1[256];
	sprintf(msg1, "dir_y:%f,%f,%f\n", dir_y[0], dir_y[1], dir_y[2]);
	print(msg1);

	UF_terminate();

块有X、Y坐标

2、UF_MODL_ask_feat_name (查询特征的名字)

概述:返回包含特征类型和时间戳的字符串。例如,如果你创建了两个块,它们会
时间戳为BLOCK(0)和BLOCK(1)。

适用环境:内部或者外部模式

参考:example

tag_t (tag_t类型)	feature_tag	    Input(输入)	            特征的TAG值
char * *	        feature_name	Output to be freed(输出)   包含特征名称(特征类型和时间戳),并使用UF_free释放内存

实例:通过特征找名字,并打印特征的名字

	UF_initialize();
	//创建块
	UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
	double Corner_pt[3] = { 0.0, 0.0, 0.0 };//设置原点
	char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
	tag_t BlkTag = NULL_TAG;
	UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

	//查找特征名字
	char *feature_name = NULL;
	UF_MODL_ask_feat_name(BlkTag, &feature_name);
	//打印名字
	print(feature_name);
	//释放内存
	UF_free(feature_name);

	UF_terminate();

3、UF_MODL_ask_feat_display_name (查询特征的名字)

概述:获取给特征的显示名称。

适用环境:内部或者外部模式

tag_t (tag_t类型)	feature_tag	    Input(输入)	            特征的TAG值
char * *	        feature_name	Output to be freed(输出)   获得特征的显示名称,并使用UF_free释放内存

实例:通过特征找名字,并打印特征的名字

	UF_initialize();
	//创建块
	UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
	double Corner_pt[3] = { 0.0, 0.0, 0.0 };//设置原点
	char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
	tag_t BlkTag = NULL_TAG;
	UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

	//查找特征名字
	char *feature_name = NULL;
	UF_MODL_ask_feat_name(BlkTag, &feature_name);
	//打印名字
	print(feature_name);
	//释放内存
	UF_free(feature_name);

	UF_terminate();

 4、UF_MODL_ask_feat_location (查询特征在绝对坐标系下的位置)

概述:查询单个特征对象并检索该特征在绝对坐标系中的位置。特征的位置取决于特征类型。

适用环境:内部或者外部模式

tag_t (tag_t类型)	feature_obj_id	Input(输入)	特征对象的TAG值
double (实数型)	    location [ ]	Output(输出)	特征在绝对坐标系下的位置

实例:通过特征找特征的位置,并打印特征的位置坐标

    UF_initialize();
	//创建块
	UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
	double Corner_pt[3] = { 1.0, 1.0, 1.0 };//设置原点
	char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
	tag_t BlkTag = NULL_TAG;
	UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

	//查找特征在绝对坐标系下的位置
	double location[3];
	UF_MODL_ask_feat_location(BlkTag, location);

	//打印特征在绝对坐标系下的位置
	char msg[256];
	sprintf(msg, "location:%f,%f,%f\n", location[0], location[1], location[2]);
	print(msg);

	UF_terminate();

 5、UF_MODL_ask_feat_object (根据特征查询对象,一个特征可能对应多个对象)

概述:根据特征获取对象的TAG值,函数返回类型对于平面返回UF_datum_plane_type对象标识符,对于轴返回UF_datum_axis_type的对象标识符,对于曲线返回UF_sketch_type类型的对象标识符,曲线特征(如投影曲线,提取…)返回对象曲线标识符。

适用环境:内部或者外部模式

tag_t (tag_t类型)	feature	Input(输入)	            特征对象的TAG值
int * (整数型指针)	n_eids	Output(输出)	            对象的数量
tag_t * *	        eids	Output to be freed(输出)   对象数组并释放内存

实例:通过特征找对象的TAG值,并打印特征tag值和对象tag值,以及通过特征找体将实体进行染色

 	UF_initialize();
	//创建块
	UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
	double Corner_pt[3] = { 1.0, 1.0, 1.0 };//设置原点
	char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
	tag_t BlkTag = NULL_TAG;
	UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

	//特征查询对象,一个特征可能对应多个对象
	int n_eids = 0;
	tag_t *eids = NULL;
	UF_MODL_ask_feat_object(BlkTag, &n_eids, &eids);
	for (int i = 0; i < n_eids; i++)
	{
		//打印特征tag值和对象tag值
		char msg[256];
		sprintf(msg, "FeatureTAG:%d\n", BlkTag);
		print(msg);
		char msg1[256];
		sprintf(msg1, "objectTAG:%d\n", eids[i]);
		print(msg1);
		//将对象染色
		tag_t bodyTAG = NULL_TAG;
		UF_MODL_ask_feat_body(eids[i], &bodyTAG);
		UF_OBJ_set_color(bodyTAG, 186);

	}
	UF_terminate();

6、UF_MODL_ask_feat_relatives (根据特征查询与特征相关的联系)

概述:获取特征的亲属(父母和孩子)。这个函数适用于所有功能,包括基准,草图和投影曲线。

适用环境:内部或者外部模式

参考: example

tag_t (tag_t类型)	feature_tag    Input(输入)	                    特征的tag值
int * (整数型指针)	num_parents    Output(输出)	                关联父亲的TAG值的数量
tag_t * *	        parent_array   Output to be freed输出并释放	    存储父亲TAG值的组数,使用UF_free释放
int * (整数型指针)	num_children	Output(输出)	                关联儿子的TAG值的数量
tag_t * *	        children_array	Output to be freed输出并释放	    存储儿子TAG值的组数,使用UF_free释放

实例遍历当前工作部件的特征及关系

	try
	{
		UF_initialize();
		//获得当前工作坐标系的部件TAG
		tag_t part_tag  = UF_ASSEM_ask_work_part();
		遍历工作坐标系的所有对象
		int enttype = UF_feature_type;
		tag_t feat1 = NULL_TAG;
		char *feat_type;
		int index = 0;
		tag_t master_feature = NULL_TAG;
		int num_parents = 0, num_children = 0;
		tag_t * parent_array, *children_array;
		do
		{
			UF_OBJ_cycle_objs_in_part(part_tag, enttype, &feat1);
			if (feat1 == NULL_TAG) break;
			/* 获得特征类型 */
			UF_MODL_ask_feat_type(feat1, &feat_type);
			char msg[256];
			sprintf(msg, "feature %d = %u is of type %s\n", index, feat1, feat_type);
			print(msg);
			++index;
			/* If the feature is an INSTANCE(instance), then get the master feature and its type */
			if (feat_type!="INSTANCE")
			{
				UF_MODL_ask_master(feat1, &master_feature);
				UF_MODL_ask_feat_type(master_feature, &feat_type);
				char msg1[256];
				sprintf(msg1, "master feature %u is of type = %s\n", master_feature, feat_type);
				print(msg1);
			}
			//特征查询与特征相关的联系
			UF_MODL_ask_feat_relatives(feat1, &num_parents,&parent_array, &num_children, &children_array);
			char msg2[256];
			sprintf(msg2,"parent array for %u contains %d members:\n",feat1, num_parents);
			print(msg2);
			if (num_parents > 0)
			{
				for (int i = 0; i < num_parents; i++)
				{
					UF_MODL_ask_feat_type(parent_array[i],&feat_type);
					char msg3[256];
					sprintf(msg3,"parent id %d = %u is of feature type %s\n",i, parent_array[i], feat_type);
					print(msg3);
				}
			}
			char msg4[256];
			sprintf(msg4,"children array for feature %u contains %d members:\n",feat1, num_children);
			print(msg4);
			if (num_children > 0)
			{
				for (int j = 0; j < num_children; j++)
				{
					UF_MODL_ask_feat_type(children_array[j], &feat_type);
					char msg5[256];
					sprintf(msg5,"child id %d = %u is of feature type %s\n", j, children_array[j], feat_type);
					print(msg5);
				}
			}
			UF_free(parent_array);
			UF_free(children_array);
		}while (feat1);
		UF_free(feat_type);

		UF_terminate();
	}
	catch (const NXException& e1)
	{
		UI::GetUI()->NXMessageBox()->Show("NXException", NXOpen::NXMessageBox::DialogTypeError, e1.Message());
	}

7、UF_MODL_ask_feat_sysname(根据特征查询特征的系统名字)

概述:返回特征的全名(类型和时间戳)。这个名字是NX系统定义的名称,并不能反映重命名用户除非该功能是UDF可能应用到的功能。如果输入功能是用户定义特征(UDF)系统功能名称相比于任何名称“用户定义特征”被认为是微不足道的由用户施加。 UDF功能将返回用户应用功能名称。在一些情况下,特征类型的进一步改进时,只需要区分哪些功能是一个给定的功能使用。 例如,UF_MODL_ask_feat_type将表明一个特点是横扫,但进一步的需要的特征的细化知道UF_MODL_ask_extrusion或所述UF_MODL_ask_sweep...功能可以用于检索参数对于给定的横扫
对于给定的SWEEP。

适应环境:内部和外部环境

参考:UF_MODL_ask_feat_name
UF_MODL_ask_feat_type

tag_t (tag_t类型)	feature_eid	    Input(输入)	                特征的TAG值
char * *	        feature_name	Output to be freed输出并释放	    特征的全名,并使用UF_free释放内存
	UF_initialize();
	//创建块
	UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
	double Corner_pt[3] = { 1.0, 1.0, 1.0 };//设置原点
	char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
	tag_t BlkTag = NULL_TAG;
	UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

	//查找特征全名sysname
	char *sysname_name = NULL;
	UF_MODL_ask_feat_sysname(BlkTag, &sysname_name);
	//打印名字
	print(sysname_name);
	//释放内存
	UF_free(sysname_name);

	UF_terminate();

8、UF_MODL_ask_feat_tolerance(查询特征的公差)

概述:获得特征的公差

适用环境:内部和外部

tag_t (tag_t类型)	    feature_obj_id	    Input(输入)	特征的TAG值
logical *	            tolerance_exists	Output(输出)	返回TRUE表示特征存在距离公差
double * (实数型指针)	tolerance	        Output(输出)	特征距离公差
	//创建块
	UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
	double Corner_pt[3] = { 1.0, 1.0, 1.0 };//设置原点
	char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
	tag_t BlkTag = NULL_TAG;
	UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

	//查找特征公差
	logical tolerance_exists;
	double tolerance = 0;
	UF_MODL_ask_feat_tolerance(BlkTag, &tolerance_exists,&tolerance);
	//打印名字
	char msg[256];
	sprintf(msg, "feature_tolerance %f", tolerance);
	print(msg);

	UF_terminate();

这里试了好几次公差都为零,个人人为公差没有问题,当时人为是建模公差等同不过最后为0,如果有知道的可以交流,一般也用不到这个函数,这里只是个人学习笔记。

9、UF_MODL_ask_feature_sign查询特征的符号(是否求布尔)

概述;获取特性的符号。输入特征的对象标识符,这个例程检索“符号”。“符号”是表示所执行布尔运算类型的数值。

适用环境:内部和外部

tag_t (tag_t类型)	feature_obj_id	Input(输入)	特征的TAG值
UF_FEATURE_SIGN *	sign	        Output(输出)	特征的符号标识

//符号表标识如下:
UF_NULLSIGN = 0, create new target solid
UF_POSITIVE = 1, add to target solid
UF_NEGATIVE = 2, subtract from target solid
UF_UNSIGNED = 3, intersect with target solid
UF_DEFORM_POSITIVE = 9, deform on the positive side of target
UF_DEFORM_NEGATIVE = 10 deform on the negative side of target

10、UF_MODL_ask_feature_boolean(查询特征的布尔)

概述:返回关于实体特征的布尔状态的信息。

适用环境:内部和外部

参考:UF_MODL_ask_feat_name
feature_name_test.c

tag_t (tag_t类型)	feature_obj_id	Input(输入)	特征的TAG值
UF_FEATURE_SIGN *	boolean_status	Output(输出)	特征的布尔状态
//特征的布尔状态
UF_NO_BOOLEAN - feature has not been booleaned.
UF_TOP_TARGET - feature is not booleaned into any other features but has at least one tool as a child.
UF_UNITE - feature has been united to a target solid.
UF_SUBTRACT - feature has been subtracted from a target solid.
UF_INTERSECT - feature has been intersected with a target solid.
UF_DEFORM_POSITIVE - feature used to deform the positive side of the target sheet.
UF_DEFORM_NEGATIVE - feature used to deform the negative side of the target sheet.

11、UF_MODL_ask_features_of_mirror_set (查询特征镜像)

概述、这个函数要求镜集内的所有特征。例程将只返回输入特征,以请求输出特性使用UF_MODL_ask_all_members_of_set()。

适用环境:内部和外部

参考:UF_MODL_ask_all_members_of_set

12、UF_MODL_ask_features_of_exp (查询特征的使用的表达式)

概述:获取使用所提供表达式的所有特性

适用环境:内部和外部

参考:UF_MODL_ask_exps_of_feature
UF_MODL_ask_exps_of_part
please refer to example

13、UF_MODL_ask_feat_type (查询特征的类型)

概述、获得特征类型

适用环境:内部和外部

参考:UF_MODL_ask_feat_name
feature_name_test.c

tag_t (tag_t类型)	feature_obj_id	Input(输入)	                特征的TAG值
char * *	        feature_type	Output to be freed 输出并释放	特征的类型,适用UF_free释放内存
    UF_initialize();
	//创建块
	UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
	double Corner_pt[3] = { 1.0, 1.0, 1.0 };//设置原点
	char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
	tag_t BlkTag = NULL_TAG;
	UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);
	//创建圆柱
	UF_FEATURE_SIGN sign = UF_NULLSIGN;//布尔方式 : 布尔 无
						   //UF_NULLSIGN    //布尔 无
						  //UF_POSITIVE    //布尔 求和
						  //UF_NEGATIVE    //布尔 求差
						  //UF_UNSIGNED    //布尔 求交
	double dPoint1[3] = { 0,0,0 };    //圆柱底面圆心
	char charH[256] = "100";      //第一次做圆柱的高度
	char charD[256] = "100";        //直径
	double dVector[3] = { 0,0,1 };   //圆柱方向
	tag_t  CylTag = NULL_TAG;  //圆柱特征标签
	UF_MODL_create_cylinder(sign, NULL_TAG, dPoint1, charH, charD, dVector, &CylTag);

	//查找特征类型
	char *feature_blocktype = NULL;
	UF_MODL_ask_feat_type(BlkTag, &feature_blocktype);
	char *feature_cyltype = NULL;
	UF_MODL_ask_feat_type(CylTag, &feature_cyltype);
	//打印名字
	print(feature_blocktype);
	print(feature_cyltype);


	UF_terminate();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/485895.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java基于微信小程序的校园订餐小程序的实现,附源码和数据库

博主介绍&#xff1a;✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不…

TypeScript类型缩小

类型缩小的概念 前面我们写了一些这样的代码&#xff1a; function padLeft(padding: number | string, input: string): string {if (typeof padding number) {return .repeat(padding) input}return padding input }没有if判断时&#xff0c;无法执行语句return ’ .re…

星云小窝项目1.0——项目介绍(一)

星云小窝项目1.0——项目介绍&#xff08;一&#xff09; 文章目录 前言1. 介绍页面2. 首页2.1. 游客模式2.2. 注册用户后 3. 星云笔记3.1. 星云笔记首页3.2. 星云笔记 个人中心3.2. 星云笔记 系统管理3.3. 星云笔记 文章展示3.3. 星云笔记 新建文章 4. 数据中心5. 交流评论6. …

Qt读取本地系统时间的几种方式

一&#xff0c;使用Windows API函数GetLocalTime&#xff08;精确到毫秒&#xff09; typedef struct _SYSTEMTIME //SYSTEMTIME结构体定义 {   WORD wYear;//年   WORD wMonth;//月   WORD wDayOfWeek;//星期&#xff0c;0为星期日&#xff0c;1为星期一&#xff0c…

深入理解Java中的Reader类

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

【JAVA】通过JAVA实现用户界面的登录

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-wyCvaz0EBNwHcwsi {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

宋仕强说金航标kinghelm萨科微slkor都是网红品牌

宋仕强说金航标kinghelm萨科微slkor都是网红品牌&#xff0c;和宋仕强先生研究的“华强北”大ip一起&#xff0c;相互支持相互驱动&#xff0c;与金航标网站&#xff08;www.kinghelm.com.cn&#xff09;、萨科微网站&#xff08;www.slkormicro.com&#xff09;组合成为宣传矩…

Excel 导入指定分隔符的 csv 文件

原文&#xff1a;https://blog.iyatt.com/?p14373 基于 Excel 2024 预览版测试 csv 文件本身是纯文本的&#xff0c;同行数据之间通过一定的分隔符打断识别为不同的列&#xff0c;常用的分隔符是英文逗号&#xff0c;使用逗号分隔符的 csv 文件直接用 Excel 打开能正常识别单…

输入网址到网页显示全过程

TCP/IP ⽹络模型 对于同⼀台设备上的进程间通信&#xff0c;有很多种⽅式&#xff0c;⽐如有管道、消息队列、共享内存、信号等⽅式&#xff0c;⽽对于不同设备上的进程间通信&#xff0c;就需要⽹络通信&#xff0c;⽽设备是多样性的&#xff0c;所以要兼容多种多样的设备&am…

封装函数实现一维数组输入、输出以及冒泡排序

1. 代码 #include <stdio.h>int InputArray(int *pa, int len) {int i 0;for (i 0; i < len; i){scanf("%d", &pa[i]);}return 0; }int OutputArray(int *pa, int len) {int i 0;for (i 0; i < len; i){printf("%-2d ", pa[i]);}putc…

中标,我们是认真的!菊风再携手吉林银行打造智能双录系统

当前&#xff0c;数字化发展步伐持续加快&#xff0c;各个金融机构纷纷按下数字化转型的加速键&#xff0c;陆续推进数字化发展战略&#xff0c;加快数字金融建设。近期&#xff0c;吉林银行面对业务快速发展的需要&#xff0c;服务效率、人力成本等挑战日益凸显&#xff0c;逐…

YOLOv5全网独家改进: 注意力机制改进 | 并行化注意力设计(PPA)模块,红外小目标暴力涨点 | 2024年3月最新成果

💡💡💡本文独家改进:红外小目标涨点利器,在多个数据集下进行验证,其中并行化 patch-aware 注意力(PPA)模块,解决目标的大小微小以及红外图像中通常具有复杂的背景的问题点 💡💡💡红外小目标实现暴力涨点,只有几个像素的小目标识别率大幅度提升 改进结构图如…

MySQL的基本操作与增删改查管理操作

一、MySQL数据库sql语句 1.1 sql 命令 database数据库table表row行column列user用户select从数据表中获取数据updata更新数据库中的数据delete从数据库中删除数据insert into 向数据表插入数据create database创建新数据库alter database修改数据库create table创建新表alter…

第八节:深入讲解SMB中的Http组件

一、概述 Http组作是SMB中的核心组件之一&#xff0c;在第七节中讲解了如何简洁的进行web程序部署和运行&#xff0c;这只是它的功能之一。在本节中&#xff0c;我们将介绍Http组件的重要属性。 二、请求头Request 1、支持方法 支持POST、GET、PUT、DELETE、OPTIONS等方法&a…

AI数字人“搅局”直播电商

现如今&#xff0c;直播带货已然成为了备受消费者欢迎的一种新的购物模式&#xff0c;人们已经愈发习惯在直播间购物了。在直播带货热度居高不下背后&#xff0c;除了低价优势之外&#xff0c;还在于直播带货所具备的实时互动、全方位展示能够为消费者带去更加真实、直观、沉浸…

Java集合框架初学者指南:List、Set与Map的实战训练

Java集合框架是Java语言的核心部分&#xff0c;它提供了丰富的类和接口&#xff0c;用来高效地管理和操作大量数据。这个强大的工具箱包括多种集合类型&#xff0c;其中最为常用的是List、Set和Map。 1.List - 有序且可重复的数据清单 概念&#xff1a; List就像一个购物清单&…

python usb与下位机 硬件通信

需求分析 上周接到一个需求 用usb和硬件连接 轮询读取usb中指定功能码的指定个数的数据并生成一个桌面程序 刚接到这个需求时 我第一时间想到的就是使用python去尝试 期间也踩了很多的坑 第一版效果如下 特此记录 环境搭建 首先第一点就是将所需要的库进行安装 这里是我这…

Springboot2 restTemplate 使用UriComponentsBuilder时编码问题

文章目录 简要说明maven依赖样例代码 简要说明 在使用springboot2的restTemplate配合UriComponentsBuilder&#xff0c;UriComponentsBuilder拿到uri字符串时有编码过程&#xff0c;而restTemplate在execute时&#xff0c;底层也是有encode编码&#xff0c;这样就到时了双重编…

基于ssm的校园驿站管理系统论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对校园快递信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差…

详解机器学习概念、算法

目录 前言 一、常见的机器学习算法 二、监督学习和非监督学习 三、常见的机器学习概念解释 四、深度学习与机器学习的区别 基于Python 和 TensorFlow 深度学习框架实现简单的多层感知机&#xff08;MLP&#xff09;神经网络的示例代码&#xff1a; 欢迎三连哦&#xff01; 前言…