当前位置: 首页 > news >正文

AgilePLM 通用自动赋值程序 安装使用说明

功能概述

首先,简单介绍一下自动赋值的意思。就是程序根据给定的条件,给某一个数据对象的某个字段自动填值。

类似功能单独定制开发写程序也能实现。通用赋值程序只是赋值规则简化到了配置文件中。后续如果赋值规则变更,只需要修改配置文件。不需要修改源代码。

通用程序还解决了一些AgilePLM的公共技术问题。例如:并发控制,更新事件的递归触发问题。

目前主要应用场景:自动合并描述,自动编号等,下面还会有详细功能介绍。

功能特性

  1. 支持给多种对象自动赋值,例如:物件,变更,供应商等。
  2. 支持给同一个对象的多个字段自动赋值,例如:编号、描述、工作流等字段。
  3. 支持同一个字段在多种事件配置下自动赋值,例如:同一个自动编码规则可以标题块更新事件,创建对象事件,另存为事件下触发执行。
  4. 支持给变更的所有受影响物件字段自动赋值(可通过状态变更事件)。
  5. 支持给不同分类对象配置不同赋值规则。也支持分类再加其他自定义条件。
  6. 支持给大文本字段配置默认值,可以配置表格或其他html元素。
  7. 支持动态列表类型字段,可以获取列表中对象的字段,并且支持多级获取。例如:`$3521.3210.1543`
  8. 支持变更受控字段,在当前待定变更中的读取值和自动赋值。
  9. 要赋值的字段支持文本,数字,单列表,对象。赋值条件支持动态列表。
  10. 支持多种途径修改xml配置文件。每个项目不同环境可以指定不同的配置文件。可以内置在程序内部也可以是程序外部,也可以通过plm的变更流程上传xml配置文件
  11. 赋值规则支持Aviator表达式引擎。支持加、减、乘、除、三目运算符等多种运算符以及内置函数,还可以自定义函数。aviator参考文档。

暂不支持的功能

  1. 不支持给多列表字段赋值。
  2. 不支持赋值之前给要赋的值做校验。可根据要求额外定制开发。
  3. 变更受控字段,以下场景不支持。
    1. 由于流程中的编辑是可以撤销的。但撤销时是不会触发更新标题块事件的。所以无法自动赋值

安装使用

  1. 前提:请将agile-support项目的jar包安装到Agile进程扩展目录中。
  2. 根据当前项目公司名称,新建新的定制px项目。建议:从老的项目或者模板上复制。
  3. 根据业务要求,将赋值规则写入到AutoSetValue.xml文件中。
  4. 启动Agile控制台,在控制台中新建事件程序,指向com.purvar.px.AutoSetValueEvent
  5. 根据业务要求,新建事件和事件订户关联事件处理程序。
  6. 登录Agile,进行业务操作,测试功能是否符合预期。

功能案例

自动编码

总体说明

自动编码的意思是:根据用户给的业务规则自动给编码字段赋值,例如,物料编码,变更编码等。

自动赋值涉及2个部分,一个是赋值条件,另一个是赋值规则表达式。

当前的数据符合赋值条件才会执行对应的赋值规则表达式。

按照部件类型区分赋值规则

业务需求

要求自动合成物件编码,根据不同的部件类型区分不同的赋值规则。

例如:

  1. 成品:固定前缀'A'+$1550字段的值
  2. 半成品:固定前缀'B'+$1550字段的值
  3. 原材料:固定前缀'C'+$1550字段的值

xml配置参考如下

<AutoSetValue class="com.purvar.px.AutoSetValueEvent"><setValues><!-- 1001是编号字段,1081是部件类型字段 --><setValue className="Item" setFieldId="1001" subClassId="1081" useName="true"><valueMaps>
<!--autoNumber函数会根据api名称,自动读取agile的自动编码下一个值 --><map key="成品" expression="'A'+$1550" /><map key="半成品" expression="'B'+$1550" /><map key="原材料" expression="'C'+$1550" /></valueMaps></setValue></setValues>
</AutoSetValue>

多个字段组合区分赋值规则

