Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Referenz zuweisung

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:  Referenz zuweisung (1034 mal gelesen)
Burrows
Mitglied



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

Beiträge: 10
Registriert: 23.02.2012

Catia V5 R19

erstellt am: 23. Feb. 2012 09: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, ich bin ein Newbie in sachen Makkroschrieben.
Ich will auf einen Curve die ich Selektieren und einen Punkt den ich erstmal auch selectieren (die such funktion ist mir jetzt noch zu schwer) Zwei Punkte generieren lassen und Kreis erstellen lassen.


Aber ich hänge schon bei der Reference. Ich müsste die Userselection weiter geben aber das funktioniert nicht... Vielleicht kann mir jemand helfen.

Ich hab schon das ganze forum durchsucht, hab aber nix ähnliches gefunden...

Sub CATMain()

'#######################


Dim Document1 As Document
Set Document1 = CATIA.ActiveDocument

Dim oSelection, oSelectedElement, oDoc, oInstance, oRef, ECurve, EPoint  As Object

Dim part1 As Part
Set part1 = Document1.Part

Dim parameters1 As Parameters
Set parameters1 = part1.Parameters


Dim hybridShapeFactory1 As Factory
Set hybridShapeFactory1 = part1.HybridShapeFactory


'#########################

' Auswahl festlegen -----------------------------------------------

MsgBox ("Curve selektieren!!!!!!")

Dim InputObjectType(0)
InputObjectType(0) = "AnyObject"

' Selektion definieren und leeren ---------------------------------
  Set oSelection = CATIA.ActiveDocument.Selection
oSelection.Clear

' Selektion vornehmen lassen --------------------------------------

  ECurve = oSelection.SelectElement2(InputObjectType, "Curve", false)

Dim Ref1 As Reference
    Set Ref1 = oSelection.Item2(1).Reference
  oSelection.Clear


MsgBox ("Punkt selektieren!!!!!!")


  EPoint = oSelection.SelectElement2(InputObjectType, "Point", false)

Dim Ref2 As Reference
    Set Ref2 =  oSelection.Item2(1).Reference
  oSelection.Clear

'#######################################

Dim hybridShapeCurveExplicit1 As Parameter
Set hybridShapeCurveExplicit1 = Ref1

Dim reference1 As Reference
Set reference1 = part1.CreateReferenceFromObject(hybridShapeCurveExplicit1)'Hier Kommt immer einen Fehlermeldung

Dim parameters2 As Parameters
Set parameters2 = part1.Parameters

Dim hybridShapePointExplicit1 As Parameter
Set hybridShapePointExplicit1 = Ref2

Dim reference2 As Reference
Set reference2 = part1.CreateReferenceFromObject(hybridShapePointExplicit1)

'#################################


Dim hybridShapePointOnCurve1 As HybridShapePointOnCurve
Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference1, reference2, 7.500000, False)

hybridShapePointOnCurve1.DistanceType = 1

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies

Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("Geometrical Set.1")

hybridBody1.AppendHybridShape hybridShapePointOnCurve1

part1.InWorkObject = hybridShapePointOnCurve1

part1.Update

Set partDocument1 = CATIA.ActiveDocument

Dim selection1 As Selection
Set selection1 = partDocument1.Selection

selection1.Clear

selection1.Add hybridShapePointOnCurve1

selection1.Copy

Set partDocument1 = CATIA.ActiveDocument

Dim selection2 As Selection
Set selection2 = partDocument1.Selection

selection2.Clear

selection2.Add hybridBody1

selection2.Paste

Dim reference3 As Reference
Set reference3 = part1.CreateReferenceFromObject(hybridShapeCurveExplicit1)

Dim reference4 As Reference
Set reference4 = part1.CreateReferenceFromObject(hybridShapePointExplicit1)

Dim hybridShapePointOnCurve2 As HybridShapePointOnCurve
Set hybridShapePointOnCurve2 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference3, reference4, -7.500000, False)

End Sub

[Diese Nachricht wurde von Burrows am 23. Feb. 2012 editiert.]

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 23. Feb. 2012 09: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 Nur für Burrows 10 Unities + Antwort hilfreich

Moin,
ens vorweg: Bei der Festlegung von InputObjectType nicht "AnyObject" verwenden. Damit kann der User ALLES anklicken - auch Vertex oder BREPS, welche bestimmt keine Kurven sind.
Von daher musst du den Objecttyp eindeutig festlegen; nur so kannst du sicher sein dass auch wirklich eine Kurve oder Punkt angeklickt wird und kein BREP. Bei letzteren wird keine Reference ausgegeben, was auch die Lösung deines Problems sein könnte.
Kontrolliere im Debug-Modus ob wirklich nach der Selektion eine Reference vorliegt bevor du diese an die Funktion weiter gibst.

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Kochbuch - CATIA V5 automatisieren

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

Burrows
Mitglied



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

Beiträge: 10
Registriert: 23.02.2012

Catia V5 R19

erstellt am: 23. Feb. 2012 09: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

Super Vielen Dank.

Hab einfach HybridShape verwendet für AnyObject.
dann funktioniert es.

Danke nochmals

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: 23. Feb. 2012 09:25    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 Burrows 10 Unities + Antwort hilfreich

Servus
Du hast doch schon aus der Selektion die Referenz ausgelesen (und nicht da Objekt), deshalb brauchst du das CreatReferenceFromObject nicht mehr.
Versuch mal folgende Änderung:
Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(ref1, ref2, 7.500000, False)

Gruß
Bernd

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

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