Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  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
  
Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
Autor Thema:  Rohrleitungsmakro will nicht (864 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



Anzeige:Infos zum Werbeplatz >>

cseTools ALKIS CAD APP für Tiefbau, AEC - Architektur-, Ingenieur- und Bauwesen, GIS, Vermessung und Kartografie

cseTools ALKIS dient zum Einlesen und Verwenden von ALKIS-Daten in das CAD-Basissystem. Dabei bleibt die Performance des CAD hoch, da die Daten nicht direkt in die DWG, sondern eine separate Datenbank eingelesen werden. Im CAD selbst werden diese nur für den sichtbaren Bereich geladen und angezeigt.

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)2025 CAD.de | Impressum | Datenschutz