案例:部件类型+第三页的产品线(字段id:2024)组合决定赋值规则。例如:

  1. 成品产品线1,赋值规则:固定前缀A+固定产品线代号c1+序号
  2. 成品产品线2,赋值规则:固定前缀A+固定产品线代号c2+序号
  3. 半成品产品线1,赋值规则:固定前缀B+固定产品线代号c1+序号
  4. 半成品产品线2,赋值规则:固定前缀B+固定产品线代号c2+序号

这种场景需要多配置一个key的映射规则,xml配置如下

<AutoSetValue class="com.purvar.px.AutoSetValueEvent"><setValues><!-- 1001是编号字段,1081是部件类型字段 --><setValue className="Item" setFieldId="1001" subClassId="1081" useName="true"><keyMaps><!-- 将部件类型和产品线组成一个复合条件来匹配表达式 --><map value="*" expression="$1081+$2024"/></keyMaps><valueMaps><!--autoNumber函数会根据api名称,自动读取agile的自动编码下一个值 --><map key="成品产品线1" expression="'AC1'+autoNumber('n1')" /><map key="成品产品线2" expression="'AC2'+autoNumber('n1')" /><map key="半成品产品线1" expression="'BC1'+autoNumber('n1')" /><map key="半成品产品线1" expression="'BC2'+autoNumber('n1')" /></valueMaps></setValue></setValues>
</AutoSetValue>

自动读取数据库最大值生成编码

业务需求

要求对实验仪器物件对象进行自动编号,需要根据部件类型+1543字段进行区分不同的编码规则。自动读取数据库中的最大值+1,然后生成4位编码

<!-- 对实验仪器编号进行赋值 updateNewNumber="true"用于将生成的新编号放入内存中方便后续的事件读取-->
<setValue className="Item" setFieldId="1001" subClassId="1081" updateNewNumber="true" disableAgileWarning="true"><keyMaps><!--部件类型+1543字段做为组合赋值条件--><map key="YIQI"  expression="$1081+getApi(1543)"/>	</keyMaps>			<valueMaps>			<!--dbNext函数,自动根据前缀读取数据库中的最大值+1,4代表生成的编号为4位。例如:0001,0002--><map key="YIQICWJS"  expression="dbNext('CW-TZ-YF-J',4)" />	<map key="YIQICWBF"  expression="dbNext('CW-TZ-YF-J',4)" />	<map key="YIQIHWZZ"  expression="dbNext('HW-TZ-YF-J',4)" /><map key="YIQIGWBJ"  expression="dbNext('JW-TZ-YF-J',4)" /><map key="YIQIGWZD"  expression="dbNext('JW-TZ-YF-J',4)" /><map key="YIQIGWTZ"  expression="dbNext('JW-TZ-YF-J',4)" /></valueMaps>
</setValue>

只在草稿状态时合成编码

业务要求

当物料处在草稿状态时,符合指定条件才需要自动合成编码。当物料走过变更指令发布之后则不再需要合成编码。也可以理解为一旦物料同步给其他系统之后物料编码不能再改变了。

xml参考配置,

<setValue className="Item" setFieldId="1001" useName="true" subClassId="1081"><keyMaps><!-- 1539是第三页上的字段将他和生命周期形成一个组合条件 --><map key="RZ体系文档"  expression="$1539+'-'+$1084"/></keyMaps><valueMaps><!-- checkUpdateIds的意思是只有当这里面指定的字段值发生变更时才会执行自动赋值规则 --><map key="三级部门文件-草稿" expression="dbNext('R'+getApi(1540)+'I_', 3)" checkUpdateIds="1540,1539"/></valueMaps>
</setValue>

自动合成描述

业务需求

自动根据规则合成描述字段的值。需要根据物料不同的部件类型指定不同的合成规则。还要获取到制造商页签中的信息。

参考xml配置

