Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameter Auslesen läuft sehr langsam

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:  Parameter Auslesen läuft sehr langsam (3117 mal gelesen)
Hoemie
Mitglied


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

Beiträge: 4
Registriert: 15.04.2011

CATIA V5R19
Windows XP SP3
Intel Core 2 Quad 2,33 MHz
3 GB RAM

erstellt am: 15. Apr. 2011 10:15    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

Guten morgen zusammen,

ich möchte die Werte von Parametern aus CATIA in Excel auslesen und umgekehrt, ohne dabei die Konstruktionstabellen zu nutzen. In dem Forum habe ich diese Möglichkeit dazu gefunden:

For I = 1 To oPart.Parameters.Count
  Set oParameter = oPart.Parameters.Item(I)
  If InStr(1, oParameter.Name, "MeinParameter", vbTextCompare) <> 0 Then
    'Anweisungen zum Auslesen
  End If
Next

Das funktioniert grundsätzlich auch einwandfrei, aber pro Parameter benötigt die obige Schleife ca. 1 - 2 Sekunden und das, obwohl das eigentliche Auslesen noch gar nicht implementiert ist. Das Problem ist, dass das Modell sehr viele Parameter aufweist und es daher ewig dauern würde. Mache ich irgendetwas grundsätzlich falsch?

Vielen Dank für eure Hilfe im Voraus!

Björn

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

Christian.O
Mitglied
Konstrukteur


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

Beiträge: 1212
Registriert: 17.07.2009

erstellt am: 15. Apr. 2011 10:21    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 Hoemie 10 Unities + Antwort hilfreich

Servus,

und Willkommen im Forum.

hast du schon versucht die Parameter über eine Suche zu selektieren und auszulesen?
Geht das schneller? Bei mir läuft das sehr gut und vorallem schnell.

------------------
Mit freundlichen Grüßen aus Tirol
Christian Obholzer

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. Apr. 2011 10:26    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 Hoemie 10 Unities + Antwort hilfreich

Servus
Willkommen im Forum. Bitte Systeminfo ausfüllen.
Wenn du den genauen Namen des Parameters kennst sollte auch dein direkt Vergleich funktionieren (ist vielleicht etwas schneller):
  if oParamter.Name = "MeinParameter" then
Zusätzlich könntest du im Durchlauf der For-next-Schleife mehrere Parameter abarbeiten (weiter if-Schleifen oder Select-Case)
Eine weiter Möglichkeit ist direkt mit dem Namen auf den Parameter zugreifen, siehe hier (Fehlerbehandlung beachten).

Gruß
Bernd

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

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

Hoemie
Mitglied


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

Beiträge: 4
Registriert: 15.04.2011

CATIA V5R19
Windows XP SP3
Intel Core 2 Quad 2,33 MHz
3 GB RAM

erstellt am: 15. Apr. 2011 11:34    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

Danke für die schnellen Antworten:

@Christian: Ich weiß leider nicht ich das mit dem selektieren und auslesen anstellen muss. Könntest du mir da eventuell weiterhelfen?

@Bernd: Das Makro läuft auch schon sehr langsam, wenn ich die if-Abfrage ganz raus nehme, also so:

For I = 1 To oPart.Parameters.Count
  Set oparameter = oPart.Parameters.Item(I)
Next
End Sub

Das set oparameter dauert bei mir anscheinend so lang. Wenn ich andersherum Nur die if Abfrage drin lasse also so:

Set oparameter = oPart.Parameters.Item(1)
For I = 1 To oPart.Parameters.Count
  If oparameter.Name = "MeinParameter" Then
    'Anweisungen zum Auslesen
  End If
Next

geht es schnell. (Ist klar, dass das so nur den ersten Parameter prüft, wollte nur sehen, was so lange dauert.)

Danke im Voraus!

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

Kne
Mitglied
System-Ingenieur


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

Beiträge: 88
Registriert: 16.11.2007

Intel Xenon 2 x 2,53Mhz
12 GB Ram
NVIDIA Quadro Fx 1800
Vista 64bit
CATIA v5R18 + v5R19

erstellt am: 15. Apr. 2011 13:00    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 Hoemie 10 Unities + Antwort hilfreich

Hi Hoemie,

verstehe ich das richtig, dass du alle Parameter des Parts durchsuchst? Wenn ja ist es klar, dass das etwas länger dauert, da ein Part über 3000 Partameter besitzt. Versuche wie schon bgrittmann geschrieben hat deine Parameter direkt anzusprechen. Den Code dafür bekommst du auch über den Makrorekorder. Einfach mal Aufnahme starten und einen Parameterwert ändern.

