Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  body Name auslesen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  body Name auslesen (3153 mal gelesen)
cmb
Mitglied
Systembetreuer


Sehen Sie sich das Profil von cmb an!   Senden Sie eine Private Message an cmb  Schreiben Sie einen Gästebucheintrag für cmb

Beiträge: 500
Registriert: 12.07.2002

CATIA V5-6R2016 64bit
Smarteam R22.6
Moldflow Adviser 2014
Lenovo Think Pad P90

erstellt am: 06. Dez. 2011 15:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Forum,

ich möchte gerne unter meinem Hauptkörper einen Knoten auswählen und diesen in einer Formel verarbeiten:

Formel.93: CN_Overflow = smartVolume(`Hauptkörper\Zusammenbauen.1\Körper.Aussen` )

Mit einer selection element2 kann ich den Body auswählen auf die visual .Properties komme ich, auf den Namen auch( oSel.Item(1).Value )

Was mir fehlt ist der Pfad zu meinem Body (im Beispiel Körper.Aussen).
Kann mir da jemand auf die Sprünge helfen.

Vielen Dank

Norbert


------------------
V5R20
Catia + Smarteam

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 06. Dez. 2011 16:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cmb 10 Unities + Antwort hilfreich

Servus
IMHOIn my humble oppinion (Meiner Meinung nach) brauchst du nicht den ganzen Pfad, sondern nur den Namen des Körpers (bei klappt es zumindest so):
Formel.93: CN_Overflow = smartVolume(`Körper.Aussen`)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cmb
Mitglied
Systembetreuer


Sehen Sie sich das Profil von cmb an!   Senden Sie eine Private Message an cmb  Schreiben Sie einen Gästebucheintrag für cmb

Beiträge: 500
Registriert: 12.07.2002

CATIA V5-6R2016 64bit
Smarteam R22.6
Moldflow Adviser 2014
Lenovo Think Pad P90

erstellt am: 06. Dez. 2011 16:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,

vielen Dank für die Info, bei mir tut er leider nicht. Ich habe mit dem Macrorecorder das hier aufgezeichnet.

Code:
Set formula1 = relations1.CreateFormula("Formel.91", "", dimension1, "smartVolume(`Hauptkörper\Zusammenbauen.3\Körper.Innen\Entfernen.1\Körper.Aussen` ) ")

wenn ich es editiere:

Code:

Set formula1 = relations1.CreateFormula("Formel.91", "", dimension1, "smartVolume(`Körper.Aussen` ) ")

erstellt er mir die Formel mit einem gelben Ausrufezeichen, der möchte da anscheinend schon den genauen Pfad. Ich kann mir höchstens noch eine Einstellung in den Optionen vorstellen.

G

Norbert

ach ja vielleicht noch wichtig : Ich befinde mich im Hauptkörper und habe mit boolschen Verknüpfungen gearbeitet


------------------
V5R20
Catia + Smarteam

