Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Verdicken per VBA Makro

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:  Verdicken per VBA Makro (1233 mal gelesen)
InventorUser2010
Mitglied
Industriemechaniker


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

Beiträge: 10
Registriert: 08.03.2012

Inventor 2010 Sp1

erstellt am: 08. Mrz. 2012 20: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

Guten Tag, ich hoffe ihr könnt mir helfen.

Ich möchte in Inventor an einem Modell bestimmte Flächen, die ich ausgewählt habe, verdicken.
Dabei soll jede Fläche einzelnd verdickt werden.

Wenn ich nämlich die Flächen auswähle und alle auf einmal verdicken will, bricht Inventor jedesmal mit einem Fehler ab.

Vielen Dank im voraus.

MfG

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 10. Mrz. 2012 00:18    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 InventorUser2010 10 Unities + Antwort hilfreich

Hi

Wie versuchst du das mit mehreren Flächen? Eigentlich sollte das funktionieren. Codeschnipsel? Ist da eine Fläche mit drin, die schon durch's Verdicken einer anderen Fläche komplett verschwindet? Oder mal den hier lesen?!?!

------------------
MfG
RK

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

InventorUser2010
Mitglied
Industriemechaniker


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

Beiträge: 10
Registriert: 08.03.2012

Inventor 2010 Sp1

erstellt am: 15. Mrz. 2012 20:23    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

Vielen Dank rkauskh für die schnelle Antwort und sorry dass ich jetzt erst Zeit habe zu Antworten.

Bei dem Modell ist keine Fläche dabei, die komplett verschwindet.
Aber dennoch funktioniert es nicht die Flächen auf einmal zu verdicken.

Ich hab mir (in einer ruhigen Minute) mal die Zeit genommen und jede Fläche einzelnd verdickt, genauer gesagt hab ich ein offset der Fläche gemacht. Es hat funktioniert. Danach hab ich die einzelnen Flächen über die Funktion zusammengeheftet.

PS. den Link, den du vorgeschlagen hast, habe ich auch schon ausprobiert. Hat nicht Funktioniert.

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 16. Mrz. 2012 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 Nur für InventorUser2010 10 Unities + Antwort hilfreich

Hi

Kannst du deinen Code für's Verdicken und dein Testbauteil hier einstellen?

------------------
MfG
RK

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

InventorUser2010
Mitglied
Industriemechaniker


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

Beiträge: 10
Registriert: 08.03.2012

Inventor 2010 Sp1

erstellt am: 18. Mrz. 2012 16:28    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,

ich habe den folgenden Code im Internet gefunden.

Mit diesem Code lässt sich die Farbe der ausgewählten Flächen einzelnd ändern.

Public Sub Blue()
    Dim oPart As PartDocument
    Set oPart = ThisApplication.ActiveDocument
 
    Dim oFace As Face
    Dim oSelection As Object

    For Each oSelection In oPart.SelectSet
        On Error Resume Next
        Set oFace = oSelection
        oFace.SetRenderStyle kOverrideRenderStyle, oPart.RenderStyles("Blue") 'Hier RenderStyle eintragen
    Next
End Sub

Und dieser Code sollte etwa so lauten:

Public Sub Thicken()
    Dim oPart As PartDocument
    Set oPart = ThisApplication.ActiveDocument
 
    Dim oFace As Face
    Dim oSelection As Object

    For Each oSelection In oPart.SelectSet
        On Error Resume Next
        Set oFace = oSelection
        oPart.ComponentDefinition.Features.ThickenFeatures.Add(oFace, 1, kPositiveExtentDirection, kSurfaceOperation, False, False)

    Next
End Sub

Als Testbauteil kann jedes Bauteil (.ipt) benutzt werden.

Mein persönliches Bauteil kann ich leider nicht einstellen.

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 18. Mrz. 2012 17:04    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 InventorUser2010 10 Unities + Antwort hilfreich

Hi

Den Code brauch ich nichtmal ausprobieren, lies meinen Beitrag im anderen Thread. Egal ob SelectSet oder ObjectCollection. Beim Verändern der ersten Fläche wird die gesamte Kollektion ungültig. Es ist also völlig normal, das du einen Fehler bekommst. Die Lösung steht auch im anderen Thread.

------------------
MfG
RK

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

InventorUser2010
Mitglied
Industriemechaniker


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

Beiträge: 10
Registriert: 08.03.2012

Inventor 2010 Sp1

erstellt am: 18. Mrz. 2012 21:24    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

Das ist ja gerade mein Problem, es wird nicht mal die erste Fläche verdickt.

Ich schaffe es einfach nicht, dass überhaubt eine Fläche verdickt wird.

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 18. Mrz. 2012 21:32    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 InventorUser2010 10 Unities + Antwort hilfreich

Hi

Dann liegt es vermutlich daran, daß ein SelectSet keine ObjectCollection ist. Probier mal:

Code:
Public Sub Thicken()
    Dim oPart As PartDocument
    Set oPart = ThisApplication.ActiveDocument

    Dim oFace As Face
    Dim oSelection As Object

    Dim oFaces As FaceCollection
    Set oFaces = ThisApplication.TransientObjects.CreateFaceCollection

    For Each oSelection In oPart.SelectSet
        If TypeOf oSelection Is Face Then
            Call oFaces.Add(oSelection)
        End If
    Next
        On Error Resume Next
        Call oPart.ComponentDefinition.Features.ThickenFeatures.Add(oFaces, 1, kPositiveExtentDirection, kSurfaceOperation, False, False)
End Sub


EDIT: Codebeispiel korrigiert

------------------
MfG
RK

[Diese Nachricht wurde von rkauskh am 18. Mrz. 2012 editiert.]

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



Baugruppenverantwortlicher (m/w/d) für Elektro

Als Technologie-Berater arbeiten wir gemeinsam mit namenhaften Unternehmen in der Luft- und Raumfahrt, der Automobil- und Schiffbauindustrie, Energie- und IT-Branche, sowie im Anlagenbau.

Mit rund 50 Jahren Unternehmensgeschichte legen wir als inhabergeführtes Unternehmen Wert auf flache Hierarchien und bearbeiten unsere Projekte mit viel Herz.

Wir bieten dir die Möglichkeit an unseren Standorten in der gesamten DACH-Region zu arbeiten....

Anzeige ansehenProjektmanagement
InventorUser2010
Mitglied
Industriemechaniker


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

Beiträge: 10
Registriert: 08.03.2012

Inventor 2010 Sp1

erstellt am: 19. Mrz. 2012 17:20    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

Super, vielen Dank RK

Jetzt hat's funktioniert.
Ich musste den Code noch folgendermaßen ändern:

Public Sub Thicken()
    Dim oPart As PartDocument
    Set oPart = ThisApplication.ActiveDocument
    Dim oFace As face
    Dim oSelection As Object
    For Each oSelection In oPart.SelectSet
        Dim oFaces As FaceCollection
        Set oFaces = ThisApplication.TransientObjects.CreateFaceCollection
        If TypeOf oSelection Is face Then
            Call oFaces.Add(oSelection)
        End If
        On Error Resume Next
        Call oPart.ComponentDefinition.Features.ThickenFeatures.Add(oFaces, "0,5", kPositiveExtentDirection, kSurfaceOperation, False, False)
    Next
End Sub

damit es funktionierte, musste ich die oFaces in der ForEach-Schleife jedes mal neu definieren.

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