Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameteränderung mit Python

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änderung mit Python (2065 mal gelesen)
VivienJ
Mitglied
Student

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

Beiträge: 8
Registriert: 23.07.2012

Python 2.7.2
CATIA V5R21

erstellt am: 17. Aug. 2012 09:58    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 ihr lieben,

für meine Abschlußarbeit soll ich ein Programm in Python schreiben, dass mir in CATIA Parameter meines Bauteile (der Einfachheit halber ein Balken) ändert, die Datei als .igs speicher und dann die .igs in Abaqus öffnet und berechnet.
Mein Problem ist nun das Ändern der Parameter, mir fehlt hier der Befehl (command). Ich bekomme meine Original .CATPart geöffnet, ich bekomme die Parameter ausgelesen, ich kann die Datei als .igs speichern, mir fehlt einfach der Zwischenschritt des Parameteränderns.

Vielen Dank für eure Hilfe

Herzliche Grüße

Vivien

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 17. Aug. 2012 10:02    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 VivienJ 10 Unities + Antwort hilfreich

Bitte Systeminfo ausfüllen.

Gib uns doch mal einen Code-Schnippsel, wei Du den parameter bisher bekommst, dann brauchen wir nur die Methode anhängen statt Dir ein fertiges Programm zu liefern und hier können nicht viele Python.

Hast Du die Suchfunktion und die Hilfe bemüht?

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

VivienJ
Mitglied
Student

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

Beiträge: 8
Registriert: 23.07.2012

Python 2.7.2
CATIA V5R21

erstellt am: 17. Aug. 2012 10:12    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,

danke schon mal für die schnelle Antwort.
An meiner Hochschule benutzen wir CATIA V5R21, Python ist die Version 2.7.2, OS Version des Rechners an dem ich Sitze ist Windows NT6.1 Service Pack1, Dual 2.40 GHz Intel Core2 6600@4096MB.

#CATIA ueber COM laden
try:
from win32com.client import Dispatch
CATIA = Dispatch('CATIA.Application')
print "CATIA V5 wurde erkannt."
except:
print "CATIA V5 wurde nicht erkannt."
print "Moegliche Ursachen:"
print "-PythonWin ist nicht installiert."
print "-CATIA V5 wurde nicht gestartet."

#Document is opened
try:
partDocument1 = CATIA.Documents.open("C://Users//11067053//Desktop//Abaqus//Part1.CATPart")
print "Datei wurde geoeffnet"
except:
print "Datei konnte nicht geoeffnet werden."


#Programm is opened, just to see whats happening
CATIA.Visible=True


#Document is choosen to be the active one
try:
    partDocument1 = CATIA.ActiveDocument
    print "Datei wurde aktiviert"
except:
    print "Datei konnte nicht aktiviert werden."


#Part1 is set to be the active one
try:
    part1 = partDocument1.Part
    print "Part wurde zugewiesen "
except:
    print "Part konnte nicht zugewiesen werden"


#Part1 is updated (here its not necessary, no changes yet)
try:
    part1.Update
    print "Part wurde angepasst"
except:
    print "Part konnte nicht angepasst werden"

#open file in list
list = open( "C:\Users\\11067053\Desktop\CatiaUndAbaqus\DesignTable1.txt", "r" )
array = []
i=-1

#split lines from the list
for line in list:
    array.append( line )
    i=i+1
    if i!=0:
#if line length greater than one in case that we have parameters on that line
        if len(line)>1:
            print 'Simulation nr.', i
            print line
            #split line to take out the space and divide it to variables
            # example use of split before line = 50 40  and after parameter = 50],[40
            parameter = line.split( );
            #not necessary converting string to integer
            Breite = int(parameter[0])
            Laenge = int(parameter[1])
            print "Breite", Breite
            print "Laenge", Laenge
            print ""
#Part will be updated after the change of parameters
try:
    part1.Update
    print "Part wurde angepasst"
except:
    print "Part konnte nicht angepasst werden"

#Document is saved as igs
try:
    partDocument1.ExportData("C:\Users\\11067053\Desktop\Abaqus\Part2.igs","igs")
    print "Datei wurde gesichert"
except:
    print "Datei konnte nicht gesichert werden"

