Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Verrundung mittels Makro VBA

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 SOLIDWORKS
  
PLM TechnologieForum Hannover
Autor Thema:  Verrundung mittels Makro VBA (1793 mal gelesen)
Steufrit
Mitglied
Student

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

Beiträge: 7
Registriert: 19.06.2017

Solidworks 2016

erstellt am: 19. Jun. 2017 13: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


Verrundung1.png


Verrundung2.png

 
Hallo,

mein erster Beitrag in einem Forum, ich hoffe ihr könnt mir helfen. Ich bin ziemlicher Anfänger was das programmieren mittels Makro betrifft. Zurzeit schreibe ich ein Makro mit SolidWorks welches Rechteck-Skizzen auf eine Ebene zeichnet. Diese sollen dann über den liniear ausgetragenen Schnitt die Form in ein hohles zylindrisches Bauteil schneiden. Die Form der Rechtecke und die Größe der zylindrischen Bauteile variieren. Im Anschluss wird der Schnitt mittels Makro und dem Kreismuster auf der Mantelfläche verteilt. Die Daten für die Rechtecke werden aus einem Excel-Dokument ausgelesen.

Das Problem ist, dass ich die Ecken nicht angewählt bekomme um diese dann im Anschluss über FeatureFillet3 zu verrunden. Über "SelectByID2" die einzelenen Ecken anzuklicken ist sehr anfällig für Fehler. Die Abgerundeten Ecken sollen auch explizit mit dem Feature erstellt werden und nicht schon Bestandteil der Skizze sein.

Gibt es eine Möglichkeit nur die 4 Ecken in meinen Rechteck auswählen zu lassen?

Gruß

Eugen

[Diese Nachricht wurde von Steufrit am 20. Jun. 2017 editiert.]

[Diese Nachricht wurde von Steufrit am 20. Jun. 2017 editiert.]

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

CAD-Maler
Mitglied
Konstrukteur / CAD-Admin / Mädchen für alles


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

Beiträge: 720
Registriert: 17.01.2007

SWX 2019 SP5
AutoCAD 2019
Win 10 pro 64 bit
Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz
64GB RAM
Nvidia Quadro M5000
SWx EPDM

erstellt am: 19. Jun. 2017 15:08    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 Steufrit 10 Unities + Antwort hilfreich

Hallo Eugen!

Willkommen im WBF!

Als Denk-Anstoß:

Flächen zu deinem Schnitt-Feature holen

Kanten der Flächen holen

Gruß, Jens

------------------
CSWA, CSWP, CSWPA-SM & -SU =)

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

Steufrit
Mitglied
Student

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

Beiträge: 7
Registriert: 19.06.2017

Solidworks 2016

erstellt am: 20. Jun. 2017 09:58    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,

erstmal vielen Dank für die Antwort.
Wenn ich die Eigentschaften einer einzigen Fläche ausgeben lasse bekomme ich immer die 4 Kanten dieser Fläche. Cool wäre wenn ich nur die 4 kurzen inneren Kanten aller Flächen bekommen würde, um diese im Anschluss zu verrunden. Oder jeweils nur die zwei kurzen Kanten einer Fläche.

Gruß

Eugen

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

CAD-Maler
Mitglied
Konstrukteur / CAD-Admin / Mädchen für alles


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

Beiträge: 720
Registriert: 17.01.2007

SWX 2019 SP5
AutoCAD 2019
Win 10 pro 64 bit
Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz
64GB RAM
Nvidia Quadro M5000
SWx EPDM

erstellt am: 20. Jun. 2017 10:38    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 Steufrit 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Steufrit:
Oder jeweils nur die zwei kurzen Kanten einer Fläche.

Hol dir doch die Länge der Kanten...  

Edit: Falls dass bei deinem Teil möglich ist, kannst du dir auch den Vektor der Kante holen.

Gruß, Jens

------------------
CSWA, CSWP, CSWPA-SM & -SU =)

[Diese Nachricht wurde von CAD-Maler am 20. Jun. 2017 editiert.]

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

Steufrit
Mitglied
Student

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

Beiträge: 7
Registriert: 19.06.2017

Solidworks 2016

erstellt am: 20. Jun. 2017 10:45    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

Nice der Vorschlag, könnte definitiv in diesem Fall helfen. Morgen werde ich mein Glück wieder probieren. Erstmal Vorlesung besuchen.

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 20. Jun. 2017 11:10    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 Steufrit 10 Unities + Antwort hilfreich

Hallo,

in deinem Fall könntest du deine Kanten bzw. die Curven die hinter den Kanten stecken einfach darauf hin prüfen ob sie Geraden sind, da die anderen Kanten ja Kreisbögen sind. Hierzu könntest du dir Mal das Beipiel "Get Edge Curve Parameterization Example (VBA)" in der API-Hilfe anschauen.

Gruß
bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

CAD-Maler
Mitglied
Konstrukteur / CAD-Admin / Mädchen für alles


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

Beiträge: 720
Registriert: 17.01.2007

SWX 2019 SP5
AutoCAD 2019
Win 10 pro 64 bit
Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz
64GB RAM
Nvidia Quadro M5000
SWx EPDM

erstellt am: 20. Jun. 2017 13:33    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 Steufrit 10 Unities + Antwort hilfreich


2017-06-20_Kante.png

 
Zitat:
Original erstellt von bk.sc:
da die anderen Kanten ja Kreisbögen sind.

Die rot markierte Kante (-> ) ist kein Kreisbogen.  

Gruß, Jens

------------------
CSWA, CSWP, CSWPA-SM & -SU =)

[Diese Nachricht wurde von CAD-Maler am 20. Jun. 2017 editiert.]

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 21. Jun. 2017 06:08    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 Steufrit 10 Unities + Antwort hilfreich

