Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Rohrleitungsmakro will nicht

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Rohrleitungsmakro will nicht (667 mal gelesen)
CADZCHEN
Mitglied
Konstrukteur


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

Beiträge: 204
Registriert: 04.03.2005

erstellt am: 04. Nov. 2006 14:13    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


Screenshot1.gif


Bild2.png


Pipe.txt

 
Halli Hallo !

Ich befinde mich am Anfang der VBA- Programmierung, und habe mir gleich ein Beispiel runtergeladen.

Es geht um ein Makro, dass Rohrleitungen anhand vom Aussendurchmesser, dem Innendurchmesser, und der Länge zu definieren ist.

Natürlich sind Probleme aufgetreten, nur hab ich (meine ich) alles richtig gemacht.

Beim testen schon bekomme ich eine Fehlermeldung, die in meinem Anhang dargestellt ist.

Hat jemand eine Idee, hab ich was übersehen??

Würde mich über Lösungsvorschläge freuen.

CADZCHEN

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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 04. Nov. 2006 17:05    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 CADZCHEN 10 Unities + Antwort hilfreich

Hallo Cadzchen,

Das Codebeispiel hat folgende Probleme:

Die Werte für folgende Variablen sollten wohl aus Eingabefeldern eines GUI's kommen (ich habe mal einfach Werte gesetzt):
CenterRadiusO = 2
CenterRadiusI = 1.5
DistanceExtend = 10


Dim oCompDef As ComponentDefinition
solltest Du in diesem Fall als PartComponentDefinition deklariere:
Dim oCompDef As PartComponentDefinition


Hier ist ein Schreibfehler (oTransGeom und oTrabsGeom):
Dim oTransGeom As TransientGeometry
Set oTrabsGeom = ThisApplication.TransientGeometry


Bei der Extrusion fehlte der Parameter 'kJoinOperation' und die Distanz ist nun die Variable DistanceExtend:
Set Extrusion1 = oCompDef.Features.ExtrudeFeatures.AddByDistanceExtent(Profile, DistanceExtend, kSymmetricExtentDirection, kJoinOperation)


So geht's:

Private Sub CreateButton_Click()

'Define Variables
Dim CenterRadiusO As Double
Dim CenterRadiusI As Double
Dim DistanceExtent As Double

'Set variables from values in edit boxes
CenterRadiusO = 2
CenterRadiusI = 1.5
DistanceExtend = 10

' error message if innererdurchmesser is greater than assendurchmesser

If Innerdiameter > OuterDiameter Then
CreateButton.Enabled = False
MsgBox (" Inner Diameter must be smaller Value than Outer Diameter.")
Exit Sub
End If

'Create new part document
Dim oDoc As PartDocument
Set oDoc = ThisApplication.Documents.Add(kPartDocumentObject)

'Get Component definition from part document
Dim oCompDef As PartComponentDefinition
Set oCompDef = oDoc.ComponentDefinition

'Create a new Sketch on the X-Y Plane

Dim Sketch1 As PlanarSketch
Set Sketch1 = oCompDef.Sketches.Add(oCompDef.WorkPlanes.Item(3))

'Set a referance to the transient geometry objekt.
Dim oTransGeom As TransientGeometry
Set oTransGeom = ThisApplication.TransientGeometry

'Draw Circles on the Sketch
Dim OuterCircle As SketchCircle
Set OuterCircle = Sketch1.SketchCircles.AddByCenterRadius(oTransGeom.CreatePoint2d(0, 0), CenterRadiusO)

Dim InnerCircle As SketchCircle
Set InnerCircle = Sketch1.SketchCircles.AddByCenterRadius(oTransGeom.CreatePoint2d(0, 0), CenterRadiusI)

'Create a profile
Dim Profile As Profile
Set Profile = Sketch1.Profiles.AddForSolid

'Create a solid extrusion
Dim Extrusion1 As ExtrudeFeature
Set Extrusion1 = oCompDef.Features.ExtrudeFeatures.AddByDistanceExtent(Profile, DistanceExtend, kSymmetricExtentDirection, kJoinOperation)

End

End Sub


Bedenke noch eines: in der metrischen Umgebung sind Längeneinheiten in cm - lies dazu das Thema 'UniteOfMeasure' in der API-Hilfe


Hoffe, das hilft.


------------------
Grüsse, Paul

Inventor-Programmierung, Inventor-Tools und Inventor API-Schulung

thinkCAD Web-Kataloge

   

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

CADZCHEN
Mitglied
Konstrukteur


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

Beiträge: 204
Registriert: 04.03.2005

IV2010 SP3 Productstream/Vault 2010, WIN7
Inten Xeon 3,2 Ghz, 8 GB RAM, Nvidia FX 560

erstellt am: 04. Nov. 2006 18: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 Paul!

Erstmal vielen Dank- werde es sofort ausprobieren!  
Greetz Cadzchen

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

CADZCHEN
Mitglied
Konstrukteur


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

Beiträge: 204
Registriert: 04.03.2005

erstellt am: 04. Nov. 2006 22:57    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


Pipe.zip

 
Jo, alles klar !!

Hat super geklappt.........

Wer mag, kann sich den Pipemaker mal anschauen

Vielen Dank nochmal

Many greetz

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