CATIA二次开发VBA入门(4)——进程外开发环境搭建,vb.net在Visual Studio中开发,创建圆柱曲面的宏录制到二次开发案例
目录
- 引出
- vb.net和vb6.0
- 进程外开发环境搭建
- vb.net开发环境搭建
- 《CATIA二次开发技术基础》模板
- 添加宏库引用
- vs开发环境初步
- vs中的立即窗口
- 对象浏览器
- 建立模板
- 案例:创建一堆圆柱曲面
- 第一步:录制宏
- 第二步:代码精简
- 第三步:for循环改造
- 第四步:人机交互改造
- 窗口模态设置
- 导出窗口fm
- 第五步:搭建vs的开发环境
- 窗口布局设置
- 第六步:改造录制的宏
- 第七步:进行测试
- 报错:关于非窗体转换成窗体报错Model1中找不到sub main
- 总结
- 认识CATIA二次开发
- 刘瑞欣 vb程序设计教程
- Excel中的vba开发
- catia中的vba开发
- 宏的录制、回放和编辑
- 宏代码精简
- 画圆柱阵列
- 宏Macro文件的3种类型
- 宏的保存:文件夹,项目,catia文件
- 宏加入到工具条中
- 插曲:工具条的恢复
- 发生肾么事了??
- 鼠标中键旋转不了
- 解决:特征树不显示参数关系
- 我的窗口去哪了?
- 插曲:草图工具的调出
- 插曲:颜色工具栏显示
- 弹窗警告
- 警告:创建约束是临时的
- 操作技巧
- 技巧:快速隐藏不相关元素
- 异形弹簧
- 新建几何体
- 草图编辑,画一条样条线
- 进行扫掠,圆心和半径
- 画出曲面上的螺旋线
- 再次选择扫掠,圆心和半径
引出
最近在研究catia二次开发,发现网上的资料非常有限,尤其是博客文件比较少,这个系列文章是本人的学习笔记,分享出来,只为抛砖引玉,希望对你有帮助。
CATIA二次开发VBA入门(3)——进程外开发环境搭建,vb.net在Visual Studio中开发,创建圆柱曲面的宏录制到二次开发案例
vb.net和vb6.0
VB.NET一种简单,现代,面向对象计算机编程语言,有微软开发,VB.NET是一种基于.NET Framework的面向对象编程语言,它是Visual Basic语言的继承者,但是与早期版本的Visual Basic有很大的不同。VB.NET是一种强类型语言,支持类、接口委托、异常处理、LINQ等现代编程特性,可以开发Windows应用程序、Web应用程序、服务和组价。它还支持多线程和异步编程,并且可以与其他的.NET语言(如C#)进行交互。VB.NET是一种易学易用的语言,适合初学者和专业开发人员
特点:
1.面向对象:VB.NET 是一种完全面向对象的语言,支持封装、继承和多态等面向对象的特性。
2.强类型:VB.NET 是一种强类型语言,需要在编译时进行类型检查,避免在运行时出现类型错误。
3.安全性:VB.NET 具有良好的安全性,支持代码访问权限控制、类型安全、内存管理等功能,可以有效地防止程序运行时出现安全问题。
4.可扩展性:VB.NET 可以轻松地扩展和定制,可以使用 COM 组件、.NET 组件和自定义组件等方式扩展应用程序的功能。
5.多平台支持:VB.NET 可以运行在多个操作系统上,包括 Windows、Linux 和 macOS 等。
6.集成开发环境:VB.NET 可以与 Visual Studio 集成使用,提供了丰富的开发工具和调试功能,可以提高开发效率和代码质量。
7.数据库支持:VB.NET 提供了对多种数据库的支持,包括 ADO.NET、OLE DB 和 ODBC 等,可以方便地访问和操作数据库
VB.NET和VB6.两种不同的Visual Basic版本,它们在语言、架构、开发环境、应用场景等方面都有很大的差异。
不同之处 | ||||||
---|---|---|---|---|---|---|
类型 | 语言 | 架构 | 开发环境 | 应用场景 | 编译器 | 文件格式 |
VB.NET | 完全面向对象语言支持更多语言:泛型,LINNQ,匿名来类型 | .NET Framework支持更多.NET Framework特性:Windows Forms,WPF,ASP.NET | Visual Studio | 构建大型的企业级应用用程序 | .NET | VB或VB.ET |
VB6.0 | 基于事件语言 | COM | 集成开发环境(IDE) | 小型的应用程序和系统内的维护和升级 | Microsoft Vissual Basic 6.0 | .frm、.cls.bas等 |
进程外开发环境搭建
vb.net开发环境搭建
- 新建模块
创建了窗口和模块
《CATIA二次开发技术基础》模板
Imports INFITFModule Module1Public CATIA As INFITF.ApplicationPublic Sub Main()On Error Resume Next '有错误的话会忽略,继续执行下一句 ' 如果打开catia,就获取当前的这个CATIA = GetObject(, "CATIA.Application")If Err.Number <> 0 Then' 如果没有打开catia,则打开新的catiaCATIA = CreateObject("CATIA.Application")CATIA.Visible = TrueEnd IfOn Error GoTo 0End SubEnd Module
添加宏库引用
catia自带的vba开发环境已经引用了很多库
需要在vb中引入import
vs开发环境初步
vs中的立即窗口
Imports MECMODModule Module1Public CATIA As INFITF.ApplicationPublic oPartDoc As PartDocumentSub Main()On Error Resume Next '有错误的话会忽略,继续执行下一句 ' 如果打开catia,就获取当前的这个CATIA = GetObject(, "CATIA.Application")If Err.Number <> 0 Then' 如果没有打开catia,则打开新的catiaCATIA = CreateObject("CATIA.Application")CATIA.Visible = TrueEnd IfOn Error GoTo 0oPartDoc = CATIA.ActiveDocumentMsgBox(oPartDoc.Name)End SubEnd Module
对象浏览器
Imports MECMODModule Module1Public CATIA As INFITF.ApplicationPublic oPartDoc As PartDocumentPublic oPart As PartPublic oBodies As BodiesPublic oBody As BodySub Main()On Error Resume Next '有错误的话会忽略,继续执行下一句 ' 如果打开catia,就获取当前的这个CATIA = GetObject(, "CATIA.Application")If Err.Number <> 0 Then' 如果没有打开catia,则打开新的catiaCATIA = CreateObject("CATIA.Application")CATIA.Visible = TrueEnd IfOn Error GoTo 0oPartDoc = CATIA.ActiveDocument'MsgBox(oPartDoc.Name)oPart = oPartDoc.PartoBodies = oPart.BodiesoBody = oBodies.Item(1)MsgBox(oBody.Name)End SubEnd Module
建立模板
可以把设置好库函数的引用的工程文件,作为一个标准的模板,后面直接复制这个标准模板,然后在这上面开发,就不需要每次都要创建各种引用了。
案例:创建一堆圆柱曲面
先创建一个宏库,用于保存接下来要录制的宏程序
第一步:录制宏
然后,工具,宏,启动录制,新建一个part,草图编辑,然后拉升,获得一个圆柱
编辑录制的宏
Sub CATMain()Dim documents1 As Documents
Set documents1 = CATIA.DocumentsDim partDocument1 As PartDocument
Set partDocument1 = documents1.Add("Part")Dim part1 As Part
Set part1 = partDocument1.PartDim bodies1 As Bodies
Set bodies1 = part1.BodiesDim body1 As Body
Set body1 = bodies1.Item("零件几何体")Dim sketches1 As Sketches
Set sketches1 = body1.SketchesDim originElements1 As OriginElements
Set originElements1 = part1.OriginElementsDim reference1 As Reference
Set reference1 = originElements1.PlaneXYDim sketch1 As Sketch
Set sketch1 = sketches1.Add(reference1)Dim arrayOfVariantOfDouble1(8)
arrayOfVariantOfDouble1(0) = 0#
arrayOfVariantOfDouble1(1) = 0#
arrayOfVariantOfDouble1(2) = 0#
arrayOfVariantOfDouble1(3) = 1#
arrayOfVariantOfDouble1(4) = 0#
arrayOfVariantOfDouble1(5) = 0#
arrayOfVariantOfDouble1(6) = 0#
arrayOfVariantOfDouble1(7) = 1#
arrayOfVariantOfDouble1(8) = 0#
Set sketch1Variant = sketch1
sketch1Variant.SetAbsoluteAxisData arrayOfVariantOfDouble1part1.InWorkObject = sketch1Dim factory2D1 As Factory2D
Set factory2D1 = sketch1.OpenEdition()Dim geometricElements1 As GeometricElements
Set geometricElements1 = sketch1.GeometricElementsDim axis2D1 As Axis2D
Set axis2D1 = geometricElements1.Item("绝对轴")Dim line2D1 As Line2D
Set line2D1 = axis2D1.GetItem("横向")line2D1.ReportName = 1Dim line2D2 As Line2D
Set line2D2 = axis2D1.GetItem("纵向")line2D2.ReportName = 2Dim circle2D1 As Circle2D
Set circle2D1 = factory2D1.CreateClosedCircle(0#, 0#, 25#)circle2D1.ReportName = 3Dim constraints1 As Constraints
Set constraints1 = sketch1.ConstraintsDim reference2 As Reference
Set reference2 = part1.CreateReferenceFromObject(circle2D1)Dim constraint1 As Constraint
Set constraint1 = constraints1.AddMonoEltCst(catCstTypeRadius, reference2)constraint1.Mode = catCstModeDrivingDimensionDim length1 As Length
Set length1 = constraint1.Dimensionlength1.Value = 25#sketch1.CloseEditionpart1.InWorkObject = sketch1part1.UpdateObject sketch1Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = part1.HybridShapeFactoryDim hybridShapeDirection1 As HybridShapeDirection
Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(0#, 0#, 0#)Dim reference3 As Reference
Set reference3 = part1.CreateReferenceFromObject(sketch1)Dim hybridShapeExtrude1 As HybridShapeExtrude
Set hybridShapeExtrude1 = hybridShapeFactory1.AddNewExtrude(reference3, 20#, 0#, hybridShapeDirection1)hybridShapeExtrude1.SymmetricalExtension = 0body1.InsertHybridShape hybridShapeExtrude1part1.InWorkObject = hybridShapeExtrude1part1.UpdateEnd Sub
第二步:代码精简
代码精简
Sub CATMain()Set documents1 = CATIA.Documents
Set partDocument1 = documents1.Add("Part")
Set part1 = partDocument1.Part
Set bodies1 = part1.Bodies
Set body1 = bodies1.Item("零件几何体")
Set sketches1 = body1.Sketches
Set originElements1 = part1.OriginElements
Set reference1 = originElements1.PlaneXY
Set sketch1 = sketches1.Add(reference1)Set factory2D1 = sketch1.OpenEdition()
Set circle2D1 = factory2D1.CreateClosedCircle(0#, 0#, 5#)
Set constraints1 = sketch1.Constraints
Set reference2 = part1.CreateReferenceFromObject(circle2D1)
Set constraint1 = constraints1.AddMonoEltCst(catCstTypeRadius, reference2)Set length1 = constraint1.Dimension
length1.Value = 5#
sketch1.CloseEdition
part1.InWorkObject = sketch1
part1.UpdateSet hybridShapeFactory1 = part1.HybridShapeFactory
Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(0#, 0#, 0#)
Set reference3 = part1.CreateReferenceFromObject(sketch1)
Set hybridShapeExtrude1 = hybridShapeFactory1.AddNewExtrude(reference3, 20#, 0#, hybridShapeDirection1)
'hybridShapeExtrude1.SymmetricalExtension = 0body1.InsertHybridShape hybridShapeExtrude1
part1.InWorkObject = hybridShapeExtrude1 '需要加上,不然不会自动更新
part1.UpdateEnd Sub
第三步:for循环改造
for循环改造
Sub CATMain()Set documents1 = CATIA.Documents
Set partDocument1 = documents1.Add("Part")
Set part1 = partDocument1.Part
Set bodies1 = part1.Bodies
Set body1 = bodies1.Item("零件几何体")X = 0
For i = 1 To 5Set sketches1 = body1.Sketches
Set originElements1 = part1.OriginElements
Set reference1 = originElements1.PlaneXY
Set sketch1 = sketches1.Add(reference1)
Set factory2D1 = sketch1.OpenEdition()Set circle2D1 = factory2D1.CreateClosedCircle(X, 0#, 5#)Set constraints1 = sketch1.Constraints
Set reference2 = part1.CreateReferenceFromObject(circle2D1)
Set constraint1 = constraints1.AddMonoEltCst(catCstTypeRadius, reference2)Set length1 = constraint1.Dimension
length1.Value = 5#
sketch1.CloseEdition
part1.InWorkObject = sketch1
part1.UpdateSet hybridShapeFactory1 = part1.HybridShapeFactory
Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(0#, 0#, 0#)
Set reference3 = part1.CreateReferenceFromObject(sketch1)
Set hybridShapeExtrude1 = hybridShapeFactory1.AddNewExtrude(reference3, 20#, 0#, hybridShapeDirection1)
'hybridShapeExtrude1.SymmetricalExtension = 0body1.InsertHybridShape hybridShapeExtrude1
part1.InWorkObject = hybridShapeExtrude1 '需要加上,不然不会自动更新
part1.UpdateX = X + 20
Next
part1.UpdateEnd Sub
第四步:人机交互改造
顶部对齐
Private Sub CommandButton1_Click()Set documents1 = CATIA.Documents
Set partDocument1 = documents1.Add("Part")
Set part1 = partDocument1.Part
Set bodies1 = part1.Bodies
Set body1 = bodies1.Item("零件几何体")X = 0
For i = 1 To TextBox1.ValueSet sketches1 = body1.Sketches
Set originElements1 = part1.OriginElements
Set reference1 = originElements1.PlaneXY
Set sketch1 = sketches1.Add(reference1)
Set factory2D1 = sketch1.OpenEdition()Set circle2D1 = factory2D1.CreateClosedCircle(X, 0#, 5#)Set constraints1 = sketch1.Constraints
Set reference2 = part1.CreateReferenceFromObject(circle2D1)
Set constraint1 = constraints1.AddMonoEltCst(catCstTypeRadius, reference2)Set length1 = constraint1.Dimension
length1.Value = 5#
sketch1.CloseEdition
part1.InWorkObject = sketch1
part1.UpdateSet hybridShapeFactory1 = part1.HybridShapeFactory
Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(0#, 0#, 0#)
Set reference3 = part1.CreateReferenceFromObject(sketch1)
Set hybridShapeExtrude1 = hybridShapeFactory1.AddNewExtrude(reference3, 20#, 0#, hybridShapeDirection1)
'hybridShapeExtrude1.SymmetricalExtension = 0body1.InsertHybridShape hybridShapeExtrude1
part1.InWorkObject = hybridShapeExtrude1 '需要加上,不然不会自动更新
part1.UpdateX = X + TextBox2.Value
Next
part1.UpdateEnd Sub
窗口模态设置
导出窗口fm
这里本来想导出vba中创建的窗口,然后在vb.net中导入,直接使用,但是两个版本的vb差别较大,并没有成功
添加现有项失败,可能是版本的问题,毕竟vb是很老的,我这里用的是vs
第五步:搭建vs的开发环境
Imports MECMOD
Imports PARTITF
Imports HybridShapeTypeLibModule Module1Public CATIA As INFITF.ApplicationPublic oPartDoc As PartDocumentPublic oPart As PartPublic oBodies As BodiesPublic oBody As BodyPublic oHBodies As HybridBodiesPublic oHBody As HybridBodyPublic oSF As ShapeFactoryPublic oHSF As HybridShapeFactory' ***********************************************************************' 目的: 初始化CATIA产品文档,并初始化必要的基本变量'' 输入: bNewProduct: 初始化时是否新建产品文件' 可选,默认新建文件' strProduct: 初始化时是否打开已经存在的产品文件' 可选,默认新建文件' ***********************************************************************Sub InitCATIAPart(Optional ByVal bNewPart As Boolean = True,Optional ByVal strPart As String = "")On Error Resume Next '有错误的话会忽略,继续执行下一句 ' 如果打开catia,就获取当前的这个CATIA = GetObject(, "CATIA.Application")If Err.Number <> 0 Then' 如果没有打开catia,则打开新的catiaCATIA = CreateObject("CATIA.Application")CATIA.Visible = TrueEnd IfIf bNewPart ThenoPartDoc = CATIA.Documents.Add("Part")ElseIf strPart = "" ThenoPartDoc = CATIA.ActiveDocumentIf oPartDoc Is Nothing ThenErr.Clear()oPartDoc = CATIA.Documents.Add("Part")End IfElseIf Dir(strPart) <> "" ThenoPartDoc = CATIA.Documents.Open(strPart)ElseMsgBox("指定的文件不存在!")EndEnd IfEnd IfEnd IfOn Error GoTo 0oPartDoc = CATIA.ActiveDocumentoPart = oPartDoc.PartoBodies = oPart.BodiesoBody = oBodies.Item(1)oHBodies = oPart.HybridBodiesoHBody = oHBodies.Add()oSF = oPart.ShapeFactoryoHSF = oPart.HybridShapeFactoryEnd Sub
End Module
窗口布局设置
第六步:改造录制的宏
Imports MECMOD
Imports HybridShapeTypeLib
Imports INFITFPublic Class Form1Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickInitCATIAPart(True) 'true表示新建一个partDim XDis As Integer = 0For iCount = 1 To Val(TextBox1.Text)Dim sketches1 As Sketches = oBody.SketchesDim originElements1 As OriginElements = oPart.OriginElementsDim reference1 As Reference = originElements1.PlaneXYDim sketch1 As Sketch = sketches1.Add(reference1)Dim factory2D1 As Factory2D = sketch1.OpenEdition()Dim circle2D1 As Circle2D = factory2D1.CreateClosedCircle(XDis, 0#, 5.0#)Dim constraints1 As Constraints = sketch1.ConstraintsDim reference2 As Reference = oPart.CreateReferenceFromObject(circle2D1)Dim constraint1 = constraints1.AddMonoEltCst(CatConstraintType.catCstTypeRadius, reference2)Dim length1 = constraint1.Dimensionlength1.Value = 5.0#sketch1.CloseEdition()oPart.InWorkObject = sketch1oPart.Update()Dim hybridShapeDirection1 As HybridShapeDirection = oHSF.AddNewDirectionByCoord(0#, 0#, 0#)Dim reference3 As Reference = oPart.CreateReferenceFromObject(sketch1)Dim hybridShapeExtrude1 = oHSF.AddNewExtrude(reference3, 20.0#, 0#, hybridShapeDirection1)'hybridShapeExtrude1.SymmetricalExtension = 0oBody.InsertHybridShape(hybridShapeExtrude1)oPart.InWorkObject = hybridShapeExtrude1 '需要加上,不然不会自动更新oPart.Update()XDis = XDis + Val(TextBox2.Text)NextoPart.Update()End Sub
End Class
第七步:进行测试
报错:关于非窗体转换成窗体报错Model1中找不到sub main
启动成功
总结
CATIA二次开发VBA入门(3)——进程外开发环境搭建,vb.net在Visual Studio中开发,创建圆柱曲面的宏录制到二次开发案例
其他内容
认识CATIA二次开发
V5 AUTOMATION开发
刘瑞欣 vb程序设计教程
Excel中的vba开发
catia中的vba开发
宏的录制、回放和编辑
宏代码精简
录制到项目中,录制成一个模块
catia的vba开发环境设置,取消dim的限值,这样就可以不用定义变量,便于简化录制的宏程序
Sub CATMain()Set partDocument2 = CATIA.Documents.Add("Part")Set part2 = partDocument2.PartSet body1 = part2.Bodies.Item("零件几何体")Set sketches1 = body1.SketchesSet originElements1 = part2.OriginElementsSet reference1 = originElements1.PlaneYZSet sketch1 = sketches1.Add(reference1)part2.InWorkObject = sketch1Set factory2D1 = sketch1.OpenEdition()Set circle2D1 = factory2D1.CreateClosedCircle(0#, 0#, 20)sketch1.CloseEditionpart2.InWorkObject = sketch1Set hybridShapeFactory1 = part2.HybridShapeFactorySet hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(0#, 0#, 0#)Set reference2 = part2.CreateReferenceFromObject(sketch1)Set hybridShapeExtrude1 = hybridShapeFactory1.AddNewExtrude(reference2, 60#, 60#, hybridShapeDirection1)hybridShapeExtrude1.SymmetricalExtension = 0body1.InsertHybridShape hybridShapeExtrude1part2.InWorkObject = hybridShapeExtrude1part2.UpdateEnd Sub
画圆柱阵列
Sub CATMain()Set partDocument2 = CATIA.Documents.Add("Part")Set part2 = partDocument2.PartSet body1 = part2.Bodies.Item("零件几何体")Set sketches1 = body1.SketchesSet originElements1 = part2.OriginElementsSet reference1 = originElements1.PlaneYZSet sketch1 = sketches1.Add(reference1)part2.InWorkObject = sketch1Set factory2D1 = sketch1.OpenEdition()
'--------------------------------------------For i = 0 To 99Set circle2D1 = factory2D1.CreateClosedCircle(50 * i, 0#, 20)Next'--------------------------------------------
sketch1.CloseEditionpart2.InWorkObject = sketch1Set hybridShapeFactory1 = part2.HybridShapeFactorySet hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(0#, 0#, 0#)Set reference2 = part2.CreateReferenceFromObject(sketch1)Set hybridShapeExtrude1 = hybridShapeFactory1.AddNewExtrude(reference2, 60#, 60#, hybridShapeDirection1)hybridShapeExtrude1.SymmetricalExtension = 0body1.InsertHybridShape hybridShapeExtrude1part2.InWorkObject = hybridShapeExtrude1part2.UpdateEnd Sub
每次画完都自动更新,这样能实时看到caita的变化
宏Macro文件的3种类型
宏的保存:文件夹,项目,catia文件
保存到文件中的两种后缀格式,catiaScript和vbScript,即catia脚本和vb脚本
catvba模式的导出
宏的默认编辑器设置
宏加入到工具条中
选择catiavba项目作为当前的宏库
工具,自定义选项卡
可以设置图标
按住,拖到工具条中
方式一:工具条中,点击图标运行,显示弹窗
方式二:作为catia脚本,直接双击运行
插曲:工具条的恢复
发生肾么事了??
鼠标中键旋转不了
解决:特征树不显示参数关系
我的窗口去哪了?
插曲:草图工具的调出
插曲:颜色工具栏显示
如果没有看到能更改颜色的工具栏,则点击如下
弹窗警告
警告:创建约束是临时的
操作技巧
技巧:快速隐藏不相关元素
快速隐藏不相关的元素
异形弹簧
新建几何体
草图编辑,画一条样条线
进行扫掠,圆心和半径
画出曲面上的螺旋线
定义直线,选择曲线的角度/法线
在曲线上创建点
支持面选择扫掠面,角度7度,终点设置大一点,选中支持面上的几何图形
再次选择扫掠,圆心和半径
双击修改,调整一下样条曲线
相关文章:

CATIA二次开发VBA入门(4)——进程外开发环境搭建,vb.net在Visual Studio中开发,创建圆柱曲面的宏录制到二次开发案例
目录 引出vb.net和vb6.0 进程外开发环境搭建vb.net开发环境搭建《CATIA二次开发技术基础》模板 添加宏库引用 vs开发环境初步vs中的立即窗口对象浏览器 建立模板案例:创建一堆圆柱曲面第一步:录制宏第二步:代码精简第三步:for循环…...

c++字符串相关接口
c字符串相关接口 1.str2wstr(str转换wstr)2.wstr2str(str转换wstr)3.Utf8ToAsi(Utf8转换ANSI)4.AsiToUtf8(ANSI转换Utf8)5.stringformatA/stringformatW(按照指定的格式格式化字符串)6.GetStringBetween(获取cStart cEnd之间的字符串)7.Char2Int(char转int)8.Str2Bin(字符串转换…...

Maven打包错误:无效的源发行版:17
1. 报错问题 在用maven进行打包时(clean & install),报如下错误: 一开始让我很摸不着头脑,我确定我的pom.xml,还有IDEA中的Project Settings是正确的。 2. 排查 尽管确定,但还是一个个排…...

【环境栏Composer】Composer常见问题(持续更新)
1、执行composer install提示当前目录中没有 composer.lock 文件时 No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information. Composer 在执行 install 命令时会…...

塑造更智慧的AI:策略与路径探索
提升数据质量: 数据清洗:去除数据中的异常值、缺失值、噪声等干扰因素,确保数据的准确性和一致性。数据标注:为数据集提供准确的标签,以便进行有监督学习。标注的质量直接影响模型的性能。数据增强:通过图像…...

软设之快速排序
快速排序是冒泡排序的改进算法 它采用的是分治法,基本思想是把原问题分解为若干规模更小但结构与原问题相似的子问题,通过递归解决这些子问题,然后将这些子问题的解组合成原问题的解。 它的步骤是 1.在待排序的n个记录中任取一个记录&…...

从零学算法2965
2965. 找出缺失和重复的数字 给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n2] 范围内。除了 a 出现 两次,b 缺失 之外,每个整数都 恰好出现一次 。 任务是找出重复的数字a 和缺失的数字 b 。 返回一个…...

【Mac版】Java生成二维码
软件版本 IntelliJ IDEA:2023.2 JDK:17 Tomcat:10.1.11 Maven:3.9.3 技术栈 servlet谷歌的:zxing 生成普通的黑白二维码在二维码中间添加一个小图标 github开源项目:qrcode qrcode开源项目的内部是基于z…...

ROS2自定义服务接口
ROS2自定义服务接口 在src/village_interface 下构建srv文件夹 src/village_interface/srv 下新建一个BorrowMoney.srv 遵循大小写编程规范 # 客户端请求 string name uint32 money # 中间这三个横杠很重要 不能删掉 --- # 服务端响应 bool success uint32 money接口编译 修改…...

linux /www/server/cron内log文件占用空间过大,/www/server/cron是什么内容,/www/server/cron是否可以删除
linux服务器长期使用宝塔自带计划任务,计划任务执行记录占用服务器空间过大,导致服务器根目录爆满,需要长期排查并删除 /www/server/cron 占用空间过大问题处理 /www/server/cron是什么内容?/www/server/cron是否可以删除…...

C++青少年简明教程:break语句、continue语句
C青少年简明教程:break语句、continue语句 break语句 只能用在switch语句和循环语句(for循环、while循环和do-while循环)中。作用:跳出switch语句或提前终止循环。 break语句的基本语法如下: break; break语句的示例…...

MySQL实战行转列(或称为PIVOT)实战sales的表记录了不同产品在不同月份的销售情况,进行输出
有一个sales的表,它记录了不同产品在不同月份的销售情况: productJanuaryFebruaryMarchProduct AJanuary10Product AFebruary20Product BJanuary5Product BFebruary15Product CJanuary8Product CFebruary12 客户需求展示为如下的样子: pro…...

牛客NC164 最长上升子序列(二)【困难 贪心+二分 Java/Go/PHP/C++】
题目 题目链接: https://www.nowcoder.com/practice/4af96fa010c44638a7e112abf65f7237 思路 贪心二分 所谓贪心,就是往死里贪,所以对于最大上升子序列,结尾元素越小,越有利于后面接上其他的数,也就可能变…...

电子烟开发【恒压、恒有效算法】
恒压算法 pwm是通过软件模拟的 pwm满值运行是250全占空比 #define D_TARGET_AVERAGE_VOLTAGE 3500 //R_ADC1_Vout :发热丝两端AD值 //R_ADC_FVR :电池电压AD值 //FVR_VOLTAGE :电池AD参考电压 满电值AD //R_Smk1Duty :最后…...

基于Open3D的点云处理22-非阻塞可视化/动态可视化
官网测试用例:examples/python/visualization/non_blocking_visualization.py 非阻塞可视化,即实时更新点云数据; 如下,动态可视化ICP的匹配过程: import open3d as o3d import numpy as npif __name__ == "__main__":o3d.utility.set_verbosity_level(o3d.ut…...

C++面试题其一
C和C的区别 C和C都是广泛使用的编程语言,但它们有显著的区别: 语言范式: C:是一种过程化编程语言,强调过程和函数的使用。C:是一种多范式编程语言,支持面向对象编程、泛型编程和过程化编程。 …...

CentOS7某天的samba服务搭建操作记录(还没成功)
#CentOS7 yum软件仓库阿里云 samba服务器配置失败 sensors成功了 (花了200元组装H61测试机,75元的主板只有一块能用,垃圾板但又不完全能用) 2024.5月的某天记录如下: https://blog.csdn.net/dszgf5717/article/details/53732182 …...

Qt Demo:基于TCP协议的视频传输Demo
目录 1.设计思路 2.Pro文件配置 3.头文件引入 4.界面设计 5.初始化设备函数 6.发起视频链接函数 7.初始化定时器模块函数 8.TCP链接模块函数 9.处理接收的数据线程函数 10.实现功能展示 设计思路 基于TCP协议的视频传输Demo,设计要实现的功能主要是TCP传输还有视频&…...

内存管理【C++】
内存分布 C中的内存区域主要有以下5种 栈(堆栈):存放非静态局部变量/函数参数/函数返回值等等,栈是向下增长的【地址越高越先被使用】。栈区内存的开辟和销毁由系统自动执行 堆:用于程序运行时动态内存分配ÿ…...

D3D 顶点格式学习
之前D3D画三角形的代码中有这一句, device.VertexFormat CustomVertex.TransformedColored.Format; 这是设置顶点格式; 画出的三角形如下, 顶点格式是描述一个三维模型的顶点信息的格式;可以包含以下内容, 位置…...

gmssl vs2010编译
1、虚拟机win10 x64,离线安装vs2010和2010sp1补丁; 2、安装ActivePerl_v5.28.1.0000和nasm-2.16.03-installer-x64均是默认完整安装; nasm官网下载: Index of /pub/nasm/releasebuilds/2.16.03/win64https://www.nasm.us/pub/nas…...

容器化部署gitlab、jenkins,jenkins应用示例
一、容器化部署docker和docker conpose安装 Docker&Docker-compose的安装及部署_docker 20 使用什么版本docker-compose-CSDN博客 1.docker 安装脚本 cat >01_docker.sh<<EOF #!/bin/bash yum remove docker \docker-client \docker-client-latest \docker-co…...

基于STM32的轻量级Web服务器设计
文章目录 一、前言1.1 开发背景1.2 实现的功能1.3 硬件模块组成1.4 ENC28J60网卡介绍1.5 UIP协议栈【1】目标与特点【2】核心组件【3】应用与优势 1.6 添加UIP协议栈实现创建WEB服务器步骤1.7 ENC28J60添加UIP协议栈实现创建WEB客户端1.8 ENC28J60移植UIP协议并编写服务器测试示…...

用r语言处理 Excel数据当中的缺失值方法
以下是使用 R 编程语言处理 Excel 缺失数据的一些常见方法示例代码:(无需循环) 读取包含缺失数据的 Excel 文件 data <- read.csv(“your_file.csv”) 查看数据中是否有缺失值 sum(is.na(data)) 用平均值填充缺失值 data c o l u m …...

AWS 高防和阿里云高防深度对比
随着网络攻击的不断增加,企业对于网络安全的需求也越来越高。在这种情况下,高防护服务成为了企业网络安全的重要组成部分。AWS和阿里云作为全球领先的云计算服务提供商,都提供了高防护服务,但它们之间存在着一些差异。我们九河云一…...

ctfshow web 月饼杯II
web签到 <?php //Author:H3h3QAQ include "flag.php"; highlight_file(__FILE__); error_reporting(0); if (isset($_GET["YBB"])) {if (hash("md5", $_GET["YBB"]) $_GET["YBB"]) {echo "小伙子不错嘛ÿ…...

「前端+鸿蒙」核心技术HTML5+CSS3(二)
1、开发者文档 开发者文档通常由浏览器厂商或技术社区提供,包含有关Web技术(如HTML、CSS、JavaScript)的详细信息,API文档,以及最佳实践。例如,MDN Web Docs是一个广泛认可的开发者资源。 2、块级元素与行列元素 块级元素:在页面上占据整行的元素,如<div>、<…...

unity接入live2d
在bilibili上找到一个教程,首先注意一点,你直接导入那个sdk,并且打开示例,显示的模型是有问题的,你需要调整模型上脚本的一个枚举值,调整它的渲染顺序是front z to我看教程时候,很多老师都没有提…...

练习题-17
以下题目来自2024年5月清华大学“丘成桐数学科学领军计划数学水平考试”。第11题本人参考了网友Fiddie (数学兔的极大理想)的解答,原网址是 https://mp.weixin.qq.com/s/q9slRWL4iO_TcSdkmbfbbw. 第10题:在10维列向量构成的内积空间 V V V中…...

乐高小人分类项目
数据来源 LEGO Minifigures | Kaggle 建立文件目录 BASE_DIR lego/star-wars-images/ names [YODA, LUKE SKYWALKER, R2-D2, MACE WINDU, GENERAL GRIEVOUS ] tf.random.set_seed(1)# Read information about dataset if not os.path.isdir(BASE_DIR train/):for name in …...