Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Flächen im Bauteil über UserForm auswählen

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
Autor Thema:  Flächen im Bauteil über UserForm auswählen (907 mal gelesen)
SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 14. Mrz. 2022 15: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

Hallo Zusammen,

ich möchte folgendes verwirklichen. Ich möchte über ein UserForm ein Rohr zeichnen. Hier werden die Daten Radius, Offset und Tiefe eingegeben. Nun möchte ich nicht  nur die gesamte Oberfläche berechnen sondern eine Fläche in dem erstelltem Teil anklicken und dieses berechnen. Leider bin ich mit bisherigen Foreneinträge nicht weiter gekommen. Gibt es überhaupt die Möglichkeit dies über ein UserForm zu machen? Ich bedanke mich und schon mal und hoffe, dass mir jemand weiter helfen kann.

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

R3vo
Mitglied
staatl. geprüft. Techniker, Konstrukteur


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

Beiträge: 45
Registriert: 03.11.2021

Programme:
CAD: SolidWorks 2019 Neuste SP / SolidWorks 2021 Neuste SP
PDM: SpeedyPDM 7.4
System:
CPU: i7 10700
Grafikarte: Nvidia Quadro RTX4000
RAM: 64 Gbyte
Datenträger: SSD

erstellt am: 14. Mrz. 2022 17:22    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 SarahTKM 10 Unities + Antwort hilfreich

Ein normales gerades Rohr? Offset wäre dann die Wandstärke?

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 15. Mrz. 2022 08:14    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

Genau für ein gerades Rohr. Leider kann ich nicht auf das Teil zugreifen solange die UserForm offen ist. Mein zweiter Ansatz wäre eine zweite UserForm zu erstellen und davor schon die Flächen markieren. Über die Evaluierung/Messen ist ein ähnlicher Vorgang zu sehen, diesen würde ich gerne ähnlich einbauen. Ich bedanke mich für weitere Tipps

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 15. Mrz. 2022 09: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 Nur für SarahTKM 10 Unities + Antwort hilfreich


Flaechen_auswaehlen.mp4

 
Hallo SarahTKM.
Meinst du im Prinzip so was? Wenn du das als Makro oder VB Anwendung programmieren willst, hilft dir das SolidWorks Part Event NewSelectionNotify weiter.

Gruß
Manfred

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1355
Registriert: 24.07.2002

AutoCAD ACA 2019
Solidworks 2021 Sp5.1
Enterprise PDM 2021 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Dell Ultrasharp U2415
Dell M4800

erstellt am: 15. Mrz. 2022 10:00    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 SarahTKM 10 Unities + Antwort hilfreich

Hi Sarah,

Du meinst sicherlich das der Anwender nichts in Solidworks selektieren kann während die Userform angezeigt wird.
Das "blocken" wird darüber gesteuert ob die Form Modal ist oder nicht.
Schau mal bei deiner Form was bei der Eigenschaft "ShowModal" eingetragen ist.
Stell das mal um und du solltest in Solidworks Elemente auswählen können.
Hier mal eine Erklärung dazu.

Gruss, Carsten

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 15. Mrz. 2022 13: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

Hallo Manfred,

so wie in deinem Video beschrieben soll es am Ende aussehen. Besitzt du dann eine Formel die ausschließlich die Oberfläche von den Körper berechnet? Gibt es die Möglichkeit, dass das Programm erkennt um welchen Körper es sich handelt und die richtige Formel verwendet, so wie bei dem manuellen messen?

Grüße Sarah

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 15. Mrz. 2022 13: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

Hallo Carsten,

vielen Dank für den Hinweis diese Einstellung ermöglicht es mir endliche eine Fläche zu markieren. Nur muss ich erst schauen wie ich die Auswahl dem Programm übermittel.

Grüße Sarah

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 15. Mrz. 2022 13:42    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

Zitat:
Original erstellt von Manfred Kern:
Hallo SarahTKM.
Meinst du im Prinzip so was? Wenn du das als Makro oder VB Anwendung programmieren willst, hilft dir das SolidWorks Part Event NewSelectionNotify weiter.

Gruß
Manfred


Leider finde ich nicht wirklich was zu SolidWorks Part Event NewSelectionNotify. Gibt es vielleicht irgendwo ein Beispiel anhand dem ich es besser verstehen könnte?
Vielen Dank

sarah

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 15. Mrz. 2022 14: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 SarahTKM 10 Unities + Antwort hilfreich

Hallo.

Vorgehensweise als grobes Gerüst :

Deklaration im Programm
  Public WithEvents pDoc As SldWorks.PartDoc

Im Programm das aktive SW Dokument zuweisen
  pDoc = swapp.activedoc

dann auf das Event reagieren
Private Function pDoc_UserSelectionNotify() As Integer Handles pDoc.NewSelectionNotify
......dein Code
End Function

In der API Hilfe auch mal nach Notify Event nachschauen.

Gruß
Manfred

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

R3vo
Mitglied
staatl. geprüft. Techniker, Konstrukteur


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

Beiträge: 45
Registriert: 03.11.2021

Programme:
CAD: SolidWorks 2019 Neuste SP / SolidWorks 2021 Neuste SP
PDM: SpeedyPDM 7.4
System:
CPU: i7 10700
Grafikarte: Nvidia Quadro RTX4000
RAM: 64 Gbyte
Datenträger: SSD

erstellt am: 15. Mrz. 2022 16:50    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 SarahTKM 10 Unities + Antwort hilfreich

Ein gerades Rohr hat 4 Flächen. Wieso muss ich die vorher auswählen um die Oberfläche zu berechnen. Ich kann diese doch auch einfach direkt nach dem Erstellen ausgeben?

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 16. Mrz. 2022 15: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

Zitat:
Original erstellt von Manfred Kern:
Hallo.

Vorgehensweise als grobes Gerüst :

Deklaration im Programm
  Public WithEvents pDoc As SldWorks.PartDoc

Im Programm das aktive SW Dokument zuweisen
  pDoc = swapp.activedoc

dann auf das Event reagieren
Private Function pDoc_UserSelectionNotify() As Integer Handles pDoc.NewSelectionNotify
......dein Code
End Function

In der API Hilfe auch mal nach Notify Event nachschauen.

Gruß
Manfred


Hallo Manfred,

ich hab etwas gebraucht um diese ganze Notify Event Lektion besser zu verstehen. Woher weiss ich aber in welchen Format die Informationen der angeklickten Fläche verwendet werden? Wird es auch mit selectbyRay dargestellt?
boolstatus= Part.Extension.selectByRay(WorldX,WorldY,WorldZ,RayVecZ,RayRadius,TypeWanted,Append,Mark,Option)

Meine bisherige Berechnung habe ich durch diese Funktion (siehe Unten) abgedeckt. Diese berechnet aber die komplette Oberfläche des Rohrs nach Eingabe der Parameter: Radius,Tiefe, Offset. Ziel ist es, dass die einzelnen Flächen berechnet werden können. Wie kann ich hier eine Berechnung eingeben die auch unterschiedliche Oberflächen berechnet, hier Mantel, und Außenfläche ect. In deinem Video hast du unterschiedliche Koordinaten verwendet für die Flächen.
Ich hoffe ich konnte mein Problem besser erklären und bedanke mich für weitere Tipps.

___________________________________________________________________

Public Sub OberflächenBerechnung(InputRadius As Double, InputOffset As Double, InputTiefe As Double)
    'Variablen erstellen
    Dim Radius As Double
    Dim Offset As Double
    Dim Tiefe As Double
    'Werte für Radius, Offset und Tiefe werden gesetzt
    Radius = InputRadius
    Offset = InputOffset
    Tiefe = InputTiefe

    'Berechnung der Oberfläche
    Dim Oberfläche As Double
    Dim PI As Double
    PI = 3.1415926535
    'Oberfläche = 1 + PI
    Oberfläche = PI * (Radius + (Radius - Offset)) * ((1 / 2) * (Radius - (Radius - Offset)) + Tiefe)
    MsgBox (Oberfläche)
   
End Sub

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 16. Mrz. 2022 15:19    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

Zitat:
Original erstellt von R3vo:
Ein gerades Rohr hat 4 Flächen. Wieso muss ich die vorher auswählen um die Oberfläche zu berechnen. Ich kann diese doch auch einfach direkt nach dem Erstellen ausgeben?

Hallo R3vo,

ich möchte nicht immer die gesamte Oberfläche berechnen, sondern nur Teilflächen.

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

R3vo
Mitglied
staatl. geprüft. Techniker, Konstrukteur


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

Beiträge: 45
Registriert: 03.11.2021

Programme:
CAD: SolidWorks 2019 Neuste SP / SolidWorks 2021 Neuste SP
PDM: SpeedyPDM 7.4
System:
CPU: i7 10700
Grafikarte: Nvidia Quadro RTX4000
RAM: 64 Gbyte
Datenträger: SSD

erstellt am: 16. Mrz. 2022 17:26    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 SarahTKM 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von SarahTKM:

Hallo R3vo,

ich möchte nicht immer die gesamte Oberfläche berechnen, sondern nur Teilflächen.


