Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Bohrung erstellen

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:  Bohrung erstellen (2231 mal gelesen)
Sk89
Mitglied
Studentin


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

Beiträge: 29
Registriert: 19.05.2010

Windows XP x64
CATIA V5 R19
VBA 6.5
VB

erstellt am: 13. Jul. 2010 12:47    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


untitled.JPG

 
Hallo

Ich möchte gerne eine Bohrung mit Hilfe eines Makros erstellen. Zuerst soll der Sketch erzeugt werden und auf diesem Sketch soll die Bohrung erstellt werden. Dazu muss ich 3 Ebenen in einer bestimmten Reihenfolge aussuchen um die Bohrung zu positionieren. Der Abstand von einer Kante ist immer gleich.
Die Skizze der Bohrung soll auf die 3. Ebene. Von der Ebene 1 und der Ebene 2 soll jeweils ein Maß zum Punkt gesetzt werden.
Für das bessere Verständnis habe ich ein Bild angehängt.

Die 3 Ebenen wähle ich mit

Code:
Dim was(0)

was(0) = "Face"
Dim Asd
Dim Asd2
Dim Asd3

Dim usersel As Object
Set usersel = CATIA.ActiveDocument.Selection

    usersel.Clear
    Asd = usersel.SelectElement2(was, "Selektieren 1!", True)
    Set face1 = usersel.Item(1).Value
    If face1.Name <> "" Then
    Label17.ForeColor = &H8000&
    End If
   
    usersel.Clear
    Asd2 = usersel.SelectElement2(was, "Selektieren 2!", True)
    Set face2 = usersel.Item(1).Value
    If face2.Name <> "" Then
    Label16.ForeColor = &H8000&
    End If
   
    usersel.Clear
    Asd3 = usersel.SelectElement2(was, "Selektieren 3!", True)
    Set face3 = usersel.Item(1).Value
    usersel.Clear
    If face3.Name <> "" Then
    Label15.ForeColor = &H8000&
    End If


aus, indem ich auf den Auswahl-Button klicke.

Hierbei bekomme ich aber nur die Ebene mit RSur ausgegeben

Code:
Selection_RSur:(Face:(Brp:(Pad.2;0:(Brp:(Sketch.6;3)));None:();Cf11:());Assemble.26_ResultOUT;Z0;G3243)")

Ich habe das Programm mal aufgenommen und da bekomme ich für die Referenz die die Intersection bildet FSur  und nicht RSur.
Hier ist mein Makro.


Code:
Sub SketchMakro1()

Set BT = CATIA.ActiveDocument.Part

Set body1 = BT.Bodies.Item("Gewinde")

Set sketches1 = body1.Sketches

'Set reference1 = Bauteil.CreateReferenceFromName(face3)

Set sketch1 = sketches1.Add(Flaeche3)

'Set sketch1 = Bohrungeins.Sketch

Dim arrayOfVariantOfDouble1(8)

arrayOfVariantOfDouble1(0) = 0#
arrayOfVariantOfDouble1(1) = 0#
arrayOfVariantOfDouble1(2) = 0#
arrayOfVariantOfDouble1(3) = 0#
arrayOfVariantOfDouble1(4) = 0#
arrayOfVariantOfDouble1(5) = 0#
arrayOfVariantOfDouble1(6) = 0#
arrayOfVariantOfDouble1(7) = 0#
arrayOfVariantOfDouble1(8) = 0#

sketch1.SetAbsoluteAxisData arrayOfVariantOfDouble1

BT.InWorkObject = sketch1

Set factory2D1 = sketch1.OpenEdition()

Set geometricElements1 = sketch1.GeometricElements

Set axis2D1 = geometricElements1.Item("AbsoluteAxis")

Set line2D1 = axis2D1.GetItem("HDirection")

line2D1.ReportName = 1

Set line2D2 = axis2D1.GetItem("VDirection")

line2D2.ReportName = 2

Set point2D1 = factory2D1.CreatePoint(10, 10)

point2D1.ReportName = 3

point2D1.Construction = False

Dim body2 As Body
Set body2 = BT.Bodies.Item("Funktionsteil")

Dim shapes1 As Shapes
Set shapes1 = body2.Shapes

Dim pad1 As Pad
Set pad1 = shapes1.Item(1)

Dim reference2 As Reference
Set reference2 = BT.CreateReferenceFromBRepName("FSur:(Face:(Brp:(Pad.2;2);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithInitialFeatureSupport;MonoFond;MFBRepVersion_CXR15)", pad1)

Dim geometricElements2 As GeometricElements
Set geometricElements2 = factory2D1.CreateIntersections(reference2)

Dim geometry2D1 As Geometry2D
Set geometry2D1 = geometricElements2.Item("Mark.1")

geometry2D1.Construction = True

Dim constraints1 As Constraints
Set constraints1 = sketch1.Constraints

Dim reference3 As Reference
Set reference3 = BT.CreateReferenceFromObject(point2D1)

Dim reference4 As Reference
Set reference4 = BT.CreateReferenceFromObject(geometry2D1)

Dim constraint1 As Constraint
Set constraint1 = constraints1.AddBiEltCst(catCstTypeDistance, reference3, reference4)

constraint1.Mode = catCstModeDrivingDimension

Dim length1 As Length
Set length1 = constraint1.Dimension

length1.Value = A

Dim reference5 As Reference
Set reference5 = part1.CreateReferenceFromBRepName("FSur:(Face:(Brp:(Pad.2;0:(Brp:(Sketch.6;2)));None:();Cf11:());WithPermanentBody;WithoutBuildError;WithInitialFeatureSupport;MonoFond;MFBRepVersio n_CXR15)", pad1)

Dim geometricElements3 As GeometricElements
Set geometricElements3 = factory2D1.CreateIntersections(reference5)

Dim geometry2D2 As Geometry2D
Set geometry2D2 = geometricElements3.Item("Mark.1")

geometry2D2.Construction = True

Dim reference6 As Reference
Set reference6 = part1.CreateReferenceFromObject(point2D1)

Dim reference7 As Reference
Set reference7 = part1.CreateReferenceFromObject(geometry2D2)

Dim constraint2 As Constraint
Set constraint2 = constraints1.AddBiEltCst(catCstTypeDistance, reference6, reference7)

constraint2.Mode = catCstModeDrivingDimension

Dim length2 As Length
Set length2 = constraint2.Dimension

length2.Value = C

sketch1.CloseEdition

part1.InWorkObject = body1

part1.Update


Wie kann ich die Referenzen 2 und 5 ausdrücken, dass sie abhängig von den ausgewählten Ebenen sind.

Ich hab erst angefangen mit VBA zu arbeiten, ich hoffe ihr könnt mir weiterhelfen.

Lg Steffi

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: 13. Jul. 2010 12:55    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 Sk89 10 Unities + Antwort hilfreich

Servus
Nur zu Info (falls nicht bekannt):
Falls die KT1 Lizenz vorhanden ist könntest du dir die Programmierung sparen und die Bohrung über eine PowerCopy erstellen.

Gruß
Bernd

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

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



Projektleiter/in Haustechnik (m/w/d)

Wir, die Lusebrink GmbH & Co. KG, sind ein erfolgreiches Familienunternehmen in zweiter Generation, das seit über 40 Jahren im Bereich der Gebäudetechnik tätig ist. Als Experte für Komplettlösungen rund um gebäudetechnische Anlagen sind wir stolz auf unsere enge Zusammenarbeit mit unseren Kunden. Unsere Planung erfolgt mit moderner CAD-Technik und viele Bauteile werden in unserer eigenen Werkstatt gefertigt....

Anzeige ansehenProjektmanagement
Sk89
Mitglied
Studentin


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

Beiträge: 29
Registriert: 19.05.2010

Windows XP x64
CATIA V5 R19
VBA 6.5
VB

erstellt am: 13. Jul. 2010 13: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

Ich brauch es für 2 Projekte in denen die Bodystruktur unterschiedlich ist.
Ich habe in der einen Struktur ein Body und in der anderen ein Body mit mehreren Bodies drunter. Um nicht für jede Struktur neue Powercopies zu erstellen, will ich es mit einem Makro probieren.

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