[Diese Nachricht wurde von cmb am 06. Dez. 2011 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 06. Dez. 2011 17:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cmb 10 Unities + Antwort hilfreich

Servus
Versuch mal den Namen über die Methode GetNameToUseInRelation des Parameters-Objekt zu bestimmen. zB (ungetestet):
Code:
dim Bodyname as String
Bodyname = partDocument.Product.Parameters.GetNameToUseInRelation(oBody)  'hier zum Beispiel den Körper (ggf über die Selektion übergeben))
Dim formel as string
formel = "smartvolume(" & Bodyname & ")"
Set formula1 = relations1.CreateFormula("Formel.91", "", dimension1, formel)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cmb
Mitglied
Systembetreuer


Sehen Sie sich das Profil von cmb an!   Senden Sie eine Private Message an cmb  Schreiben Sie einen Gästebucheintrag für cmb

Beiträge: 500
Registriert: 12.07.2002

CATIA V5-6R2016 64bit
Smarteam R22.6
Moldflow Adviser 2014
Lenovo Think Pad P90

erstellt am: 14. Dez. 2011 15:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,

vielen Dank für die Info das soll laut Hilfe ja funktionieren aber ich bringe es nicht zum laufen:

Code:
Sub CATMain()

Set oDoc = CATIA.ActiveDocument
Set oPart = oDoc.Part

Set Koerper = oPart.Bodies
Dim iSel, iStatus, sFilter(0)
Set iSel = CATIA.ActiveDocument.Selection
sFilter(0) = "Body"
iStatus = iSel.SelectElement3(sFilter, "Part selektieren / ESC bei keine Auswahl", False, CATMultiSelTriggWhenSelPerf, False)
If iStatus = "Normal" Then
    Else
    MsgBox "Abbruch(Cancel) der Auswahl", vbOKOnly + vbCritical, "  Abbruch  "
    Exit Sub
End If
myname = oDoc.Selection.Item(1).Value.Name

Dim Bodyname 'As String
Bodyname = oDoc.Selection.GetNameToUseInRelation  '' Meldung: unterstützt diese Eigenschaft oder Methode nicht

Dim formel As String

Dim relations1
Set formula1 = relations1.CreateFormula("Formel.10", "", dimension1, "smartVolume(`" & Bodyname & "`)*dichte *1kg / 1m3")
oPart.Update

End Sub


Anscheinend habe ich in der Zeile Bodyname = oDoc.Selection.GetNameToUseInRelation noch einen Fehler.

Gruß

Norbert

------------------
V5R20
Catia + Smarteam

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 14. Dez. 2011 15:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cmb 10 Unities + Antwort hilfreich

Servus
Aus dem hohlen Bauch würde diese Änderung empfehlen (du must ein Objekt (also den Körper) und nicht die ganze Selektion übergeben:
Code:
Bodyname = oDoc.Product.Parameters.GetNameToUseInRelation(iSel.Item(1).Value)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cmb
Mitglied
Systembetreuer


Sehen Sie sich das Profil von cmb an!   Senden Sie eine Private Message an cmb  Schreiben Sie einen Gästebucheintrag für cmb

Beiträge: 500
Registriert: 12.07.2002

CATIA V5-6R2016 64bit
Smarteam R22.6
Moldflow Adviser 2014
Lenovo Think Pad P90

erstellt am: 15. Dez. 2011 11:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,

vielen Dank für deinen Hinweis, das war die Lösung. Sollte jemand ähnliche Probleme haben s.u.

Gruß Norbert

Code:

Sub CATMain()

On Error Resume Next

    Dim oDoc As Document
    Dim oProd As Product
    Set oDoc = CATIA.ActiveDocument
    Set oProd = oDoc.Product
'  Set Publics = oProd.Publications
    Dim ref1 'As String

    Dim part1 As Part
    Set part1 = oDoc.Part
    Dim relations1 As Relations
    Set relations1 = part1.Relations

    Dim para1 As Parameters
    Set para1 = oProd.UserRefProperties

'loeschen der Vorhandenen User Parameter
If MsgBox("Vorhandene UserParameter löschen") Then

        CATIA.ActiveDocument.Selection.Clear
        Dim i As Integer
        For i = 1 To para1.Count
        Set oParameter = para1.Item(i)
        Set selectList = CATIA.ActiveDocument.Selection
         
          If MsgBox("loschen von:" & oParameter.Name, 4) = vbYes Then
          selectList.Add oParameter
          End If
        Next
        selectList.Delete
End If

Dim dim1 As Dimension
Set dim1 = para1.CreateDimension("CN_VOLUME", "VOLUME", 0#)
dim1.ValuateFromString "0mm3"

Dim formula1 As Formula
Set formula1 = relations1.CreateFormula("Formel.Vmax", "", dim1, "smartVolume(`Hauptkörper` ) ")
formula1.Rename "Formel.Vmax"
oProd.Update


If MsgBox("Bin ich eine Flasche?", vbYesNo, "Datei neu aus") = vbYes Then
Dim dim2 As Dimension
Set dim2 = para1.CreateDimension("CN_Overflow", "VOLUME", 0#)
dim2.ValuateFromString "0mm3"

MsgBox "Bitte den Körper.innen oder Körper.Kern für das Overflow Volumen im Baum auswählen"


Dim iSel, iStatus, sFilter(0)
Set iSel = oDoc.Selection
sFilter(0) = "Body"
iStatus = iSel.SelectElement3(sFilter, "Part selektieren / ESC bei keine Auswahl", False, CATMultiSelTriggWhenSelPerf, False)
If iStatus = "Normal" Then
    Else
    MsgBox "Abbruch(Cancel) der Auswahl", vbOKOnly + vbCritical, "  Abbruch  "
    Exit Sub
End If

Dim Bodyname As String
Bodyname = oDoc.Product.Parameters.GetNameToUseInRelation(iSel.Item(1).Value)
Dim formel As String
formel = "smartVolume" & "(`" & (Bodyname) & "`)"
''Set formula1 = relations1.CreateFormula("Formel.91", "", dimension1, formel)
Dim formula2 As Formula
        Set formula2 = relations1.CreateFormula("Formel.Voverflow", "", dim2, formel)
''rec  Set formula1 = relations1.CreateFormula("Formel.58", "", dimension1, "smartVolume(`Hauptkörper\Zusammenbauen.2\Körper.Kern` ) ")
formula2.Rename "Formel.Voverflow"
oProd.Update

End If


End Sub


------------------
V5R20
Catia + Smarteam

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 15. Dez. 2011 11:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cmb 10 Unities + Antwort hilfreich

Servus
Danke für die Rückmeldung.
Anbei einige weiter Anregungen:
Warum verwendest du "On Error resume next"? (manchmal sinnvoll, wenn dies bewusst genutzt wird (ausgewertet))
Was passiert wenn der Hauptkörper mal umbenannt wurde?
(Set formula1 = relations1.CreateFormula("Formel.Vmax", "", dim1, "smartVolume(`Hauptkörper` ) "))

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cmb
Mitglied
Systembetreuer


Sehen Sie sich das Profil von cmb an!   Senden Sie eine Private Message an cmb  Schreiben Sie einen Gästebucheintrag für cmb

Beiträge: 500
Registriert: 12.07.2002

CATIA V5-6R2016 64bit
Smarteam R22.6
Moldflow Adviser 2014
Lenovo Think Pad P90

erstellt am: 15. Dez. 2011 11:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,

die Error Zeile kann ich eigentlich herausnehmen, da hab ich mir einen anderen Kopf kopiert.

Der Body Hauptkörper ist bei uns eigentlich gesetzt. Der sollte nicht geändert werden.
Was eigentlich auch immer gleich ist ist ein Körper.Aussen und ein Körper.Kern.
Wir sind in der Produktentwicklung von Kunststoffteilen.Da ist es sinnvoll schnell die Form von Schieber und Kerngeometrie darzustellen.

G

Norbert

------------------
V5R20
Catia + Smarteam

[Diese Nachricht wurde von cmb am 15. Dez. 2011 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz