Schubkastenerstellung automatisieren

Schubkastenerstellung automatisieren

Anonymous
Not applicable
3,169 Views
5 Replies
Message 1 of 6

Schubkastenerstellung automatisieren

Anonymous
Not applicable

Servus allerseits,

 

gibt es ein Möglichkeit, dass man per VBA einen Schubkasten automatisch erstellen lassen kann und per Eingabefeld die Maße des Kastens festlegen kann ? Bis jetzt bekomme ich es nur hin, dass ich automatisch ein Bauteil erstellen kann wobei ich die Maße per StringBox eingebe. Weiterhin würde ich gerne eine Gehrung an diese Erstellte Platte machen woran es momentan noch scheitert. 

Vielleicht hat jemand ja einen Code der mir weiterhilft oder kann es mir zumindestens erklären wie ich vorgehen sollte.

Sub NeuePLatte()

'Fehlerbehebung

On Error GoTo Fehler

'Maßeingabe

Dim strInboxL As String
strInboxL = InputBox("Bitte Länge eingeben")

        If strInboxL = "" Or "0" Then
       Exit Sub
    End If


Dim strInboxB As String
strInboxB = InputBox("Bitte Breite eingeben")

        If strInboxB = "" Or "0" Then
       Exit Sub
    End If

 
Dim strInboxD As String
strInboxD = InputBox("Bitte Dicke / Tiefe eingeben")

        If strInboxD = "" Or "0" Then
       Exit Sub
    End If

'Bauteilerstellung
   
    Dim oPartDoc As PartDocument
    Set oPartDoc = ThisApplication.Documents.Add(kPartDocumentObject, _
                ThisApplication.FileManager.GetTemplateFile(kPartDocumentObject))
                    
    
    Dim oCompDef As PartComponentDefinition
    Set oCompDef = oPartDoc.ComponentDefinition
    
  
    Dim oSketch As PlanarSketch
    Set oSketch = oCompDef.Sketches.Add(oCompDef.WorkPlanes(3))
    
   
    Dim oTransGeom As TransientGeometry
    Set oTransGeom = ThisApplication.TransientGeometry
    
    
    Dim oRectangleLines As SketchEntitiesEnumerator
    Set oRectangleLines = oSketch.SketchLines.AddAsTwoPointRectangle( _
                                oTransGeom.CreatePoint2d(0, 0), _
                                oTransGeom.CreatePoint2d(strInboxL / 10, strInboxB / 10))

    
    Dim oProfile As Profile
    Set oProfile = oSketch.Profiles.AddForSolid
    
   
    Dim oExtrudeDef As ExtrudeDefinition
    Set oExtrudeDef = oCompDef.Features.ExtrudeFeatures.CreateExtrudeDefinition(oProfile, kJoinOperation)
    Call oExtrudeDef.SetDistanceExtent(strInboxD / 10, kNegativeExtentDirection)
    
    Dim oExtrude As ExtrudeFeature
    Set oExtrude = oCompDef.Features.ExtrudeFeatures.Add(oExtrudeDef)
    
    Dim Doc As Document
    
    ' Kante Bearbeiten (Gehrung)
    

 
    
    'Speichern
    
                Set Doc = ThisApplication.ActiveDocument
                Call Doc.Save
            
                Dim Antwort
                
                Antwort = MsgBox("Soll die Datei geschlossen werden?" & vbCrLf & vbCrLf & "Hinweis!" & vbCrLf & "Wenn die Datei nicht geschlossen wird, kann sie nicht automatisch in einer Baugruppe plaziert werden.", vbYesNo)
                If Antwort = vbYes Then
                
                        Dim Dcl As Document
                        Set Dcl = ThisApplication.ActiveDocument
                        Dcl.Close
                
                If Antwort = vbNo Then
                
                Exit Sub
                
              End If
          
    
'evtl. Platzieren in Baugruppe

 'Fehlerbehebung
 
Exit Sub

Fehler:
    MsgBox ("Ein Fehler ist aufgetreten. Bitte erneut versuchen.")
     Exit Sub
    End If
End Sub

 

Hier einmal der Code mit dem ich das Bauteil erstelle. 

0 Likes
3,170 Views
5 Replies
Replies (5)
Message 2 of 6