Ich hoffe es ist soweit verständlich. Wie gesagt, mir fehlt das Command um die Parameter nun zu ändern.
Falls du meine Files (Catia Part und Konstruktionstabelle brauchst, gib bescheid.

Danke und viele Grüße

Vivien

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: 17. Aug. 2012 10:19    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 VivienJ 10 Unities + Antwort hilfreich

Servus
Meiner Ansicht nach (ich kenne mich aber nicht in Pyton aus) hast du noch keinen Zugriff auf die Parameter im Part hergestellt.
Sind dies Parameter, oder nur Bedingungen in Skizzen, oder Abmessungen in einem Block-Feature?

Gruß
Bernd

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

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

VivienJ
Mitglied
Student

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

Beiträge: 8
Registriert: 23.07.2012

Python 2.7.2
CATIA V5R21

erstellt am: 17. Aug. 2012 10: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

Hallo Bernd,

in meinem Part habe ich Parameter eingestellt und die entsprechende Tabelle angelegt, leider kenne ich mich mit Programmieren im allgemeinen noch nicht so gut aus, aber du hast Recht, ich habe bisher einfach die Tabelle ausgelesen und noch keinen Zugriff auf die Parameter.

Gruß
Vivien

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

VivienJ
Mitglied
Student

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

Beiträge: 8
Registriert: 23.07.2012

Python 2.7.2
CATIA V5R21

erstellt am: 17. Aug. 2012 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

Ich hatte bereits die Möglichkeit gefunden Über die CATIA StartCommands auf die Parameter zuzugreifen, aber dann muß man Klicks durchführen und das ist nicht erwünscht. Ich bräuchte einen Befehl in Form von exec Parameterändern, das VBA Makro, dass ich erstellt habe spuckt mir folgendes aus, nur da ich von "Extren" zugreifen will, funktioniert es so nicht in Python:

Dim relations1 As Relations
Set relations1 = part1.Relations

Dim designTable1 As DesignTable
Set designTable1 = relations1.Item("DesignTable.1")

designTable1.Configuration = 6

part1.Update

Set partDocument1 = CATIA.ActiveDocument

partDocument1.Save

designTable1.Configuration = 5

part1.Update

Gruß
Vivien

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: 17. Aug. 2012 10: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 VivienJ 10 Unities + Antwort hilfreich

Servus
Jetz wird es etwas klarer. Du musst nur die Konfiguration der Designtabelle ändern.
Zugriff solltest du sinngemäß über:
partDocument1.part.releations.Item("DesignTable.1")
auf die Tabelle erhalten (siehe dazu auch die Doku V5Aotmaton.chm im Catia-Installationsverzeichnis).

Gruß
Bernd

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

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

VivienJ
Mitglied
Student

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

Beiträge: 8
Registriert: 23.07.2012

Python 2.7.2
CATIA V5R21

erstellt am: 17. Aug. 2012 10: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

Hier hab ich nochmal den Befehl mit Startcommand, CATIA muß hierfür auf deutsch eingestellt sein. mit deisem Befehl öffnet er mir in Catia ein Fenster, in dem ich die Parameter ändern und speichern kann.

try:
CATIA.StartCommand ("Konstruktionsinspektor")

print "Konstruktionsparameter koennen geaendert werden"
except:
print "Konstruktionsparameter koennen nicht geaendert werden."


Grüße
Vivien

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

VivienJ
Mitglied
Student

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

Beiträge: 8
Registriert: 23.07.2012

Python 2.7.2
CATIA V5R21

erstellt am: 17. Aug. 2012 10:40    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,

ich hatte folgendes schon probiert:
#Parameter definieren
try:
    designTable1 = relations1.Item("DesignTable.1")
    print "Parameter wurden neu definiert"
except:
    print "Parameter konnten nicht definiert werden"

#Wert auswaehlen
try:
    SheetRow = 5
    print "neue Parameter wurden gewaehlt"
except:
    print "neue Parameter konnten nicht gewaehlt werden"

Mein Programm behauptet nun, dass er die Parameter gewählt hat, nur in CATIA passiert nichts, als ich dort erneut ein Makro erstellt habe hat es den Rest des Programmes angezeigt, nur dieser Teil war nicht berücksichtig (sorry, hätte ich anfänglich schon erwähnen sollen.).

Grüße

Vivien

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: 17. Aug. 2012 10:43    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 VivienJ 10 Unities + Antwort hilfreich

Servus
Also klappt die Zeile mit designTabel1 = ... ?
Wie kommst du auf "SheetRow"? Wo ist Sheetrow defniert? Es müsste zB "designTable1.Configuration = 5" heißen.
Hast du nach dem ändern der Konfiguration auch das Part aktualisiert?

Gruß
Bernd

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

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

VivienJ
Mitglied
Student

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

Beiträge: 8
Registriert: 23.07.2012

Python 2.7.2
CATIA V5R21

erstellt am: 17. Aug. 2012 10:53    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

Jungs,

ich schäme mich zutiefst und entschuldige mich, dass ich eure kostbare Zeit in anspruch genommen habe. Anfänglich habe ich noch mit einer Excel-Tabelle und nicht ner .txt gearbeitet und das hat nicht funktioniert, somit habe ich "logisch" geschlußfolgert, dass es mit ner .txt für die Parameter auch nicht klappen würde, aber oh wunder, meine Parameter ändern sich!

Ich wünsche euch ein schönes Wochenede und danke euch vielmals für die ZEit, die ihr euch genommen habt!

Grüße

Vivien

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 19. Aug. 2012 08:52    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 VivienJ 10 Unities + Antwort hilfreich

Hallo zusammen,

Das Thema hat sich ja geklärt ABER ich habe noch eine Anmerkung zur Sache:

Gerade für alle Programmierer welche aus einer externen IDE auf Catia zugreifen möchten empfiehlt es sich den reinen Catia Code zunächst mittels VBA direkt in Catia zu entwickeln. Hierbei hat man den Vorteil des Watch-Fensters und der Hilfe (mittels F1) sowie die integrierte Autovervollständigung. Auch das Debuggen ist einfacher weil man sich zunächst nur auf den Kern des Programms konzentriert. Steht der VBA-Code kann man diesen in jede beliebigen Sprache "übersetzten". Gerade bei unerfahrenen Programmierern bringt dies einen deutlichen Zeitvorteil und eine Anhäufung von Wissen für zukünftige Projekte.

In dem Sinne wünsche ich einen schönen Sonntag!

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

VivienJ
Mitglied
Student

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

Beiträge: 8
Registriert: 23.07.2012

Python 2.7.2
CATIA V5R21

erstellt am: 21. Aug. 2012 08:28    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 Daniel,

danke für den Hinweis, ich habe es mir eigentlich noch leichter gemacht, ich habe ein Makro erstellt, von den Vorgängen die ich haben wollte und dann habe ich dieses einfach übersetzt. Das Problem war einfach nur, dass ich anfänglich mit EXCEL gearbeitet habe und nicht mit .txt files.

Danke und Grüße

Vivien

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