iCAx开思网

标题: 有关CATIA二次开发的一个问题,请大家指教 [打印本页]

作者: tengcomic    时间: 2006-3-8 15:22
标题: 有关CATIA二次开发的一个问题,请大家指教
以下是一个小程序,最后两段就是问题啦,蛮奇怪的,有高手指教吗?
Option Explicit
' COPYRIGHT DASSAULT SYSTEMES 2000

' *****************************************************************************
'   Purpose:       Create A Product Structure document containing
'                        an external component.
'   Assumtions:   Opens CAAPstHull.CATPart in the CATDocView
'   Author:
'   Languages:   VBScript
'   Locales:        English
'   CATIA Level:  V5R6
' *****************************************************************************


Sub CATMain()

    ' -----------------------------------------------------------------------------------------------
    ' Optional: allows to find the sample wherever it's installed
     Dim sDocPath As String
     sDocPath = CATIA.SystemService.Environ("CATDocView")
     If (Not CATIA.FileSystem.FolderExists(sDocPath)) Then
       Err.Raise 9999, , "No Doc Path Defined"
     End If
    ' ------------------------------------------------------------------------------------------------
   
    'Create a new product document object by adding a document with the Product
    'type to the document collection of the CATIA application.
    Dim oProductDoc As Document
    Set oProductDoc = CATIA.Documents.Add("roduct")

    'Retrieve the root product.
    Dim oRoot As Product
    Set oRoot = oProductDoc.Product

    'Retrieve the root product collection of products.
    Dim oRootCol As Products
    Set oRootCol = oRoot.Products

    'Open the Part Document
    Dim oPartDoc As Document
    Set oPartDoc = CATIA.Documents.Read("D:\图\1\1\Jin41200.CATProduct")
   

    'Add a new component from the already opened part document.
    Dim oNewComponent As Product
    Set oNewComponent = oRootCol.AddExternalComponent(oPartDoc)
   
    Dim rProduct As Product
    Set rProduct = oNewComponent.Products.Item(1).ReferenceProduct
   
    Dim MyProduct As Product
    Set MyProduct = oRootCol.AddNewComponent("roduct", "111")
   
'-----------------------下面两段改名字没反应,改不动,我试过树型里第一层以下的名称都改不动---------------------------------
    Dim MyNewProduct As Product
    Set MyNewProduct = oNewComponent.Products.AddComponent(rProduct)
    MyNewProduct.Name = "444"
   
    Set MyNewProduct = MyProduct.Products.AddNewProduct("222")
    MyNewProduct.Name = "333"
   
   
End Sub
作者: xacf    时间: 2006-3-8 15:48
'-----------------------下面这段改名字没反应,改不动,我试过树型里第一层以下的名称都改不动---------------------------------
    Dim MyNewProduct As Product
    Set MyNewProduct = oNewComponent.Products.AddComponent(rProduct)
    MyNewProduct.Name = "444"
    MyProduct.update
    Set MyNewProduct = MyProduct.Products.AddNewProduct("222")
    MyNewProduct.Name = "333"
作者: tengcomic    时间: 2006-3-8 15:54
没有用,我试过的。
我用调试跟踪了一下,Name付值后还是没变,是什么还是什么。
比如:MyNewProduct.Name的值本来是"111"
MyNewProduct.Name = "444"这句执行后,它还是"111"
但树结构里面,第一层的名称就改得动。(除去根节点的第一层)
作者: saeba    时间: 2006-3-8 16:59
save过以后呢?
作者: tengcomic    时间: 2006-3-8 17:04
好像也不行,我新打开一张已画好的装配图,改第一层以下的零部件的名称(程序改),结果很让人郁闷,不行呀!
作者: tengcomic    时间: 2006-3-8 17:04
不知道是不是CATIA有什么东东需要设置的?
作者: xacf    时间: 2006-3-9 11:28
Language="VBSCRIPT"

Sub CATMain()

Set documents1 = CATIA.Documents

Set productDocument1 = documents1.Item("66666.CATProduct")

Set product1 = productDocument1.Product

Set products1 = product1.Products

Set product2 = products1.Item("Product7.1")

product2.Name = "kkkk"


End Sub

[ 本帖最后由 xacf 于 2006-3-9 11:34 编辑 ]
作者: xacf    时间: 2006-3-9 11:32
Language="VBSCRIPT"

Sub CATMain()

Set documents1 = CATIA.Documents

Set productDocument1 = documents1.Item("kkkkkk.CATProduct")

Set product1 = productDocument1.Product

product1.PartNumber = "kkkk"

End Sub
作者: robertsong    时间: 2006-3-9 18:23
楼上的正解
作者: tengcomic    时间: 2006-3-10 14:05
xacf给出的程序都是在CATProduct下的第一层实现的,拿到每二层就不管用了。CATProduct下的CATProduct下的CATPart
作者: xacf    时间: 2006-3-13 09:58
原帖由 tengcomic 于 2006-3-10 14:05 发表
xacf给出的程序都是在CATProduct下的第一层实现的,拿到每二层就不管用了。CATProduct下的CATProduct下的CATPart

建议你看看PART 和 COMPOMONT的区别




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3