------------------
Grüße aus Köln
Stefan

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

Christian.O
Mitglied
Konstrukteur


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

Beiträge: 1212
Registriert: 17.07.2009

erstellt am: 15. Apr. 2011 13:22    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 Hoemie 10 Unities + Antwort hilfreich

Servus,

so hab ich auslesen bzw. suchen gemeint:

Code:
'***Performanceerhöhung der Suche
CATIA.HSOSynchronized = False
'***Parameter suchen
objSel.Search "Knowledgeware.Parameter.Name !=Origin*"
CATIA.HSOSynchronized = True

und fürs auslesen:

Code:
For intI = 1 To objSel.Count
  '***Parameternamen eintragen
  objExcel.Cells(5 + intI, 1).Value = objSel.Item(intI).Value.Name
           
  '***Werte eintragen
  objExcel.Cells(5 + intI, 2).Value = objSel.Item(intI).Value.Value
Next

------------------
Mit freundlichen Grüßen aus Tirol
Christian Obholzer

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

Hoemie
Mitglied


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

Beiträge: 4
Registriert: 15.04.2011

CATIA V5R19
Windows XP SP3
Intel Core 2 Quad 2,33 MHz
3 GB RAM

erstellt am: 15. Apr. 2011 14:59    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

Danke für die vielfältige Hilfe.

@Christian: Deine Lösung funktioniert bei mir sehr gut und schnell. Danke!

Ich habe allerdings noch nicht verstanden, wonach ich da genau suche.

Was selektiere ich mit .Search "Knowledgeware.Parameter.Name !=Origin*"?

Könnte ich z.B. auch alle vom Nutzer angelegten Parameter selektieren? (Das sind nämlich die, die ich später ein- und auslesen möchte.)

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

Christian.O
Mitglied
Konstrukteur


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

Beiträge: 1212
Registriert: 17.07.2009

erstellt am: 15. Apr. 2011 15:14    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 Hoemie 10 Unities + Antwort hilfreich

Servus,

es werden hier alle Parameter bis auf die Originparameter selektiert und nach Excel ausgelesen.

------------------
Mit freundlichen Grüßen aus Tirol
Christian Obholzer

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. Apr. 2011 15:30    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 Hoemie 10 Unities + Antwort hilfreich

Servus
Mit einer Abfrage nach "renamed" kannst du die umbenannten Parameter "ausfiltern" (leider nicht in der Suche):
Code:

    '***Performanceerhöhung der Suche
    CATIA.HSOSynchronized = False
    '***Parameter suchen
    objSel.Search "Knowledgeware.Parameter.Name !=Origin*"
    CATIA.HSOSynchronized = True

    For intI = 1 To objSel.Count
    'Parameter umbenannt?
    if objSel.Item(intI).Value.renamed = true then
    '***Parameternamen eintragen
      objExcel.Cells(5 + intI, 1).Value = objSel.Item(intI).Value.Name
           
      '***Werte eintragen
      objExcel.Cells(5 + intI, 2).Value = objSel.Item(intI).Value.Value
    End if
    Next


Gruß
Bernd

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

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

Hoemie
Mitglied


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

Beiträge: 4
Registriert: 15.04.2011

CATIA V5R19
Windows XP SP3
Intel Core 2 Quad 2,33 MHz
3 GB RAM

erstellt am: 15. Apr. 2011 15:31    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

Danke für die Hilfe! Bin wirklich begeistert von diesem Forum!
Schönes Wochenende!

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 06. Mai. 2011 11:54    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 Hoemie 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Christian.O:
so hab ich auslesen bzw. suchen gemeint:
Code:
'***Performanceerhöhung der Suche
CATIA.HSOSynchronized = False
'***Parameter suchen
objSel.Search "Knowledgeware.Parameter.Name !=Origin*"
CATIA.HSOSynchronized = True


Hallo zusammen,
sollte damit jemand arbeiten, dann sei gesagt, dass CATIA R19SP08 mit diesem Befehl komplett zerissen wird. Der erste Programmdurchlauf funktioniert wunderbar. Sobald man das Programm beendet allerdings beendet, scheint es CATIA mit in den Abgrund zureißen. Danach funktionieren einige Dinge nicht mehr.
Auf der Suche nach einer Lösung habe ich gesehen, dass es genau hierfür einen Hotfix 6 gibt!

...also nur zur Info. Ich bin nämlich gerade selbst derbe auf die Nase gefallen und konnte mir nicht erklären warum!

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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