Musst du ja nicht. Ich kann dir die Kreisflächen und innere sowie äußere Mantelflächen einzeln, auch ohne Auswählen ausrechnen.

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 16. Mrz. 2022 17:35    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

Zitat:
Original erstellt von R3vo:

Musst du ja nicht. Ich kann dir die Kreisflächen und innere sowie äußere Mantelflächen einzeln, auch ohne Auswählen ausrechnen.


Wie genau meinst du das? Das ich im Hintergrund alle Flächen schon berechne und durch Anklicken nur der Wert dann angezeigt wird?

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

R3vo
Mitglied
staatl. geprüft. Techniker, Konstrukteur


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

Beiträge: 45
Registriert: 03.11.2021

Programme:
CAD: SolidWorks 2019 Neuste SP / SolidWorks 2021 Neuste SP
PDM: SpeedyPDM 7.4
System:
CPU: i7 10700
Grafikarte: Nvidia Quadro RTX4000
RAM: 64 Gbyte
Datenträger: SSD

erstellt am: 16. Mrz. 2022 19: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 SarahTKM 10 Unities + Antwort hilfreich


Screenshot2022-03-16191141.jpg

 
Wieso extra anklicken, ich kann doch einfach eine Grafik in einer Userform einblenden und dort die Werte der Flächen anzeigen.

[Diese Nachricht wurde von R3vo am 16. Mrz. 2022 editiert.]

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 17. Mrz. 2022 14:00    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

Zitat:
Original erstellt von R3vo:
Wieso extra anklicken, ich kann doch einfach eine Grafik in einer Userform einblenden und dort die Werte der Flächen anzeigen.

[Diese Nachricht wurde von R3vo am 16. Mrz. 2022 editiert.]


Wie genau machst du diese Anzeige ? Ich habe erst seit 2 Wochen angefangen mit der Makroprogrammierung und bin für jeden Hinweis dankbar.

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 17. Mrz. 2022 14:00    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 SarahTKM 10 Unities + Antwort hilfreich

Hallo SarahTKM

Über die angewählte Fläche kann man per API die Oberfläche ermitteln.
Stichwort in der API : MEASURE
Ein Beispiel ist in der APi : Measure Selected Entities Example
Man braucht also keine eigene Formel.
Hier das Beispiel. Für die Oberfläche wäre Measure.Area vorhanden

