Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Punkt selektieren und als Referenz weitergeben

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:  Punkt selektieren und als Referenz weitergeben (1792 mal gelesen)
dabaeda
Mitglied



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

Beiträge: 15
Registriert: 05.03.2007

Catia V5 R14 SP5 Build 14 Hot Fix 35

erstellt am: 18. Apr. 2007 11:41    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,

als Anfänger im Programmieren, wollte ich zunächst einmal folgendes Problem lösen: Benutzer soll Punkt selektieren, dieser soll dann als Referenz für eine Ebene dienen.

Nun habe ich folgendes programmiert:

Sub CATMain()
'3D-Werkzeugkasten deklarieren-----------------------------
Dim MeinPart as Part
set MeinPart=CATIA.ActiveDocument.Part
Dim Wzk3D as HybridshapeFactory
Set Wzk3D=MeinPart.HybridShapeFactory

'Geöffneten Körper deklarien------------------------------
dim Hbody as hybridbody
set Hbody=MeinPart.Hybridbodies.item ("Ebenen")

'Auswahl festlegen----------------------------------------
dim was(1)
was(0)="Point"
was(1) ="HybridShapeIntersection"

'Selektion definieren und leeren--------------------------
dim usersel as selection
set usersel=catia.activedocument.selection
usersel.clear

'Selektion vornehmen lassen-------------------------------
dim Auswahlpunkt as catbstr
Auswahlpunkt = usersel.SelectElement (Was, "Punkt wählen.", false)
if Status="normal" then
msgbox(usersel.item(1).value.name)
else
msgbox("Abbruch")  'Hier steckt ein Fehler
end if

'Selektion freigeben--------------------------------------
usersel.endselectelement


'Referenz erzeugen----- Hier steckt ein Fehler
dim RefP as Reference
set RefP=MeinPart.Createreferencefromobject (Auswahlpunkt)

'Punkt dem geöffneten Körper zuweisen---------------------
Hbody.appendhybridshape Punkt

'Ebene vordefinieren--------------------------------------
Dim ebene1
set ebene1=Hbody.HybridShapes.Item("Ebene.1")
dim RefE as Reference
set RefE = MeinPart.CreateReferenceFromObject(ebene1)
dim eben2 as hybridshapeplaneoffsetpt
set ebene2=Wzk3D.addnewplaneoffsetpt (RefE, RefP)

'Ebene dem geöffneten Körper zuweisen---------------------
Hbody.appendhybridshape Ebene2

usersel.clear

MeinPart.Update

End Sub


Nun treten folgende Probleme auf:

-ich bekomme ein Ausgabefenster mit "Abbruch", obwohl ich beim selektieren einen Punkt gewählt habe

-unter 'Referenz erzeugen (Zeile 37 folgende Fehlermeldung:
Source: Laufzeitfehler in MS VBS
Descrition: Typen unverträglich: 'MeinPart.Createreferencefromobject'
Line: 37
Column: 0

Klingt für mich, als könnte mein selektierter Punkt nicht als Referenz ausgegeben werden.

Ich weiß, der Code ist etwas unübersichtlich, aber vielleicht kann mir jmd zu diesen Problemen helfen.
Ausgeführt wurde das Programm als CATScript unter V5.14 Sp5 Build 14

Vielen Dank im Voraus!

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

Legat
Mitglied



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

Beiträge: 30
Registriert: 18.05.2006

erstellt am: 18. Apr. 2007 12:31    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 dabaeda 10 Unities + Antwort hilfreich

Hallo dabaeda,

dein Fehler steckt hier:

'#####
Auswahlpunkt = usersel.SelectElement (Was, "Punkt wählen.", false)
if Status="normal" then
'#####

entweder musst du sagen : if Auswahlpunkt = "normal" then
oder Status = usersel.SelectElement (Was, "Punkt wählen.", false)

Denke ich zumindest auf die schnelle!

Gruß Legat

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

Legat
Mitglied



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

Beiträge: 30
Registriert: 18.05.2006

erstellt am: 18. Apr. 2007 12:33    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 dabaeda 10 Unities + Antwort hilfreich

Hallo dabaeda,

und auf deine Reference:

Du solltest noch folgendes schreiben:

set Auswahlpunkt = usersel.item(1).value

vor:
usersel.endselectelement

Gruß Legat

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

dabaeda
Mitglied



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

Beiträge: 15
Registriert: 05.03.2007

Catia V5 R14 SP5 Build 14 Hot Fix 35

erstellt am: 20. Apr. 2007 09: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

Danke für die schnelle Antwort.

Das Problem mit "Abbruch" ist immer noch da  , aber das Makro funktioniert ansonsten einwandfrei. 

Der Code sieht mitlerweile so aus:

#####

'Selektion vornehmen lassen-------------------------------
dim Auswahlpunkt as catbstr
Auswahlpunkt = usersel.SelectElement (Was, "Punkt wählen.", true)
if Auswahlpunkt="normal" then
msgbox(usersel.item(1).value.name)
else
msgbox("Abbruch")  'Hier steckt ein Fehler 
end if

'Punkt zuweisen-------------------------------------------
set Auswahlpunkt = usersel.item(1).value

#####

Woran könnte es liegen, dass die Msgbox mit "Abbruch" kommt?

Gruß
Dabaeda

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

Paic37
Mitglied


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

Beiträge: 5
Registriert: 04.04.2007

erstellt am: 20. Apr. 2007 09: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 Nur für dabaeda 10 Unities + Antwort hilfreich

Hallo dabaeda,

Probier mal mit diesen Linien:

Auswahlpunkt = usersel.SelectElement2 (Was, "Punkt wählen.", true)
if Auswahlpunkt="Normal" then

statt:

Auswahlpunkt = usersel.SelectElement (Was, "Punkt wählen.", true)
if Auswahlpunkt="normal" then

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

dabaeda
Mitglied



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

Beiträge: 15
Registriert: 05.03.2007

Catia V5 R14 SP5 Build 14 Hot Fix 35

erstellt am: 20. Apr. 2007 11:00    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 Tip.

Die Lösung war: 

Zitat:
if Auswahlpunkt="Normal" then

Scheinbar, wird bei einigen Befehlen auf Groß- und Kleinschreibung geachtet.

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