Hallo Jens,

Zitat:
Die rot markierte Kante (-> ) ist kein Kreisbogen. 

da hast du natürlich recht, war bestimmt nur zu warm und hab dadurch die Linien krumm gesehen, jetzt wo es noch kühl ist, sind die Linien eindeutig gerade   .

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 21. Jun. 2017 09:56    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 Steufrit 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von CAD-Maler:
... Vektor der Kante holen.

Hallo,

wenn du vorher noch den Vektor vom Ausgetragenen Schnitt hast, müssten ja 4 Kanten parallel zu diesem sein ...
Es sei denn, es ist ein "normaler" Schnitt durch ein Blech.

Gruß, Christian

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

Steufrit
Mitglied
Student

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

Beiträge: 7
Registriert: 19.06.2017

Solidworks 2016

erstellt am: 21. Jun. 2017 11:07    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

Gude,

danke euch für die Tipps, bin gerade dabei ein paar Ideen zu probieren. Läuft etwas schleppend die Angelegenheit gibt wohl einige Möglichkeiten aber mit meinen begrenzten Wissen, naja. Teste das Ansprechen über die Länge, evtl. entities vergeben für die Kanten oder den Vektor. Sobald ich Fortschritte erzielen konnte melde ich mich.

Gruß
Eugen

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

Steufrit
Mitglied
Student

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

Beiträge: 7
Registriert: 19.06.2017

Solidworks 2016

erstellt am: 22. Jun. 2017 10:15    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

Hi,

so mit weiterer Hilfe hab ich ein Code der mir alle Kanten im Schnitt durchgeht. Jetzt nur noch die 4 Kanten irgendwie über die Länge evtl. selektieren und verrunden.

Code:
Dim swApp As SldWorks.SldWorks

Dim Part As ModelDoc2

Dim boolstatus As Boolean

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc

boolstatus = Part.Extension.SelectByID2("Fenster-Typ1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)

Dim feat As Feature

Set feat = Part.SelectionManager.GetSelectedObject6(1, -1)

Dim vFaces As Variant

vFaces = feat.GetFaces

Dim FCnt As Integer

Dim ECnt As Integer

Dim swFace As Face2

Dim vEdges As Variant

Dim swEdge As Edge

Dim swCurve As Curve

Dim Param As Variant

Dim swEnt As Entity

Dim EdgeLen As Double

For FCnt = 0 To UBound(vFaces)

    Set swFace = vFaces(FCnt)

    vEdges = swFace.GetEdges

  

    For ECnt = 0 To UBound(vEdges)

  

        Set swEdge = vEdges(ECnt)

        Set swCurve = swEdge.GetCurve

        Param = swEdge.GetCurveParams2

        EdgeLen = Round(swCurve.GetLength2(Param(6), Param(7)), 4) 'Getting Edge Length

       

        Set swEnt = swEdge

        swEnt.Select False ' Selecting Edge

    Next ECnt 

Next FCnt

End Sub


Edit:

Code:

Dim swApp As SldWorks.SldWorks

Dim Part As ModelDoc2

Dim boolstatus As Boolean


Sub main()

radiiArray5 = radiis5
dist2Array5 = dists25
conicRhosArray5 = coniRhos5
setBackArray5 = setBacks5
pointArray5 = points5
pointDist2Array5 = pointsDist25
pointRhoArray5 = pointsRhos5

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc

'boolstatus = Part.Extension.SelectByID2("Schnitt-Linear austragen14", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0) 'Replace with your Cut extrude
boolstatus = Part.Extension.SelectByID2("Schnitt-Linear austragen15", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0) 'Replace with your Cut extrude

    Set swSelMgr = Part.SelectionManager
    Set swFeat = swSelMgr.GetSelectedObject6(1, -1)
    Set swSelData = swSelMgr.CreateSelectData

Dim feat As Feature

Set feat = Part.SelectionManager.GetSelectedObject6(1, -1)


Dim vFaces As Variant

vFaces = feat.GetFaces

Part.ClearSelection2 True


Dim FCnt As Integer

Dim ECnt As Integer

Dim swFace As Face2

Dim vEdges As Variant

Dim swEdge As Edge

Dim swCurve As Curve

Dim Param As Variant

Dim swEnt As Entity

Dim EdgeLen As Double

Dim vEdgeFaces As Variant

Dim Cnt As Integer

Dim EdgeFace As Face2

Dim FaceFeat As Feature

Dim FeatName(1) As String

Dim bRet As Boolean
 

For FCnt = 0 To UBound(vFaces)


    Set swFace = vFaces(FCnt)

    vEdges = swFace.GetEdges
 

    For ECnt = 0 To UBound(vEdges)


        Set swEdge = vEdges(ECnt)

     
        vEdgeFaces = swEdge.GetTwoAdjacentFaces2

     
        For Cnt = 0 To UBound(vEdgeFaces)

     
            Set EdgeFace = vEdgeFaces(Cnt)

            Set FaceFeat = EdgeFace.GetFeature

            FeatName(Cnt) = FaceFeat.Name
     

        Next Cnt

        If FeatName(0) = FeatName(1) Then

           
            Set swEnt = swEdge
           
            swEnt.Select True
                 
        End If

    Next ECnt

Next FCnt

Dim myFeature As Object

Set myFeature = Part.FeatureManager.FeatureFillet3(195, 0.006, 0, 0, 0, 0, 0, (radiiArray5), (dist2Array5), (conicRhosArray5), (setBackArray5), (pointArray5), (pointDist2Array5), (pointRhoArray5))

End Sub



Ich bin zufrieden. Läuft.

Grüße

Eugen


[Diese Nachricht wurde von Steufrit am 23. Jun. 2017 editiert.]

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