Public Sub main()

        Dim swModel As ModelDoc2
        Dim swModelDocExt As ModelDocExtension
        Dim swMeasure As Measure
        Dim status As Boolean
        Dim errors As Integer
        Dim warnings As Integer
        Dim fileName As String

        fileName = "C:\Users\Public\Documents\SOLIDWORKS\SOLIDWORKS 2018\samples\tutorial\dimxpert\coupling_auto_geo.sldprt"
        swModel = swApp.OpenDoc6(fileName, swDocumentTypes_e.swDocPART, swOpenDocOptions_e.swOpenDocOptions_ReadOnly, "", errors, warnings)
        swModelDocExt = swModel.Extension
        status = swModelDocExt.SelectByID2("", "FACE", -0.00382117299216134, -0.0032246917626253, -0.00153854043344381, False, 0, Nothing, 0)
        status = swModelDocExt.SelectByID2("", "FACE", 0.00547600669648318, 0.00252191841298099, 0.0050000000000523, True, 0, Nothing, 0)
        swMeasure = swModelDocExt.CreateMeasure
        'Can set this to 0
        ' 0 = center to center
        ' 1 = minimum distance
        ' 2 = maximum distance
        swMeasure.ArcOption = 0

        status = swMeasure.Calculate(Nothing)
        If (status) Then
            If (Not (swMeasure.Length = -1)) Then
                Debug.Print("Length: " & swMeasure.Length)
            End If
            If (Not (swMeasure.Area = -1)) Then
                Debug.Print("Area: " & swMeasure.Area)
            End If
            If (Not (swMeasure.ArcLength = -1)) Then
                Debug.Print("Arc length: " & swMeasure.ArcLength)
            End If
            If (Not (swMeasure.ChordLength = -1)) Then
                Debug.Print("Chord length: " & swMeasure.ChordLength)
            End If
            If (Not (swMeasure.Diameter = -1)) Then
                Debug.Print("Diameter: " & swMeasure.Diameter)
            End If
            If (Not (swMeasure.Radius = -1)) Then
                Debug.Print("Radius: " & swMeasure.Radius)
            End If
            If (Not (swMeasure.Perimeter = -1)) Then
                Debug.Print("Perimeter: " & swMeasure.Perimeter)
            End If
            If (Not (swMeasure.X = -1)) Then
                Debug.Print("X coordinate: " & swMeasure.X)
            End If
            If (Not (swMeasure.Y = -1)) Then
                Debug.Print("Y coordinate: " & swMeasure.Y)
            End If
            If (Not (swMeasure.Z = -1)) Then
                Debug.Print("Z coordinate: " & swMeasure.Z)
            End If
            If (Not (swMeasure.DeltaX = -1)) Then
                Debug.Print("DeltaX: " & swMeasure.DeltaX)
            End If
            If (Not (swMeasure.DeltaY = -1)) Then
                Debug.Print("DeltaY: " & swMeasure.DeltaY)
            End If
            If (Not (swMeasure.DeltaZ = -1)) Then
                Debug.Print("DeltaZ: " & swMeasure.DeltaZ)
            End If
            If (Not (swMeasure.Angle = -1)) Then
                Debug.Print("Angle: " & swMeasure.Angle)
            End If
            If (Not (swMeasure.CenterDistance = -1)) Then
                Debug.Print("Center distance: " & swMeasure.CenterDistance)
            End If
            If (Not (swMeasure.NormalDistance = -1)) Then
                Debug.Print("Normal distance: " & swMeasure.NormalDistance)
            End If
            If (Not (swMeasure.Distance = -1)) Then
                Debug.Print("Distance: " & swMeasure.Distance)
            End If
            If (Not (swMeasure.TotalLength = -1)) Then
                Debug.Print("Total length: " & swMeasure.TotalLength)
            End If
            If (Not (swMeasure.TotalArea = -1)) Then
                Debug.Print("Total area: " & swMeasure.TotalArea)
            End If
            If (swMeasure.IsParallel) Then
                Debug.Print("Is parallel: " & swMeasure.IsParallel)
            End If
            If (swMeasure.IsIntersect) Then
                Debug.Print("Is intersect: " & swMeasure.IsIntersect)
            End If
            If (swMeasure.IsPerpendicular) Then
                Debug.Print("Is perpendicular: " & swMeasure.IsPerpendicular)
            End If
            If (Not (swMeasure.Projection = -1)) Then
                Debug.Print("Projection: " & swMeasure.Projection)
            End If
            If (Not (swMeasure.Normal = -1)) Then
                Debug.Print("Normal: " & swMeasure.Normal)
            End If
            If (Not (swMeasure.SpericalCenterDistance = -1)) Then
                Debug.Print("Spherical center distance: " & swMeasure.SpericalCenterDistance)
            End If
            If (swMeasure.IsConcentricSpheres) Then
                Debug.Print("Are concentric spheres: " & swMeasure.IsConcentricSpheres)
            End If
        Else
            Debug.Print("Invalid combination of selected entities.")
        End If
        swModel.ClearSelection2(True)
    End Sub


Gruß
Manfred

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 17. Mrz. 2022 16:29    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 SarahTKM 10 Unities + Antwort hilfreich


GetSurface.zip

 
Hallo

Als Anhang schnell gestricktes Makro. Oberflächenausgabe ohne eine Fläche anzuwählen.
Voraussetzung zum Start leeres Partdokument in SW geöffnet.

Kann gerne weiter bearbeitet werden.

Gruß
Manfred

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

R3vo
Mitglied
staatl. geprüft. Techniker, Konstrukteur


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

Beiträge: 45
Registriert: 03.11.2021

Programme:
CAD: SolidWorks 2019 Neuste SP / SolidWorks 2021 Neuste SP
PDM: SpeedyPDM 7.4
System:
CPU: i7 10700
Grafikarte: Nvidia Quadro RTX4000
RAM: 64 Gbyte
Datenträger: SSD

erstellt am: 17. Mrz. 2022 17:37    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 SarahTKM 10 Unities + Antwort hilfreich

Genau das hab ich gemeint.

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 21. Mrz. 2022 08:42    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


Zitat:
Original erstellt von Manfred Kern:
Hallo

Als Anhang schnell gestricktes Makro. Oberflächenausgabe ohne eine Fläche anzuwählen.
Voraussetzung zum Start leeres Partdokument in SW geöffnet.

Kann gerne weiter bearbeitet werden.

Gruß
Manfred


Hallo Manfred,

vielen Dank für das Beispiel. Leider wird mir beim Versuch das Makro zu starten die Fehlermeldung "Fehler beim Kompilieren: Projekt oder Bibliothek nicht gefunden" für Sub ProcessBodies() angezeigt. Woran könnte das liegen? Ich bedanke mich 
Viele Grüße

sarah

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 21. Mrz. 2022 09:14    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 SarahTKM 10 Unities + Antwort hilfreich


