Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Rotationsachse

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:  Rotationsachse (2580 mal gelesen)
Scipio
Mitglied
Student

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

Beiträge: 6
Registriert: 06.05.2010

erstellt am: 10. Mai. 2010 14:03    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 liebe cad gemeinde  

versuch mich gerade mit Catia-Makro Programmierung(VBSCRIPT).
In meinem Makro kopiere ich ein Geometrisches Set von einem Produkt in ein anderes dabei geht die Referenz der Rotationsachse einer Ebene verloren. Wie kann ich diese neu vergeben. Bzw Den Benutzer eine Achse auswählen lassen und diese dan als Rotationsachse definieren.

wär klasse wenn mir jemand weiter helfen könnte   hab beim durchstöbern des Forums leider noch nix gefunden.

Language="VBSCRIPT"

Sub CATMain()
'//////////////////////////////////AS-Skelett auswählen
Dim Was4(0)
Was4(0) = "AnyObject"
Set UserSel = CATIA.ActiveDocument.Selection
UserSel.Clear
ASSK = UserSel.SelectElement2(Was4, "Bitte Selektieren sie das AS-Skelett des neuen Produkts", False)
Set ASSK = UserSel.Item(1).Value
DIM ASSKname
ASSKName = CStr(ASSK.Name & ".CATPart")


'///////////////////////////////////Ebene auswählen
Dim Was8(0)
Was8(0) = "AnyObject"
Set UserSel = CATIA.ActiveDocument.Selection
UserSel.Clear
Winkel = UserSel.SelectElement2(Was8, "Bitte Selektieren sie die Winkel-Richtung-Oben_Unten-Ebene.", False)
Set Winkel= UserSel.Item(1).Value
Dim WinkelName
WinkelName = Winkel.Name

'/////////////////////////////////////////Rotationsachse auswählen
Dim Was9(0)
Was9(0) = "AnyObject"
Set UserSel = CATIA.ActiveDocument.Selection
UserSel.Clear
Rotationsachse = UserSel.SelectElement2(Was9, "Bitte Selektieren sie die Rotationsachse.", False)
Set Rotationsachse = UserSel.Item(1).Value
Dim RotationsachseName
RotationsachseName =Rotationsachse.Name

Set documents1 = CATIA.Documents

Set partDocument1 = documents1.Item(ASSKName)

Set part1 = partDocument1.Part

Set originElements1 = part1.OriginElements

Set hybridShapePlaneExplicit1 = originElements1.PlaneZX

Set reference1 = part1.CreateReferenceFromObject(hybridShapePlaneExplicit1)

Set hybridBodies1 = part1.HybridBodies

Set hybridBody1 = hybridBodies1.Item("Schieber_links")

Set hybridShapes1 = hybridBody1.HybridShapes

Set hybridShapeLineExplicit1 = hybridShapes1.Item(Rotationsachse) ' hier zeigt er mir immer einen Fehler auf   ;(

Set reference2 = part1.CreateReferenceFromObject(hybridShapeLineExplicit1)

Set hybridShapeFactory1 = part1.HybridShapeFactory

Set hybridShapePlaneAngle1 = hybridShapeFactory1.AddNewPlaneAngle(reference1, reference2, 0.000000, False)

hybridShapePlaneAngle1.ProjectionMode = False

hybridBody1.AppendHybridShape hybridShapePlaneAngle1

part1.InWorkObject = hybridShapePlaneAngle1

part1.Update

End Sub

[Diese Nachricht wurde von Scipio am 10. Mai. 2010 editiert.]

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: 10. Mai. 2010 15:24    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 Scipio 10 Unities + Antwort hilfreich

Die Zeile ist auch redundant.
Kannst direkt
Set reference2 = part1.CreateReferenceFromObject(Rotationsachse)
machen.

Aber interessanterweise wollte ich grad ein ähnliches Thema einstellen:
Frage ist ob's eine Möglichkeit gibt diesen Linkverlust zu vermeiden, wenn ich bei Cut & Paste im selben part bleibe, also dass der Link nur auf den Namen geht und ein objekt mit dem Namen ist ja weiterhin vorhanden.

