java excel 创建按钮_通过单击Excel按钮在Catia中设计零件

我已经在用宏编辑器构建的Catia V5中编写了一些宏,但我无法弄清楚如何从Excel访问Catia命令 .

我想知道如何通过仅在excel文件圆柱体的半径和长度中创建一个简单的直圆柱体 .

我想在Catia中输入不同的压力容器,在Excel中输入它们的直径和高度,然后点击那张excel表中的按钮后,容器应该出现在Catia中 . 如果我已经需要在Catia中打开一个空的部分,我没有问题,但最好只是让Catia打开而不加载任何东西 .

如果我有一个开始,看看如何从Excel访问Catia方法,我想我可以找出完成容器所需的其余方法,如颈部,帽子等 .

谢谢 .

编辑:我设法测试了一些东西,我遇到了一个问题,我不知道如何在Excel vba中设置约束 . 我将代码从Catia vb移动到Visual Express并设法使其在那里工作但是在excel中我没有找到关于如何使用驱动维度的链接 .

这是我的代码:

Sub Main()

Dim CATIA As Object

Set CATIA = GetObject(, "CATIA.Application")

Set openDocument = CATIA.ActiveDocument

Set currentPart = openDocument.Part

Set currentHybridBodies = currentPart.HybridBodies

Set currentHybridBody = currentHybridBodies.Add()

Set referenceHybridBody = currentPart.CreateReferenceFromObject(currentHybridBody)

currentPart.HybridShapeFactory.ChangeFeatureName referenceHybridBody, "GeometricalSet"

Set partOriginElements = currentPart.OriginElements

Set plnYZ = currentPart.OriginElements.PlaneYZ

Set currentGeometricalSet = currentPart.HybridShapeFactory

Dim currentOffset As Integer

Dim circleDiameter As Integer

Dim cylinderLength As Integer

currentOffset = 0

circleDiameter = Range("B2").Value

cylinderLength = Range("B3").Value

Call CreateCylinder(0, 0, circleDiameter, cylinderLength, currentOffset)

currentPart.Update

currentOffset = currentOffset + cylinderLength

circleDiameter = Range("B5").Value

cylinderLength = Range("B6").Value

Call CreateCylinder(0, 0, circleDiameter, cylinderLength, currentOffset)

openDocument.Part.Update

currentOffset = currentOffset + cylinderLength

circleDiameter = Range("B8").Value

cylinderLength = Range("B9").Value

Call CreateCylinder(0, 0, circleDiameter, cylinderLength, currentOffset)

currentPart.Update

currentOffset = currentOffset + cylinderLength

CATIA.ActiveWindow.ActiveViewer.Reframe

End Sub

Sub CreateCylinder(iCenterX, iCenterY, iDiameter, iLength, iPlaneOffset)

Set CATIA = GetObject(, "CATIA.Application")

Set openDocument = CATIA.ActiveDocument

Set currentPart = openDocument.Part

Set plnYZ = currentPart.OriginElements.PlaneYZ

Set currentGeometricalSet = currentPart.HybridShapeFactory

Set planeOffset1 = currentGeometricalSet.AddNewPlaneOffset(plnYZ, iPlaneOffset, False)

Set currentHybridBody = currentPart.HybridBodies.Item("GeometricalSet")

currentHybridBody.AppendHybridShape (planeOffset1)

openDocument.Part.Update

Set currentBodies = currentPart.Bodies

Set currentBody = currentBodies.Add()

Set currentSketch = currentBody.Sketches.Add(planeOffset1)

Dim Factory2D As Object

Set Factory2D = currentSketch.OpenEdition

Set geometricElements1 = currentSketch.GeometricElements

Dim axis2D1 As Object

Set axis2D1 = geometricElements1.Item("AbsoluteAxis")

Dim line2D1 As Object

Set line2D1 = axis2D1.GetItem("HDirection")

Dim line2D2 As Object

Set line2D2 = axis2D1.GetItem("VDirection")

Set currentCircle = Factory2D.CreateClosedCircle(iCenterX, iCenterY, iDiameter / 2)

Dim point2D1 As Object

Set point2D1 = axis2D1.GetItem("Origin")

Dim constraints1 As Object

Set constraints1 = currentSketch.Constraints

Dim reference2 As Object

Set reference2 = currentPart.CreateReferenceFromObject(currentCircle)

Dim constraint1 As Object

Set constraint1 = constraints1.AddMonoEltCst(catCstTypeRadius, reference2)