Martin-Winkler-Consulting
Advisor
Advisor

Deinen Ansatz kann man natürlich weiter verfolgen, aber....

 

Ich denke das geht mit anderen Methoden besser.

Hierfür solltest du dir ein Variantenmodell erstellen, welches du über benutzerdefinierte Parameter, iLogic und einem Formular steuerst. Auch die Verwendung von iParts kann eine Option sein. Oder der Aufbau des Modelles in Skelettbauweise mit einer führenden master.ipt. 

Vielleicht beschreibst du mal etwas genauer um was für Schubladen etc. es sich handelt und was dein Ziel bei der Konstruktion ist. Ein Kriterium hierbei ist die Anzahl der möglichen Varianten.

 

Zur Skelettkonstruktion mit iLogic hier ein Screencast:

 

Martin Winkler
CAD Developer
Did you find this post helpful? Feel free to like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.


EESignature

Message 3 of 6

Anonymous
Not applicable

Mein Eigentliches Ziel ist es, dass ich wenn ich ein Möbel habe das mit Schubkästen versehen werden soll, auf ein Knopf drücke und entweder Maße eingebe oder die Seitenwände auswähle wo dieser dann rein soll.

Mir ist die grundsätzliche Vorgehensweise relativ egal. Für eine iPart Option habe ich mich wegen der Unzähligen Möglichkeiten nicht entschieden da ich sonst zu viele verschiedene Versionen haben würde wenn ich da nicht einen Denkfehler habe.

 

Anderer Ansatz..

Kann ich per Button eine Baugruppe in eine Baugruppe einfügen? Dann würde ich einen parametrisch gesteuerten Schubkasten erstellen und diesen immer wieder anpassen. Problem hierbei ist dann natürlich das ich die Dateien immer wieder kopieren muss und in dem neuen Projekt abspeichern müsste, damit sich andere Baugruppen nicht verändern wenn ich die Maße ändere.

 

Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt

0 Likes
Message 4 of 6

bradeneuropeArthur
Mentor
Mentor

Why not using an excel file with linked parameter to the specific part?

Regards,

Arthur Knoors

Autodesk Affiliations & Links:
blue LinkedIn LogoSquare Youtube Logo Isolated on White Background


Autodesk Software:Inventor Professional 2025 | Vault Professional 2024 | Autocad Mechanical 2024
Programming Skills:Vba | Vb.net (Add ins Vault / Inventor, Applications) | I-logic
Programming Examples:
Drawing List!|
Toggle Drawing Sheet!|
Workplane Resize!|
Drawing View Locker!|
Multi Sheet to Mono Sheet!|
Drawing Weld Symbols!|
Drawing View Label Align!|
Open From Balloon!|
Model State Lock!
Posts and Ideas:
My Ideas|
Dimension Component!|
Partlist Export!|
Derive I-properties!|
Vault Prompts Via API!|
Vault Handbook/Manual!|
Drawing Toggle Sheets!|
Vault Defer Update!

! For administrative reasons, please mark a "Solution as solved" when the issue is solved !


 


EESignature

0 Likes
Message 5 of 6

Anonymous
Not applicable

Ich bin noch nicht so lange am programmieren im Inventor und weiß nicht wie das mit einer Exel Liste funktionieren kann. Bin aber bereit alles auszuprobieren. Eine ausführliche Anleitung wäre da wünschenswert, wenn Sie das erklären können. 

0 Likes
Message 6 of 6

Martin-Winkler-Consulting
Advisor
Advisor

@bradeneuropeArthur 

I advise against using Excel because the performance with the Excel OLE links is not good. 
If Excel is used, this should be done by querying the tables using iLogic. However, I think that the first step should be to build a variant construction.

 

@Anonymous 
The question of whether assemblies can be installed automatically can be answered with YES. There are various options here too.

 

Hinweis: Dies hier ist das internationale Customization Forum, daher ist hier Englisch üblich. Wenn du das Thema gerne in deutscher Sprache weiter führen möchtest, solltest du es im deutschen Inventor Forum einstellen.

https://forums.autodesk.com/t5/inventor-deutsch/bd-p/3543

Martin Winkler
CAD Developer
Did you find this post helpful? Feel free to like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.


EESignature