------------------
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

Scipio
Mitglied
Student

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

Beiträge: 6
Registriert: 06.05.2010

erstellt am: 11. Mai. 2010 11:17    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

erstmal danke Hoblila 

hattest recht mit der zeile, mein Problem ist jetzt nur das das skript eine neue Ebene erzeugt
was durch diese Zeile passiert oder?
Set hybridShapePlaneAngle1 = hybridShapeFactory1.AddNewPlaneAngle(reference1, reference2, 0.000000, False)

ich würd die ebene ja einfach umbennen und die Alte löschen aber an der Ebene hängen verschiedene weitere Skizzen und Ebenen.

gibts für diesen AddnePlaneAngle einen anderern Befehl der die Ebene nur ersetzt?

wär klasse wenn mir jemand helfen kann 
gruß julian

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: 11. Mai. 2010 12:05    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 Scipio 10 Unities + Antwort hilfreich

Du machst doch garnichts mit der Plane, also bruachst Du die auch nicht erezugen.
Oder sehe ich das falsch?

------------------
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

Scipio
Mitglied
Student

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

Beiträge: 6
Registriert: 06.05.2010

erstellt am: 11. Mai. 2010 12:20    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 möchte nur die Rotationsachse dieser Ebene ändern
aber irgendwie bekomm ich das nicht gebacken stehe glaub total auf dem Schlauch. :/

zum Hintergrund nachdem Kopieren des geometrischen Sets verliert die Ebene die Rotationsachse und ein Aktualisierungsfenster geht auf wo beschrieben wird das ich die Rotationsachse neu vergeben muss da ich ja aber wärhend meines MAkros nicht in die Ebenendefinition eingreifen kann möchte ich die Rotationsachse im Makro neu vergeben.

hoff so ist mein Problem besser dargestellt.

gruß julian

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

Chrisma
Mitglied
Ingenieur


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

Beiträge: 85
Registriert: 29.03.2010

Solid Works 2013 Professional
Win7 SP1
Intel Xeon 2,67GHz
12GB Ram

erstellt am: 11. Mai. 2010 17: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 Scipio 10 Unities + Antwort hilfreich

Servus, ich habe keine Antwort aber ein ähnliches Problem. Bei mir geht es um die Reference eines bestehenden Punktes. Was ich bisher kann ist einen Punkt erzeugen und seine Referenze ändern. Wie aber bekomme ich den Punkt ins VB um dann seine Reference zu ändern. Man muss ihn erstmal defienieren als Hybridshapepointcoord. So weit bin ich. Aber woher weiß VB dann welchen Punkt ich meine. Wenn man ein Makro aufzeichnet, in dem man den vorhandenen Punkt manipuliert, dann erzeugt dieses Makro auch einen neuen Punkt.

Das gleiche gilt ja für die Ebene und die Achse. Wenn man eine Ebene erstellt dann müsste der Befehl zur Änderung sowas wie:

Code:
Dim reference1 As Reference
Set reference1 = part1.CreateReferenceFromObject(DeineAchse)

DeineEbene.PtRef = reference1


Aber wie gesagt, ich bekomms auch nicht hin. Hoffentlich weiß wer was.

------------------
Hihihi, lol, hihihi 

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

Scipio
Mitglied
Student

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

Beiträge: 6
Registriert: 06.05.2010

erstellt am: 12. Mai. 2010 13:09    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

hi chrisma,

hab das bei mir jetzt hinbekommen. weis nur nicht ob dir das was hilft 

Set partDocument1 = documents1.Item(ASSKName2) 'mein übergeordnetes Part

Set part1 = partDocument1.Part

Dim reference1
Set reference1 = part1.CreateReferenceFromName(NameXYZ)'NameXYZ name der Achse
Winkel.RevolAxis = Reference1

danach einfach noch ein update einbauen und es funktioniert 

hoff es hilft dir.
schönen feiertag morgen
gruß julian

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