<setValue className="Item" setFieldId="1002" useName="true" subClassId="1081" trimString=","><!-- trimString的功能:当合成描述的字段中某个字段为空时,导致首尾或者中间出现多个逗号,例如:aa,,bb,,会自动删除变成:aa,bb --><!-- getManuFunction是一个自定义函数,用于获取物料制造商页签的值 --><valueMaps><map key="Industrial Computer" expression="$1081+','+getManuFunction(1902)+','+$1575+','+$1576+','+$1577"/><map key="MB" expression="'PC,'+$1081+','+getManuFunction(1902)+','+$1575+','+$1579+','+$1576"/><map key="BP" expression="'PC,'+$1081+','+getManuFunction(1902)+','+$1575+','+$1579+','+$1576"/><map key="PDB" expression="'PC,'+$1081+','+getManuFunction(1902)+','+$1575+','+$1579+','+$1576"/><map key="PIB" expression="'PC,'+$1081+','+getManuFunction(1902)+','+$1575+','+$1579+','+$1576"/><map key="FP" expression="'PC,'+$1081+','+getManuFunction(1902)+','+$1575+','+$1579+','+$1576"/><map key="VROC Key" expression="$1081+','+getManuFunction(1902)"/><map key="replaceGroup" expression="$1577+','+$1575+','+$1576"/></valueMaps>
</setValue>

自动升级版本和生命周期

业务需求

当变更提交时需要根据给定的规则自动升级版本和指定生命周期字段。并且不同的变更类型可以指定不同的版本升级规则。

<!-- 对变更受影响物件的新版本字段进行赋值 -->
<setValue className="IRow" setFieldId="1056" subClassId="1081"><valueMaps><!-- versionNext说明:判断变更类型,读取每一行的老版本,如果老版本为空则为V01,如果不为空则解析其中的数字,然后+1,再补足2位。 --><map keyExpression="dataObjSrcType == '文档发布审批单'"  expression="versionNext($1055, 'V01', 1)" checkEmpty="true"/><map keyExpression="dataObjSrcType == '文档变更审批单'"  expression="versionNext($1055, 'V02', 1)" checkEmpty="true"/><map keyExpression="dataObjSrcType == '文档废弃审批单'"  expression="versionNext($1055, 'O02', 1)" checkEmpty="true"/><map keyExpression="dataObjSrcType == '转产申请单'"  expression="versionNext($1055, 'V02', 1)" checkEmpty="true"/>					</valueMaps>
</setValue><!-- 对变更受影响物件的生命周期字段进行赋值 -->
<setValue className="IRow" setFieldId="1057" subClassId="1081"><valueMaps><map keyExpression="dataObjSrcType == '文档发布审批单'"  expression="'生效'" checkEmpty="true"/><map keyExpression="dataObjSrcType == '文档变更审批单'"  expression="'生效'" checkEmpty="true"/><map keyExpression="dataObjSrcType == '文档废弃审批单'"  expression="'作废'" checkEmpty="true"/><map keyExpression="dataObjSrcType == '转产申请单'"  expression="'生效'" checkEmpty="true"/></valueMaps>
</setValue><setValue className="Change.IRow"><!-- 当发生状态变更事件时。要对变更受影响物件中的每一行执行自动赋值,默认只会处理变更本身 -->
</setValue>

自动给大文本字段赋值

业务需求

当变更创建时,自动给大文本字段初始化一个表格,用户可以在表格中填写内容。

<!-- 变更流程-设置大文本 -->
<setValue className="Change" setFieldId="2000025512" subClassId="1081"><keyMaps><map key="CPBG" expression="$1069"/></keyMaps><valueMaps><map key="CPBG" checkEmpty="true"><value><![CDATA[<table align="left" border="1" cellspacing="0" style="width:750px"><tbody><tr><td style="height:21px; text-align:center; width:10%"><strong>序号</strong></td><td style="text-align:center; width:45%"><strong>变更前</strong></td><td style="text-align:center; width:45%"><strong>变更</strong>后</td></tr><tr><td style="height:20px; text-align:center">&nbsp;</td><td style="text-align:center">&nbsp;</td><td style="text-align:center">&nbsp;</td></tr><tr><td style="height:20px; text-align:center">&nbsp;</td><td style="text-align:center">&nbsp;</td><td style="text-align:center">&nbsp;</td></tr><tr><td style="height:20px; text-align:center">&nbsp;</td><td style="text-align:center">&nbsp;</td><td style="text-align:center">&nbsp;</td></tr><tr><td style="height:20px; text-align:center">&nbsp;</td><td style="text-align:center">&nbsp;</td><td style="text-align:center">&nbsp;</td></tr></tbody></table>]]></value></map></valueMaps>
</setValue>