Verweise.jpg

 
Hallo SarahTKM
Bitte Verweise in VBA unter Extras/Verweise überprüfen. Siehe Bild.

Gruß
Manfred

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 21. Mrz. 2022 09:25    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

Zitat:
Original erstellt von Manfred Kern:
Hallo SarahTKM
Bitte Verweise in VBA unter Extras/Verweise überprüfen. Siehe Bild.

Gruß
Manfred


Hallo Manfred,

das habe ich auch gefunden und gleich gesehen das Paket von 2020 benötigt werden obwohl ich die 2019 Version verwende. Werde wahrscheinlich auf die neuste Version 2021 umsteigen müssen.


Grüße

Sarah

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 21. Mrz. 2022 09:29    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

Zitat:
Original erstellt von Manfred Kern:
Hallo SarahTKM
Bitte Verweise in VBA unter Extras/Verweise überprüfen. Siehe Bild.

Gruß
Manfred


Problem wurde gelöst  Der Verweis war für die 2020 Version ausgewählt. Nach Übernahme der 2019 Bibliotheken hat alles geklappt. Wahrscheinlich ist diese Auswahl automatisch bei der Installation erfolgt.

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 21. Mrz. 2022 09:30    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 SarahTKM 10 Unities + Antwort hilfreich

Hallo SarahTKM.
Dann ändere doch die Verweise auf 2019.

Gruß
Manfred

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 22. Mrz. 2022 10: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

Zitat:
Original erstellt von Manfred Kern:
Hallo

Als Anhang schnell gestricktes Makro. Oberflächenausgabe ohne eine Fläche anzuwählen.
Voraussetzung zum Start leeres Partdokument in SW geöffnet.

Kann gerne weiter bearbeitet werden.

Gruß
Manfred


Vielen Dank nochmal für das gute Beispiel. Nur habe ich eine Frage. Wenn bei der Berechnung zur nächsten Fläche gesprungen wird passiert irgendein Fehler. Hier wird die Mantelfläche nicht berechnet sondern die Grundfläche doppelt . Gibt es eine Möglichkeit zu sehen in welcher Reihenfolge SolidWorks die Flächen durchgeht? Vielen Dank und viele Grüße

Sarah


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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 22. Mrz. 2022 12:54    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 SarahTKM 10 Unities + Antwort hilfreich


GetSurface.zip

 
Hi.
Hier das Makro überarbeitet. Jetzt wird über die GetBox Funktion der Fläche ein Koordinatenvergleich gefahren und ausgewertet.

Gruß
Manfred
  Bitte an die Verweise denken!

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 23. Mrz. 2022 09:41    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

Zitat:
Original erstellt von Manfred Kern:
Hi.
Hier das Makro überarbeitet. Jetzt wird über die GetBox Funktion der Fläche ein Koordinatenvergleich gefahren und ausgewertet.

Gruß
Manfred
   Bitte an die Verweise denken!


Hallo Manfred,

vielen Dank für deine Hilfe. Es funktioniert mit meinen Ergänzungen  einwandfrei. Ich hätte nur noch eine Frage.
Mit UserForm1.Show(False)kann ich die Flächen auch einzeln anklicken während das UserForm offen ist. Ich würde gerne dennoch eine Fläche anwählen und diese dann anschließend berechnen. Mit diesem Beispiel wollte ich erstmal sehen, ob das Programm erkennt wenn ich eine Fläche auswähle. Leider erhalte ich aber immer die Nachricht  "The selection is not an assembly component". Woran könnte das liegen oder hab ich hier einen Denkfehler? Ich bedanke mich für weitere hilfreiche Tipps.

Viele Grüße

Sarah

'Dim swApp As SldWorks.SldWorks
    'Dim swModelDoc As SldWorks.ModelDoc2
    'Dim swSelMgr As SldWorks.SelectionMgr
    'Dim swComponent As SldWorks.Component2
    'Dim swDrawingComponent As SldWorks.DrawingComponent
   
  ' Set swApp = Application.SldWorks
    'Set swModelDoc = swApp.ActiveDoc
    'If swModelDoc Is Nothing Then
    '    Exit Sub
    'End If
    'Set swSelMgr = swModelDoc.SelectionManager
    'If swSelMgr.GetSelectedObjectCount2(0) = 0 Then
    '  MsgBox "No selections detected."
      '  Exit Sub
    'End If
    'If swSelMgr.GetSelectedObjectType3(1, 0) = swSelectType_e.swSelCOMPONENTS Then
    '  Set swDrawingComponent = swSelMgr.GetSelectedObjectsComponent4(1, 0)
      '  If swDrawingComponent Is Nothing Then
      '    MsgBox "The component is empty."
        '    Exit Sub
        'Else
        '  Set swComponent = swDrawingComponent.Component
          '  MsgBox swComponent.Name2
        'End If
    'Else
    '  MsgBox "The selection is not an assembly component."
      '  Exit Sub
    'End If

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 23. Mrz. 2022 12:16    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

