Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Achse zu Achse Makro

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:  Achse zu Achse Makro (962 mal gelesen)
olleiCAD
Mitglied



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

Beiträge: 57
Registriert: 24.04.2018

Catia V5 R29 SP3 | Windows 10 Pro

erstellt am: 18. Jun. 2019 08: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

Hallo zusammen,
ich will ein Makro erstellen, welches mit mehrere Referenzkörper kopiert, mit Verknüpfung einfügt und dann von einer Referenzachse auf X Zielachsen hinschiebt. Sozusagen also werden die Referenzkörper auf verschiedene Achsen verteilt. Nun meine Frage: Mein Referenzkörper wird kopiert und mit Verknüpfung eingefügt, aber wie spreche ich jetzt diese zwei eingefügten Körper im weiteren Verlauf an?

Danke für eure Hilfe.

Code:

Sub CATMain()


Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim selBody As String 
Dim selRefAXS As String
Dim ZielAXS As String

Dim shapeFactory1 As ShapeFactory  'solids
Set shapeFactory1 = part1.ShapeFactory

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies

Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = part1.HybridShapeFactory

Dim hybridBody1 As HybridBody

Dim UserSelection As Object
Set UserSelection = partDocument1.Selection
UserSelection.clear


'--- Körper auswählen

Dim BodyFilter()
ReDim BodyFilter(0)
BodyFilter(0) = "Body"

selBody = UserSelection.SelectElement3(BodyFilter, "Referenzkörper auswählen", False, CATMultiSelTriggWhenUserValidatesSelection, True)

If selBody = "Normal" Then

Dim BodyArray()
ReDim BodyArray(UserSelection.Count)

For a = 1 to UserSelection.Count
  Set BodyArray(a) = UserSelection.Item(a).Value
Next


Else
    MsgBox ("Fehler falsche Auswahl - Bitte Körper wählen")
End If
UserSelection.clear

'--- RefAxs auswählen

Dim AXSFilter()
ReDim AXSFilter(0)
AXSFilter(0) = "AxisSystem"

selRefAXS = UserSelection.SelectElement2 (AXSFilter, "Referenz Achse auswählen", False)

If selRefAXS = "Normal" Then

Dim RefAXSArray()
ReDim RefAXSArray(UserSelection.Count)

For b = 1 to UserSelection.Count
  Set RefAXSArray(b) = UserSelection.Item(b).Value
Next


Else
    MsgBox ("Fehler falsche Auswahl - Bitte Achse wählen")
End If
UserSelection.clear

'--- ZielAxs auswählen

ZielAXS = UserSelection.SelectElement3(AXSFilter, "Ziel Achse(n) auswählen", False, CATMultiSelTriggWhenUserValidatesSelection, True)

If ZielAXS = "Normal" Then

Dim ZielAXSArray()
ReDim ZielAXSArray(UserSelection.Count)

For c = 1 to UserSelection.Count
  Set ZielAXSArray(c) = UserSelection.Item(c).Value
Next


Else
    MsgBox ("Fehler falsche Auswahl - Bitte Achse wählen")
End If
UserSelection.clear

'--- Methode

For d = 1 to UBound(ZielAXSArray)
For e = 1 to Ubound(BodyArray)
UserSelection.add BodyArray(e)
UserSelection.copy
UserSelection.PasteSpecial "CATPrtResult"
UserSelection.Clear
Next

Next


end sub


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: 18. Jun. 2019 17: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 olleiCAD 10 Unities + Antwort hilfreich

Servus

Der eingefügte Körper sollte der letzte in der Bodies-Collection sein:

Code:
Set oCopiedBody = part1.Bodies.Item(part1.Bodies.count)
Gruß
Bernd

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

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

olleiCAD
Mitglied



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

Beiträge: 57
Registriert: 24.04.2018

Catia V5 R29 SP3 | Windows 10 Pro

erstellt am: 19. Jun. 2019 10:01    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 den Denkanstoß, läuft.

Habts mit

Code:
Set ATA = objShapeFactory.AddNewAxisToAxis2 (RefAXSArray(1), ZielAXSArray(d))

hinbekommen

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