自动带出动态列表的某个字段

业务需求

产品品名为文档对象,当他的客户品名字段(动态列表型字段)选中了某个客户品名时,自动将选中值的9384字段带到12503字段上。

参考xml配置

<!-- 产品品名,属性复制客户品名 -->
<setValue className="Item" setFieldId="12503" useName="true" disable="false"  disableAgileWarning="true"><valueMaps><map key="01-产品品名" expression="$1555.9384" checkUpdateIds="1555"/></valueMaps>
</setValue>

自动设置默认工作流

业务需求

要求自动给工作流赋值,如果用户选了工作流,则不覆盖。

参考xml配置

<!--流程,对工作流赋值-->
<setValue className="Change" setFieldId="3742" subClassId="1069"><valueMaps><!-- checkEmpty="true"意思是,只有当工作流为空时才赋值。如果用户自己选了工作流则不覆盖 --><map key="WDNBFB" expression="'WF_WD_NB_FB'" checkEmpty="true"/><map key="WDNBBG" expression="'WF_ED_NB_BG'" checkEmpty="true"/><map key="WDNBFQ" expression="'WF_WD_NB_FQ'" checkEmpty="true"/><map key="WDHQFB" expression="'WF_WD_HQ_FB'" checkEmpty="true"/>	<map key="WDHQBG" expression="'WF_WD_HQ_BG'" checkEmpty="true"/><map key="WDHQFQ" expression="'WF_WD_HQ_FQ'" checkEmpty="true"/><map key="YFWLFB" expression="'WF_YFYWL_FB'" checkEmpty="true"/><map key="YFWLBG" expression="'WF_YFYWL_BG'" checkEmpty="true"/>	<map key="YFWLFQ" expression="'WF_YFYWL_FQ'" checkEmpty="true"/><map key="LCWLFB" expression="'WF_LCWL_FB'" checkEmpty="true"/><map key="LCWLBG" expression="'WF_LCWL_BG'" checkEmpty="true"/><map key="LCWLFQ" expression="'WF_LCWL_FQ'" checkEmpty="true"/>					<map key="CPBG" expression="'WF_CPBG'" checkEmpty="true"/><map key="ECR" expression="'WF_SJBG'" checkEmpty="true"/>				<map key="SY_SH" expression="'WF_SYLC'" checkEmpty="true"/><map key="SY_IVD" expression="'WF_SYLC'" checkEmpty="true"/><map key="SY_JWYX" expression="'WF_SYLC'" checkEmpty="true"/><map key="SY_YLQX" expression="'WF_SYLC'" checkEmpty="true"/><map key="SY_FJ" expression="'WF_SYLC'" checkEmpty="true"/><map key="SY_CH" expression="'WF_SYLC'" checkEmpty="true"/><map key="SY_YP" expression="'WF_SYLC'" checkEmpty="true"/><map key="SY_MSJ" expression="'WF_SYLC'" checkEmpty="true"/><map key="ZCSQ"  expression="'WF_ZCSQ'" checkEmpty="true"/><map key="CPZLWT"  expression="'WF_CPZLWT'" checkEmpty="true"/></valueMaps>
</setValue>

相关文章:

AgilePLM 通用自动赋值程序 安装使用说明

功能概述 首先&#xff0c;简单介绍一下自动赋值的意思。就是程序根据给定的条件&#xff0c;给某一个数据对象的某个字段自动填值。 类似功能单独定制开发写程序也能实现。通用赋值程序只是赋值规则简化到了配置文件中。后续如果赋值规则变更&#xff0c;只需要修改配置文件…...

小数转整数的情况

小数转整数的情况 在程序开发中&#xff0c;经常会遇到需要将小数转为整数的情况。但是在转换时需要注意几个问题&#xff0c;本篇博客将详细阐述小数转整数的注意事项。 直接赋值 在C语言中&#xff0c;将一个小数赋值给整型变量时&#xff0c;会直接舍弃小数部分。比如&am…...

05-Docker安装Mysql、Redis、Tomcat