Zitat:
Original erstellt von Manfred Kern:
Hallo SarahTKM.
Meinst du im Prinzip so was? Wenn du das als Makro oder VB Anwendung programmieren willst, hilft dir das SolidWorks Part Event NewSelectionNotify weiter.

Gruß
Manfred



Hallo Manfred,

ich glaube erst jetzt verstehe ich wirklich die Handlung der Auswahl der einzelnen Punkte.
Gerne würde ich folgendes machen. Durch das Anklicken in der UserForm X-Koordinaten Textfeld möchte ich die jeweiligen Punkte wie in dem Video selektieren um diese dann einsetzen zu können und zu berechnen. Ich habe die Punkt Selektion als Makro aufgenommen und mir das mal angeschaut .
Set skPoint = Part.SketchManager.CreatePoint(0.009478, -0.018444, 0#)
Nur wie kann ich die x und y und z- Koordinaten importieren und in dem Textfeld anzeigen?
Bzw die Funktion mit den Werten erst füllen beim Anklicken. Ich hoffe ich konnte das Problem gut erklären.Ich bedanke mich und verbleibe mit

vielen Grüßen

Sarah

Dim warnings As Long
Dim fileName As String
Dim count As Long
Dim faces As Variant
Dim i As Long

Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()


'erstellt eine Oberfläche. mit InsertMidsurface wird eine Mittelfläche erstellt
    Set swApp = Application.SldWorks
    Set swModel = swApp.OpenDoc6("C:\cad\PDM\Thesis\grogo.sldprt", 1, 0, "", longstatus, longwarnings)
    'Set swModel = swApp.OpenDoc6("C:\cad\PDM\Thesis\Test_2_23_03.sldprt", 1, 0, "", longstatus, longwarnings)
    'fileName = "C:\Users\Public\Documents\SOLIDWORKS\SOLIDWORKS 2017\tutorial\api\box.sldprt"
    'Set swModel = swApp.OpenDoc6(fileName, swDocumentTypes_e.swDocPART, swOpenDocOptions_e.swOpenDocOptions_Silent, "", errors, warnings)
    Set swModelDocExt = swModel.Extension
    'status = swModelDocExt.SelectByID2("", "FACE", -5.33080255641494E-02, 2.99999999999727E-02, 1.31069871973182E-02, True, 0, Nothing, 0)
UserForm1.Show (False)
    'x,y,z Werte werden durch anklicken eingefügt
    Dim X As Double
    Dim Y As Double
    Dim Z As Double
   
    X = UserForm1.TextBox1.Text
    Y = UserForm1.TextBox2.Text
    Z = UserForm1.TextBox3.Text
   
    status = swModelDocExt.SelectByID2("", "FACE", X, Y, Z, True, 0, Nothing, 0)
    status = swModelDocExt.SelectByID2("", "FACE", -3.70905424398416E-02, 0, 2.89438729892595E-02, True, 0, Nothing, 0)
    Set swFeatureManager = swModel.FeatureManager
    'swFeatureManager.InsertMidSurface Nothing, Nothing, 0#, False
    swFeatureManager.InsertMidSurface Nothing, Nothing, 0#, True
    status = swModelDocExt.SelectByID2("Surface-MidSurface1", "REFSURFACE", 0, 0, 0, False, 0, Nothing, 0)
   
    Set swSelectionMgr = swModel.SelectionManager
    Set swFeature = swSelectionMgr.GetSelectedObject6(1, -1)
    Set swMidSurfaceFeature = swFeature.GetSpecificFeature2
    count = swMidSurfaceFeature.GetFaceCount
    Debug.Print "Number of faces for midsurface feature: " & count
    faces = swMidSurfaceFeature.GetFaces
    For i = LBound(faces) To UBound(faces)
        Set swFace = faces(i)
        Debug.Print "Area of face " & i & " of midsurface feature: " & swFace.GetArea
    Next i
End Sub

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 24. Mrz. 2022 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 SarahTKM 10 Unities + Antwort hilfreich

Hallo SarahTKM.
Bilder sagen mehr als tausend Worte. Im Moment weiß ich nicht wirklich was du programmieren möchtest. Schildere uns doch bitte mal deine genaue Anforderung an dein Makro.

Gruß
Manfred

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 24. Mrz. 2022 15:25    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

Zitat:
Original erstellt von Manfred Kern:
Hallo SarahTKM.
Bilder sagen mehr als tausend Worte. Im Moment weiß ich nicht wirklich was du programmieren möchtest. Schildere uns doch bitte mal deine genaue Anforderung an dein Makro.

Gruß
Manfred


Hallo Manfred,

es tut mir leid, wenn ich mich nicht so klar ausgedrückt habe.Ich versuch jetzt mein Bestes. In deinem Video wird ja in den X,Y,Z-Koordinatenfeld  jeweils eine Fläche bzw. Punkt gewählt und anschließend die Oberfläche berechnet.javascript:InsertSMI(' %20'); Nun mein Problem ich weiss nicht, wie ich die Information aus dem Anklicken erhalte und verwenden kann. Ich habe ein Beispiel ausprobiert um generell zu schauen ob mein Makro erkennt, dass ich eine Fläche selektiere , bekomme aber leider immer nur die Meldung ,dass nichts selektiert wurde.

Ziel am Ende der Geschichte wäre es durch Anklicken der Fläche des Bauteils die Oberfläche zu erhalten.

Ich hoffe ich hab es etwas verständlicher erklären können  . Ich bedanke mich schon vielmals für die ganze Hilfe bin echt für jeden Tipp und Anregung dankbar. javascript:InsertSMI(' %20');

dieses Beispiel habe ich verwendet:
_____________________________________________
Sub BodypartSelection()

    Dim swApp As SldWorks.SldWorks
    Dim swModelDoc As SldWorks.ModelDoc2
    Dim swSelMgr As SldWorks.SelectionMgr
    Dim swComponent As SldWorks.Component2
    Dim swDrawingComponent As SldWorks.DrawingComponent
   
    Set swApp = Application.SldWorks
    Set swModelDoc = swApp.ActiveDoc
    If swModelDoc Is Nothing Then
        Exit Sub
    End If
    Set swSelMgr = swModelDoc.SelectionManager
    If swSelMgr.GetSelectedObjectCount2(0) = 0 Then
        MsgBox "No selections detected."
        Exit Sub
    End If
    If swSelMgr.GetSelectedObjectType3(1, 0) = swSelectType_e.swSelCOMPONENTS Then
        Set swDrawingComponent = swSelMgr.GetSelectedObjectsComponent4(1, 0)
        If swDrawingComponent Is Nothing Then
            MsgBox "The component is empty."
            Exit Sub
        Else
            Set swComponent = swDrawingComponent.Component
            MsgBox swComponent.Name2
        End If
    Else
        MsgBox "The selection is not an assembly component."
        Exit Sub
    End If

End Sub
_______________________________________________________
Viele Grüße

Sarah

javascript:InsertSMI(' %20');

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: 2729
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

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

Hallo Sarah,

wenn du die Fläche nur für eine selektierte Fläche brauchst, wieso gehst du dann nicht über den Messen Befehl (ggf. mit Shortcut)?
Oder soll die Fläche in der UserForm angezeigt werden?

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 24. Mrz. 2022 16:19    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

Zitat:
Original erstellt von bk.sc:
Hallo Sarah,

wenn du die Fläche nur für eine selektierte Fläche brauchst, wieso gehst du dann nicht über den Messen Befehl (ggf. mit Shortcut)?
Oder soll die Fläche in der UserForm angezeigt werden?

Gruß
Bernd


Hallo Bernd,

die berechnete Fläche soll in dem UserForm aufgezeigt werden, bzw. das Ergebnis der Oberflächenberechnung. Im Grunde soll die gleiche Funktion wie mit Messen in dem UserForm funktionieren. Was genau meinst du mit Shortcut?
Vielen Dank und Grüße

Sarah

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 25. Mrz. 2022 10: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 SarahTKM 10 Unities + Antwort hilfreich

Hallo Sarah.
Beigefügt kleines Makro das dir die Funktionsweise der User Selektion in SW zeigen und in VBA auswerten soll.
Ist in der SWLibrary (siehe Bild) eingebaut. Hoffe du kommst damit weiter.

Gruß
Manfred

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 25. Mrz. 2022 10: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 SarahTKM 10 Unities + Antwort hilfreich

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 28. Mrz. 2022 08:16    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

Zitat:
Original erstellt von Manfred Kern:
Sorry, Anhänge fehlten.

Hallo Manfred,

heute hatte ich erst die Möglichkeit mir deine Datei anzusehen. Leider wird mir angegeben, dass diese leer ist.

Viele Grüße
Sarah

javascript:InsertSMI(' %20');

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 28. Mrz. 2022 09:35    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 SarahTKM 10 Unities + Antwort hilfreich


Selection.zip

 
Hallo Sarah.
Sorry. Jetzt sollte es funktionieren.

Gruß
Manfred

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 29. Mrz. 2022 08:37    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

Zitat:
Original erstellt von Manfred Kern:
Hallo Sarah.
Sorry. Jetzt sollte es funktionieren.

Gruß
Manfred


Vielen lieben Dank Manfred,

jetzt funktioniert die Selektion und ich konnte Sie gut in mein UserForm einbinden. Nur ist mir eine Sache aufgefallen, sobald ich eine bereist gespeicherte Datei öffne, berechnet sie mir die Oberflächen richtig. Wenn ich ein Bauteil zeichne und dann versuche die Oberflächen zu berechnen kommen nur Werte, wie 1.0; 0.0 raus.

Nun gehe ich folgendermaßen vor:
1. Bauteil zeichnen, 2. Bauteil speichern 3. Bauteil öffnen und 4.Oberflächen berechnen. Die Datei wird erfolgreich ins PDM gespeichert und wieder aufgerufen nur erkennt er nicht die Flächen. Mir ist aufgefallen, wenn ich mein Makro über main starte, funktioniert die Flächenberechnung gar nicht nur wenn ich über thisLibrary.Start starte(Ist ja auch logisch, da hier der Selektmanager ist). Ich glaube, weil meine Speichern und Öffnen Funktion im  Main Makro drinnen steht, springt es sobald ich speichere in diesen Abschnitt und "vergisst" somit die Fähigkeit die Flächen durch anklicken zu berechnen.

Ich wollte nun in meiner speichern und öffnen Funktion nochmal das Makro ThisLibrary.Start mit der  RunMacro2-Methode aufrufen . Hier zeigt er mir aber immer einen Fehler.

value = instance.RunMacro2(FilePathName, ModuleName, ProcedureName, Options, Error)

In der Methode wird der ModuleName auch verlangt, ist dieser dann This.Library.Start? Gibt es vielleicht einen andere Methode die das Makro starten kann oder ist dieser Ansatz völliger Murks
(' %20');


Ich bin für jeden Tipp und Hilfe dankbar

Viele Grüße

Sarah

javascript:InsertSMI(' %20');

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 84
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 29. Mrz. 2022 13: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 Nur für SarahTKM 10 Unities + Antwort hilfreich

Hallo Sarah.
Bau doch in deiner Main Prozedur den Aufruf für die Oberflächenberechnung ein.

Public Sub Main()
  Call ThisLibrary.start
  .....
  .....
End Sub

Gruß
Manfred

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 29. Mrz. 2022 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

Zitat:
Original erstellt von Manfred Kern:
Hallo Sarah.
Bau doch in deiner Main Prozedur den Aufruf für die Oberflächenberechnung ein.

Public Sub Main()
   Call ThisLibrary.start
   .....
   .....
End Sub

Gruß
Manfred



Hallo Manfred

vielen Dank für den Tipp. Darauf bin ich nicht gekommen. Leider akzeptiert er den Call-Aufruf in der Main nicht ohne Fehlerausgabe. Ich hab den Call-Aufruf jetzt in einem Extra Button verarbeitet und aktivere somit praktisch die Selektionsmethode. So erkennt er auch die Flächen, wenn ich sie selektiere aber leider ist die Berechnung dennoch falsch. Das seltsame ist bei  ein paar  Bauteile, die ich zuvor gezeichnet habe funktioniert es einwandfrei. Habe die Unterschied alle nochmal untersucht und bin gleich voran gegangen aber berechnet bei dem neuen Teil immer noch nicht richtig.

Ich muss weitersuchen, was der entscheiden Unterschied ist aber nur eine kleine Frage zum Verständnis. Der Selektion Manager erkennt die Flächen nur im aktiven Dokument? Wenn ich jetzt von thisLibrary.start zu main springe  und danach die gespeicherte Datei wieder öffne und als aktives Dokument bezeichne, müsste doch thisLibrary.start die neue Datei als aktiv erkennen oder nicht?

Ich bedanke mich für jeden weiteren Tipp

Grüße Sarah
javascript:InsertSMI(' %20');

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

SarahTKM
Mitglied



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

Beiträge: 21
Registriert: 14.03.2022

erstellt am: 29. Mrz. 2022 14:50    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

Hab die Ursache gefunden  Es hat die ganze Zeitberechnet nur in einer falschen Einheit. Nachdem ich einen Faktor dazu nehmen funktioniert das jetzt bei jeden Bauteil. Vielen Dank für die Tipps und  Hilfe 

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