Dim catCstModeDrivingDimensions As Object

'Set constraint1.Mode = catCstModeDrivingDimensions 'Here I get the error

Dim iRadius As Double

iRadius = iDiameter / 2

currentCircle.CenterPoint = point2D1

currentSketch.CloseEdition

Dim newPad As Object

Set newPad = currentPart.ShapeFactory.AddNewPad(currentSketch, iLength)

End Sub

在该注释行上我得到错误438:对象不支持此属性或方法 .

代码在没有该行的情况下工作,但几何元素不受约束,相反它们看起来是固定的,我不希望这样 .

该代码在Visual Express中工作正常,并将所有约束放在应有的位置 .

任何人都可以告诉我如何将Catia命令链接到excel vb .

这是来自v5自动化文档:

枚举CatConstraintMode {catCstModeDrivingDimension,catCstModeDrivenDimension}

此外,对我的代码的任何反馈表示赞赏 .

谢谢 .

编辑:我似乎可以导入的唯一引用是:references

如果我选择其他人,则会收到错误:加载DLL时出错 . Catia安装在服务器上但是我可以使用Browse指向它...我仍然不确定在那里选择什么,因为有很多文件 .

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pythonspot_python-Spotipy-列表索引超出范围

编写Spotipy脚本以从给定专辑返回专辑曲目,我偶尔会遇到错误:album_id results["albums"]["items"][0]["uri"]IndexError: list index out of range这种错误往往发生在更多的流行歌手遍历所有专辑的时候.我猜结果列表已达到极限或以…

国防科大JAVA工程师笔试题_国防科大人工智能考博题答案

【实例简介】国防科大计算机学院考博试题 人工智能11-15年试题答案A-20年33(注主:图21的日2该是想反3):61(35),610)①到日1①bs15②①9-519海:S→B>D>印k0b4763到句2(013-13e(as|0⊙(升早巧一③Cm52B877③1315④①a3s93(62833106舞决:5>B→>D>2或5A>C>D→…

python四舍五入保留小数点后三位_Python中的“正确”四舍五入到小数点后3位

我可能遗漏了一些重要的东西,但我无法找到一种方法来在Python(2.7)中将浮点/小数“适当”舍入,至少舍入到小数点后三位。我的意思是1.2225应该四舍五入到1.223,而1.2224应该四舍五入到1.222。在我知道在Python中,round不适用于flo…

java 指代对象_java-This的理解

都知道this是一个指代作用吧,但指代的是什么?一般网上搜索的this 都说是“当前对象”,但这样说和没说区别一个样,什么是“当前对象”都说不清楚。但其实,this指代得分下面4种情况来说。有的是场景展示的(如一、三)&…

python 日历查询系统_python 日历

上章总结了python中time模块的使用,这次总结日历模块 calendar>>> import calendar>>> cal calendar.month(2016,1)>>> calJanuary 2016\nMo Tu We Th Fr Sa Su\n 1 2 3\n 4 5 6 7 8 9 10\n11 12 13 14 15 16 17\n1…

在java语法中继承_java中的继承

一、继承:1.如果不使用继承,会出现以下一些问题:(1)代码重复(2)如果要修改的话,两个类都需要修改。2.继承体现的是一种is a 的关系。eg:Dog is a Pet;apple is a Fruit;Student is a Person;二、子类可以继承到父类的哪些财产呢&a…

照片识别出错_AI跨年龄人脸识别技术在跨年龄寻亲的应用简析

9月3日,央视财经《经济半小时》栏目播出了一段有关失踪儿童找回的视频新闻。在这则新闻中,跨年龄人脸识别技术是最为核心的功臣,深圳警方利用跨年龄人脸识别技术,根据一张3岁孩童的儿童照片找回了失踪了十几年的孩子,让…

python内置的数字运算函数_Python 内置函数1

abs(x)函数返回绝对值参数可以是&#xff1a;负数、正数、浮点数或者长整形print(abs(-1.2))# 结果1.2cmp(x, y)函数 (python3已删)中文说明&#xff1a;比较两个对象x和y&#xff0c;如果x < y ,返回负数&#xff1b;x y, 返回0&#xff1b;x > y,返回正数。版本&#…

java音频采样_音频重采样的坑

背景使用webrtc进行语音通话&#xff0c;网络正常的情况下&#xff0c;延迟比较大。进行过如下分析&#xff1a;(1)从socket收包到webrtc处理完音频没有耗时长的操作&#xff0c;排除了webrtc处理音频引入的延迟(2)与其他终端进行通话无延迟通过以上的分析&#xff0c;最终确认…

python stdout清空_python中stdout输出不缓存的设置方法

考虑以下python程序&#xff1a;#!/usr/bin/env pythonimport syssys.stdout.write("stdout1 ")sys.stderr.write("stderr1 ")sys.stdout.write("stdout2 ")sys.stderr.write("stderr2 ")其中的sys.stdout.write也可以换成print。运行…

分段线性判别法 java_线性判别分析(Linear Discriminant Analysis)(二)

4. 实例将3维空间上的球体样本点投影到二维上&#xff0c;W1相比W2能够获得更好的分离效果。PCA与LDA的降维对比&#xff1a;PCA选择样本点投影具有最大方差的方向&#xff0c;LDA选择分类性能最好的方向。LDA既然叫做线性判别分析&#xff0c;应该具有一定的预测功能&#xff…

软件测试用例_大话软件测试用例要素

我们经常都知道一个测试用例里面包含以下几个要素&#xff1a;1&#xff0c;用例编号2&#xff0c;模块3&#xff0c;场景4&#xff0c;用例名称5&#xff0c;前置条件6&#xff0c;测试等级7&#xff0c;操作步骤8&#xff0c;预期结果(需求要求的结果)9&#xff0c;实际结果1…

cario java_Cairo图形库 概述

参考&#xff1a;http://blog.sina.com.cn/s/blog_538732a70100p9ay.htmlCairo图形库 1. 概述欢迎来到Cairo图形教程.这个教程将教你Cairo2D矢量绘图库基本的和一些高级的主题.大部分例程我们使用GTK编程库. 这个教程是用C语言来完成的.(如果可能,我会附加上一些cairomm的东西…

python大神推荐_大神推荐!!!高评分书籍轻松带你入门Python

上次讲到了初学者阶段必看的书籍。今天给大家继续讲讲进阶者阶段当你对Python有了一定的了解&#xff0c;并在生活或者工作中使用过一段时间&#xff0c;那么你就可以考虑进阶相关的书籍&#xff0c;请看下面这3本&#xff1a;《Python深度学习》豆瓣评分&#xff1a;9.6推荐指…

java中this图解_JAVA-初步认识-第七章-this关键字的使用场景和原理图解

一.this有什么用&#xff1f;我们用例子的形式来体现一下。下面的截图说明&#xff0c;给人对象一初始化的时候&#xff0c;赋值个姓名。赋值姓名的时候&#xff0c;拿n赋值给name&#xff0c;DOS显示创建对象时&#xff0c;构造函数初始化成功。在例子中&#xff0c;我们将“旺…

python汉诺塔_汉诺塔递归算法/搬金盘的婆罗门 - Python实现

汉诺塔递归算法/搬金盘的婆罗门 - Python实现版权声明本文节选自作者本人的图书《Python编程基础及应用》&#xff0c;高等教育出版社。本文可以在互联网上自由转载&#xff0c;但必须&#xff1a;注明出处(作者&#xff1a;海洋饼干叔叔)并包含指向本页面的链接。本文不可以以…

java算程序运行时间_关于计算Java程序运行时间

第一种是以毫秒为单位计算的。Java代码//伪代码long startTimeSystem.currentTimeMillis(); //获取开始时间doSomeThing(); //测试的代码段long endTimeSystem.currentTimeMillis(); //获取结束时间System.out.println("程序运行时间&#xff1a; "(end-start)&qu…

reactor模型_Reactor模式以及Netty中的应用

思维导图一、Reactor模式介绍本文主要参考Doug Lea(大神)的《Scalable IO in Java》中讲述的Reactor模式。

Java文件路径及文件名乱码_javaweb文件下载及文件名中文乱码处理

版权声明&#xff1a;yanghaha的原创博客 https://blog.csdn.net/qq_44758435/article/details/90636619文件下载需要先导入两个jar包commons-fileupload-1.3.1.jarcommons-io-2.4.jarString fileName request.getParameter("fileName");//下载文件&#xff0c;需要…

sa是什么岗位_服务顾问SA在维修企业扮演的重要角色

前言&#xff1a;SA在维修企业中扮演什么样的角色&#xff0c;这就是我们今天的话题。作者 | 李连俊来源 | 汽车服务世界(ID&#xff1a;asworld168)客户的群体很多&#xff0c;不同的客户群体消费的能力不一样&#xff0c;SA简称【服务顾问】。SA要对客户的消费能力进行评估&a…