Docker 安装 Mysql 以安装 Mysql 5.7为例&#xff1a; docker pull mysql:5.7Mysql 单机 Mysql 5.7安装 启动 Mysql 容器&#xff0c;并配置容器卷映射&#xff1a; docker run -d -p 3306:3306 \--privilegedtrue \-v /app/mysql/log:/var/log/mysql \-v /app/mysql/data:…...

Docker Overlay2占用大量磁盘空间解决

问题 最近项目的jenkins编译时报错 FATAL: Unable to produce a script filejava.io.IOException: No space left on deviceat java.io.UnixFileSystem.createFileExclusively(Native Method)at java.io.File.createTempFile(File.java:2024)at hudson.FilePath$CreateTextTem…...

2023年免费自动养站程序

什么是养站&#xff1f;SEO是与搜索引擎建立信任的过程&#xff0c;养站不仅仅是建立一个网站&#xff0c;还需要我们不断的更新和维护&#xff0c;才能使网站长时间稳定运行并获得更好的排名。今天跟大家分享如何建站以及如何养站。 一、明确TDK 在设计网站时&#xff0c;我…...

86.qt qml-多种粒子特效按钮实现

截图如下所示: 动图如下所示: 支持黑白模式: 1.实现原理 配合之前我们学习的: 82.qt qml-2D粒子系统、粒子方向、粒子项(一)_诺谦的博客-CSDN博客 83.qt qml-初步学习2D粒子影响器(二)_诺谦的博客-CSDN博客 即可实现出来。 以按钮特效3按钮为例:...

Ubuntu18.04 制作系统ISO镜像并物理机还原(Systemback)

简单记录使用Systemback工具打包Ubuntu系统得到iso镜像文件&#xff0c;并在物理机上进行还原&#xff08;安装&#xff09;的流程。测试结果发现&#xff0c;使用打包的iso文件安装得到的Ubuntu系统继承了我之前的Ubuntu系统&#xff0c;包括并不限于如下内容&#xff1a;Home…...

requestAnimationFrame 和 requestIdleCallback API

requestAnimationFrame window.requestAnimationFrame() 方法告诉浏览器您希望执行动画并请求浏览器在下一次重绘之前调用指定的函数来更新动画。该方法使用一个回调函数作为参数&#xff0c;这个回调函数会在浏览器重绘之前调用。 ⚠️ 注意&#xff1a;若您想要在下一次重绘…...

SpringBoot启动原理

背景 1> 大家都知道SpringBoot是通过main函数启动的&#xff0c;这里面跟踪代码到处都没有找到while(true)&#xff0c;为什么启动后可以一直跑&#xff1f; 2> SpringBoot默认使用tomcat作为web容器。大家也可以通过在pom文件中exclusion掉tomcat&#xff0c;denpendenc…...

区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测

区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 进阶版 基础版 基本介绍 MATLAB实现QRBiLS…...

看一看吧,面试真的卷......

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;今年面试实在是太卷了&#xff0c;不知道从何下手&#xff01; 不论是跳槽涨薪&#xff0c;还是学习提升&#xff01;先给自己定一个小目标&#xff0c;然后再朝着目标去努力就完事儿了&#xff01; 为了帮大家节约…...

Python——1

一、注释 &#xff08;1&#xff09;单行注释&#xff1a;#需要注释的内容&#xff08;#&#xff09; &#xff08;2&#xff09;多行注释&#xff1a;需要注释的内容&#xff08;三引号&#xff09; 二、变量及变量类型 1.变量 语法定义&#xff1a;变量名 变量值&#…...

bgp团体属性配置案例一

RouterA的配置 sysname RouterA interface GigabitEthernet1/0/0 ip address 192.168.0.1 255.255.255.0 interface LoopBack0 ip address 1.1.1.1 255.255.255.255 bgp 10 router-id 1.1.1.1 //Router ID&#xff0c;建议配置为LoopBack0的IP地址 peer 192.168.0.2 as-number …...

mybatis-plus配置日志实现方式

Mybatis-plus是一个基于Mybatis的强大框架&#xff0c;可以帮助开发者快速地开发高质量的数据库应用程序。Mybatis-plus提供了许多配置项&#xff0c;其中一个重要的配置项是log-impl。 log-impl配置项定义了Mybatis-plus的日志实现方式&#xff0c;有两种可选的方式&#xff…...

