| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| | |
 | Schnell, effizient und günstig: Mit der Kisters 3DViewStation 3D Arbeits- und Reparaturanleitungen einfach erstellen und pflegen, eine Pressemitteilung
|
|
Autor
|
Thema: Suchen von Variablen (663 mal gelesen)
|
Heiko83 Mitglied
 Beiträge: 4 Registriert: 12.03.2009
|
erstellt am: 12. Mrz. 2009 15:18 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ich beschäftige mich seit ein paar Wochen mit VBA Programmierung unter Catia V5R16. Ich möchte den Inhalt einer ListBox suchen. Dazu Habe ich folgenden Code geschrieben: Sub Suche() Dim name Dim AutoSel As Selection Dim AutoSel2 As Selection For i = 0 To Me.ListBox2.ListCount - 1 Step 1 name = Me.ListBox2.List(i) Set AutoSel = CATIA.ActiveDocument.Selection AutoSel.Clear AutoSel.Search (".Fläche.Name=name,Alle") AutoSel.copy CATIA.ActiveWindow.ActivateNext Set AutoSel2 = CATIA.ActiveDocument.Selection AutoSel2.Clear AutoSel2.Search ("..Name=name") AutoSel2.PasteSpecial "CATPrtResultWithOutLink" AutoSel2.Clear Next
End Sub AutoSel.search bleibt ergebnislos. Es wird nichts selektiert. Kann ich generell nicht nach Variablen suchen? Ich habe auch versucht "name" als String zu deklarieren, das ist offenbar nicht das Problem. Hat jemand eine Idee was ich noch probieren könnte? Danke im Voraus! Grüße Heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MICHLICK Mitglied CAD Methodik Entwickler (CATIA; NX)
 
 Beiträge: 456 Registriert: 20.06.2001 Der Aufwand bei Änderungen ist groß, wenn die Finger schneller klicken als das Gehirn denkt.
|
erstellt am: 12. Mrz. 2009 16:55 <-- editieren / zitieren --> Unities abgeben:          Nur für Heiko83
Hallo Heiko, mir wird ja ganz komisch zumute wenn ich Deinen Code lese. Ich glaube Du befindest Dich da auf dem Holzweg. Du kannst einen Parameter wie folgt finden: Code:
Function FindDimension(oPart As Part, ParamName As String) As Dimension Dim oParam As Parameters Set oParam = oPart.Parameters On Error Resume Next Set FindDimension = oParam.Item(ParamName) If Err.Number <> 0 Then MsgBox "Parameter konnte nicht gefunden werden!", vbCritical, "Fehler bei Parametersuche" Err.Clear On Error Goto 0 End If End Function
Um den Wert des Parameters zu bekommen lautet dann der Aufruf: Dim oParam As Parameter Dim oDoc As Document Dim oPart As Part Dim lValue As Long Set oDoc = CATIA.ActiveDocument Set oPart = oDoc.Part Set oParam = FindDimension(oPart, "Parametername") lValue = oParam.Value Um später den Wert einen anderen Parameter zuzuweisen einfach nur umstellen:
oParam.Value = lValue Die paar Zeilen sollten Dir ein wenig weiterhelfen ------------------ Gruß Michael B. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
   
 Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 12. Mrz. 2009 21:53 <-- editieren / zitieren --> Unities abgeben:          Nur für Heiko83
Hallo Heiko83, ungeachtet der Tatsache, ob auch die Antwort von "MICHLICK" zutrifft, ist die Sucheabfrage mit der Variablen "name" falsch! Die Zeilen müssen so lauten: Code: AutoSel.Search ("*.Fläche.Name=" & name & ",Alle") ... AutoSel2.Search ("*.Name=" & name & "")
[Edit] Glatt vergessen: Willkommen im Forum! [/Edit]mfg, Lusilnie ------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!
frei nach größeren Geistern [Diese Nachricht wurde von Lusilnie am 12. Mrz. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heiko83 Mitglied
 Beiträge: 4 Registriert: 12.03.2009
|
erstellt am: 12. Mrz. 2009 22:37 <-- editieren / zitieren --> Unities abgeben:         
Hallo, erstmal Danke! für den netten Empfang und die schnelle Hilfe! @MICHLICK: Ich kann deinen Ansatz leider noch nicht so ganz nach vollziehen aber ich setz mich nächste Woche dran und gucke mal was man mit dem Params so alles anstellen kann. Danke dafür! @Lusilnie: Danke! Genau nach sowas habe ich gesucht! Ich konnte leider im Ziethen nichts derartiges finden. Es funktioniert nun tadellos! Danke nochmal! Grüße Heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |