找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 19222|回复: 8
打印 上一主题 下一主题

[求助] 如何通过VBA获取part 中的link

[复制链接]
跳转到指定楼层
1
发表于 2009-2-23 15:34:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
如何通过VBA获取part 中的link(CCP/KWE)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 赞一下!赞一下!
2
发表于 2009-2-23 17:45:12 | 只看该作者
link?是cut,copy,paste?还是获取其中的参数什么的?描述的不够清楚
3
发表于 2009-2-24 10:11:26 | 只看该作者
是通过VBA来获取link指向的路径。

比如:D:/part/part1.CATPart

我是想获取这个路径。有什么好的办法实现吗。

我在ParDocument, part 中均未找到相关的函数来获取。

估计是通过SchCntrDocLink的GetLink函数来获取。
不过我不知道如何获取SchCntrDocLink这个对象,因此也没有办法来调用这个函数。

清楚我的问题了吗?

我的msn:heavy.zhou@hotmail.com
QQ:382420654
4
发表于 2009-2-24 14:11:52 | 只看该作者
看看这个对你有用吗?
SchematicRoot
Returns the object factory for specific schematic application.
Example:
This example illustrates how to get the object factory of user defined virtual type. User provides implementation to this type.
Dim objSchPlatformRoot As SchematicRoot
Dim objSchObjFact As SchAppObjectFactory
Dim objProductRoot As Product
Set objProductRoot = CATIA.ActiveDocument.Product
Set objSchPlatformRoot = objProductRoot.GetTechnologicalObject ("SchematicRoot")
Set objSchObjFact = objSchPlatformRoot.GetApplObjFactFromVirtualType("UserDefined")(
我加了你的msn
5
发表于 2009-2-24 17:04:13 | 只看该作者
谢谢你的回复!

我的msn还没有看到你啊,你的MSN是多少?
6
发表于 2009-2-27 23:32:40 | 只看该作者
Dim yourPartDoc as PartDocument ( or Document)
set youPartDoc = ....

Dim DocFullName as String
DocFullName = Doc.FullName

The returned value is like this:
e:\users\psr\Parts\MyNicePart.CATPart
7
发表于 2009-3-2 10:02:44 | 只看该作者
acoka 你好!请问你的set youPartDoc = ... 该如何获取?我添加了一个含有link的part。这个该如何解决。
谢谢!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8
发表于 2009-3-2 11:47:31 | 只看该作者
Set Document = CATIA.ActiveDocument : Set Part = Document.Part
9
发表于 2009-3-4 09:30:24 | 只看该作者
谢谢大家的帮助, 该问题已经解决。代码如下,和大家一起分享:
Dim partDocument1 As Document
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim selection1 As Selection
Set selection1 = partDocument1.Selection
Dim selection2 As Selection

Dim oStiEngine As StiEngine
Set oStiEngine = CATIA.GetItem("CAIEngine")

Dim oStiDBItem As StiDBItem
Set oStiDBItem = oStiEngine.GetStiDBItemFromAnyObject(partDocument1)

Dim oDocument As Document
Set oDocument = oStiDBItem.GetDocument

'MsgBox oDocument.Name

Dim oStiDBChildren As StiDBChildren
Set oStiDBChildren = oStiDBItem.GetChildren()

'MsgBox oStiDBChildren.Name


Dim oNbChildren As Integer
oNbChildren = oStiDBChildren.Count

Dim i As Integer

'MsgBox oNbChildren

Dim sChildLinkType As String
Dim oStiDBItem2 As StiDBItem
Dim oDocument2 As Document

For i = oStiDBChildren.Count To 1 Step -1
sChildLinkType = oStiDBChildren.LinkType(i)
MsgBox sChildLinkType

Set oStiDBItem2 = oStiDBChildren.Item(i)
'Set oDocument2 = oStiDBItem2.GetDocumentFullPath
MsgBox oStiDBItem2.GetDocumentFullPath
Next


part1.Update
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-23 09:34 , Processed in 0.026542 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表