Cy5.5 NHS ester 氨基反应性荧光染料Cyanine5.5 -NHS

Cy5.5 NHS ester是一种常用的荧光探针&#xff0c;可用于细胞或组织的荧光标记&#xff0c;也可用于蛋白质或核酸的标记。Cy5.5 NHS ester的荧光峰位于近红外区域&#xff0c;波长为675nm&#xff0c;具有较强的荧光强度和较长的荧光寿命&#xff0c;适合于生物分子在体内或组织…...

深度思考:在 AI 时代,你会被放大一千倍的能力是什么?

Datawhale干货 作者&#xff1a;艾芙&#xff0c;复旦大学&#xff0c;百姓AI教育负责人 前言 大家晚上好&#xff0c;我是艾芙&#xff0c;百姓 AI 的 AI 教育负责人。 先做一下自我介绍&#xff0c;我是一个在技术圈和教育圈反复横跳的斜杠中年了。大约在 5 年前&#xff0c…...

蚂蚁实时低代码研发和流批一体的应用实践

摘要&#xff1a;本文整理自蚂蚁实时数仓架构师马年圣&#xff0c;在 Flink Forward Asia 2022 流批一体专场的分享。本篇内容主要分为四个部分&#xff1a; 实时应用场景与研发体系低代码研发流批一体规划展望 点击查看原文视频 & 演讲PPT 一、实时应用场景与研发体系 蚂蚁…...

5 创建映射

5 映射 上边章节安装了ik分词器&#xff0c;如果在索引和搜索时去使用ik分词器呢&#xff1f;如何指定其它类型的field&#xff0c;比如日期类型、数 值类型等。 本章节学习各种映射类型及映射维护方法。 5.1 映射维护方法 1、查询所有索引的映射&#xff1a; GET&#xf…...

windows注册表参数(%1,%2,%v) windows注册表是不区分大小写的.

windows注册表是不区分大小写的. 参数 含义 %1 文件路径 %2 系统默认的打印机 %3 文件扇区 %4 端口 %D 文件路径 %L 文件长路径 %V 文件路径 %W 当前文件的父目录的路径 参考:https://blog.csdn.net/meng_suiga/article/details/79485855 ————…...

基于SpringBoot的大学生租房系统

背景 大学生租房系统设计的目的是建立一个高效的平台&#xff0c;采用简洁高效的Java语言与Mysql数据库等技术&#xff0c;设计和开发了本大学生租房系统设计。该系统主要实现了用户和房主通过系统注册用户&#xff0c;登录系统后能够编辑自己的个人信息、查看首页&#xff0c…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...

C# winform教程(二)----checkbox

一、作用 提供一个用户选择或者不选的状态&#xff0c;这是一个可以多选的控件。 二、属性 其实功能大差不差&#xff0c;除了特殊的几个外&#xff0c;与button基本相同&#xff0c;所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇

根据 QYResearch 发布的市场报告显示&#xff0c;全球市场规模预计在 2031 年达到 9848 万美元&#xff0c;2025 - 2031 年期间年复合增长率&#xff08;CAGR&#xff09;为 3.7%。在竞争格局上&#xff0c;市场集中度较高&#xff0c;2024 年全球前十强厂商占据约 74.0% 的市场…...

向量几何的二元性:叉乘模长与内积投影的深层联系

在数学与物理的空间世界中&#xff0c;向量运算构成了理解几何结构的基石。叉乘&#xff08;外积&#xff09;与点积&#xff08;内积&#xff09;作为向量代数的两大支柱&#xff0c;表面上呈现出截然不同的几何意义与代数形式&#xff0c;却在深层次上揭示了向量间相互作用的…...

Android屏幕刷新率与FPS(Frames Per Second) 120hz

Android屏幕刷新率与FPS(Frames Per Second) 120hz 屏幕刷新率是屏幕每秒钟刷新显示内容的次数&#xff0c;单位是赫兹&#xff08;Hz&#xff09;。 60Hz 屏幕&#xff1a;每秒刷新 60 次&#xff0c;每次刷新间隔约 16.67ms 90Hz 屏幕&#xff1a;每秒刷新 90 次&#xff0c;…...