Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameter im Makro als Länge zuweisen

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:  Parameter im Makro als Länge zuweisen (1070 mal gelesen)
Schippi
Mitglied
Diplomand

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

Beiträge: 2
Registriert: 31.03.2008

erstellt am: 31. Mrz. 2008 09:59    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 alle zusammen,

bin neu hier, habe aber natürlich eine Frage und hoffe jemand kann mir helfen.

Ich möchte mit einem Makro einen bestehenden Parameter einlesen und bei einem Translate, den das Makro ausführt, als Wert (length) benutzen. Das Makro findet auch den Parameter, nur sobald ich den Parameter als Wert angeben möchte kommt die Fehlermeldung "Typenunverträglichkeit".

Ich hänge ´mal den Quellcode an. Vielleicht kann mir ja jemand helfen.

(...)


Dim Params As Parameters
Set Params = CATIA.ActiveDocument.Part.Parameters
Dim Abstand_Achse_Horizontal As Parameter
Set Abstand_Achse_Horizontal = Params.Item("Abstand_Achse_Horizontal")

Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridShapeFactory1 As Factory
Set hybridShapeFactory1 = part1.HybridShapeFactory

Dim axisSystems1 As AxisSystems
Set axisSystems1 = part1.AxisSystems

Dim axisSystem1 As AxisSystem
Set axisSystem1 = axisSystems1.Item("Origin")

Dim reference1 As Reference
Set reference1 = part1.CreateReferenceFromBRepName("RSur Face Brp AxisSystem.2;1);None );Cf11 ));WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)", axisSystem1)

Dim hybridShapeDirection1 As HybridShapeDirection
Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirection(reference1)

Dim hybridShapeTranslate1 As HybridShapeTranslate
Set hybridShapeTranslate1 = hybridShapeFactory1.AddNewEmptyTranslate()

Dim bodies1 As Bodies
Set bodies1 = part1.Bodies

Dim body1 As Body
Set body1 = bodies1.Item("PartBody")

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = body1.HybridBodies

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

Dim hybridShapes1 As HybridShapes
Set hybridShapes1 = hybridBody1.HybridShapes

Dim hybridShapePointCoord1 As HybridShape
Set hybridShapePointCoord1 = hybridShapes1.Item("Part_Origin")

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

hybridShapeTranslate1.ElemToTranslate = reference2

hybridShapeTranslate1.VectorType = 0

hybridShapeTranslate1.DistanceValue = Abstand_Achse_Horizontal

hybridShapeTranslate1.VolumeResult = False

Dim hybridBodies2 As HybridBodies
Set hybridBodies2 = hybridBody1.HybridBodies

Dim hybridBody2 As HybridBody
Set hybridBody2 = hybridBodies2.Item("Horizontal")

hybridBody2.AppendHybridShape hybridShapeTranslate1

part1.InWorkObject = hybridShapeTranslate1

part1.Update

End Sub


Danke im voraus

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 31. Mrz. 2008 20:37    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 Schippi 10 Unities + Antwort hilfreich

Hallo Schippi,

willkommen im Forum!

Da die Zeile mit dem Parameter nicht funktioniert ist aus meiner Sicht klar: Du versuchst einer Variable vom Typ "Double" einen Parameter, also einen Wert vom Typ "Length" zuzuweisen. Das kann so nicht funktionieren, denke ich!
Ich habe so etwas selbst noch nicht probiert, doch theoretisch müsste es mit "CDbl()" funktionieren. Also könnte Deine Zeile lauten:

Code:
hybridShapeTranslate1.DistanceValue = CDbl(Abstand_Achse_Horizontal)
oder
Code:
hybridShapeTranslate1.DistanceValue = CDbl(Abstand_Achse_Horizontal.ValueAsString)
Allerdings kann ich leider keine Garantie geben, wie gesagt, ich habe so etwas auch noch nicht gebraucht und daher noch nicht getestet.


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

Schippi
Mitglied
Diplomand

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

Beiträge: 2
Registriert: 31.03.2008

erstellt am: 01. Apr. 2008 07: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

Hallo Leute, bin nach schlafloser Nacht sebst ´drauf gekommen. Falls jemand ´mal ein ähnliches Problem hat, kommt hier der Code der geht:

Dim Params As Parameters
Set Params = CATIA.ActiveDocument.Part.Parameters
Dim Abstand_Achse_Horizontal As Parameters
Set Abstand_Achse_Horizontal = Params.Item("Abstand_Achse_Horizontal")    !!!!!!
Laenge = Abstand_Achse_Horizontal.Value    !!!!!!!!!

Dim hybridShapePointCoord1 As HybridShape
Set hybridShapePointCoord1 = hybridShapes1.Item("Part_Origin")

(...)


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

hybridShapeTranslate1.ElemToTranslate = reference2

hybridShapeTranslate1.VectorType = 0

hybridShapeTranslate1.DistanceValue = Laenge    !!!!!!!!

hybridShapeTranslate1.VolumeResult = False

Dim hybridBodies2 As HybridBodies
Set hybridBodies2 = hybridBody1.HybridBodies

Dim hybridBody2 As HybridBody
Set hybridBody2 = hybridBodies2.Item("Horizontal")

hybridBody2.AppendHybridShape hybridShapeTranslate1

part1.InWorkObject = hybridShapeTranslate1

Der Kniff liegt darin den bestehenden Parameter erst vom Makro finden zu lassen, dann den Wert zu übernehmen und als Variable an den Translate weiterzureichen.


Gruß Schippi

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