Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  
  SWX API Rahmenauswahl

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
[an error occurred while processing this directive]
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
Autor Thema:  SWX API Rahmenauswahl (261 mal gelesen)
nahe
Ehrenmitglied



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

Beiträge: 1710
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 18. Nov. 2022 10: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

Hallo,

ich bräuchte für ein Makro die Möglichkeit, Elemente in einer Zeichnungen,
durch eine Rahmenauswahl auszuwählen.
In der Online-Hilfe und im WWW habe ich dazu, bis jetzt, nichts gefunden.

Hat jemand von Euch ev. einen Tipp?

------------------
Grüße
Heinz

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

deckelmaho
Mitglied
Konstrukteur


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

Beiträge: 200
Registriert: 03.03.2020

SolidWorks 2021 SP5.1
Windows 10 64bit
Office 2019

erstellt am: 18. Nov. 2022 13: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 Nur für nahe 10 Unities + Antwort hilfreich

Hi Heinz,

ich schick dir nen Beispiel wie ich es auch im SWXHelper mache.

Da möchte ich Zwar nur eine Einzelselektion, wird aber auch mit nem Rahmen funktionieren.
(Alle ausgewählten Elemente landen eh im SelectionManager)

gibt mir etwas Zeit.

Gruß Kevin

------------------
HOMEPAGE | SWXTools.de - SWXHelper für SOLIDWORKS
KONTAKT | support@swxtools.de
FACEBOOK | facebook.com/SWXHelper
TWITTER | twitter.com/SWXTools

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

deckelmaho
Mitglied
Konstrukteur


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

Beiträge: 200
Registriert: 03.03.2020

SolidWorks 2021 SP5.1
Windows 10 64bit
Office 2019

erstellt am: 18. Nov. 2022 16:36    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 nahe 10 Unities + Antwort hilfreich

So jetzt hab ichs geschafft...

In meinem Beispiel mach ich es zwar in einem Teil, wird aber für Zeichnungen ebenfalls funktionieren.

Da ich nur mit einer Einzelauswahl arbeite, habe ich es über eine Textbox gelöst für Mehrfachselektion ist wahrscheinlich eine Listbox die bessere Wahl.

1.Trigger für den Eventstart festlegen
Wenn die Textbox angeklickt wird, soll der Nutzer die Möglichkeit der Auswahl bekommen.


  • Wie im SOLIDWORKS auch, wird das Textfeld farblich unterlegt um dem Nutzer zu signalisieren dass er eine Auswahl tätigen kann.
  • Das aktuelle "ModelDoc" übergebe ich in eine Variable vom Typ "Part", da sich darin auch die Methode "NewSelectionNotify"
  • Ich schalte anschließend die "FeatureDimensions" des Teils auf sichtbar, damit direkt ein Maß aus dem Teil gewählt werden kann.(Denn Schritt kannst du dir in der Zeichnung sicherlich sparen)
  • Nun am wichtigsten, das Event starten (ab jetzt wird jede Selection im Teil erkannt und die adressierte Funktion aufgerufen)


2.Was soll beim Erkennen einer Selektion passieren


  • Sobald eine Auswahl erkannt wurde, hole ich mir den "SelectionManager"
  • Anschließend hole ich in einem separaten Sub die Auswahl in meine Textbox (ich will hier nur die erste Auswahl, du kannst natürlich auch
    eine Schleife über alle Elemente des SelectionManagers machen und die Elemente in einer Listbox ausgeben)
  • Zurück in der swPart_NewSelectionNotify hole ich den SWXHelper zurück in den Vordergrund. (Ich kann mir vorstellen das dies für ein registriertes AddIn wie der Passungstabelle nicht nötig ist. Der SWXHelper ist aber Stand-alone)


3.Das Event wieder entfernen
Beim Verlassen der Textbox das Event entfernen


  • Den Textbox-Hintergrund wieder auf weiß umstellen
  • Die "FeatureDimensions" wieder auf den Eistellung zurücksetzen die der User vorher hatte (wirst du auch nicht brauchen)
  • Das Event wieder entfernen, damit es nicht mehr bei jeder Selection getriggert wird

Ich hoffe dir und vielleicht einigen anderen hilft diese Anleitung etwas weiter.

Beste Grüße
Kevin

------------------
HOMEPAGE | SWXTools.de - SWXHelper für SOLIDWORKS
KONTAKT | support@swxtools.de
FACEBOOK | facebook.com/SWXHelper
TWITTER | twitter.com/SWXTools

[Diese Nachricht wurde von deckelmaho am 18. Nov. 2022 editiert.]

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

nahe
Ehrenmitglied



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

Beiträge: 1710
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 18. Nov. 2022 22: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

Hallo Kevin,

Danke für das Beispiel.
Scheinbar war meine Frage missverständlich,
ich möchte die Rahmenauswahl nicht dem Benutzer überlassen,
sondern per Makro machen.

------------------
Grüße
Heinz

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

deckelmaho
Mitglied
Konstrukteur


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

Beiträge: 200
Registriert: 03.03.2020

SolidWorks 2021 SP5.1
Windows 10 64bit
Office 2019

erstellt am: 19. Nov. 2022 07:49    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 nahe 10 Unities + Antwort hilfreich

Hi Heinz,

dafür hab ich auch mal was geschrieben, um zu prüfen ob die Ansichten sich auf dem Blatt befinden.

Du legst für den Rahmen einfach Min und Max Werte fest.

Xmin
Ymin

Xmax
Ymax

Dann machst du eine Schleife über alle Annotations, Ansichten oder was auch immer im deiner Selektion landen soll und wenn sich die Position des Elements innerhalb der Min und Max Werte befindet, dann zum SelektionManager adden.

Wenn du da Hilfe brauchst kann ich dir auch Code schicken.

EDIT
Ich würde nicht versuchen das über die Maussteuerung der Windows API zu machen, es sieht spooky für den Nutzer aus und greift unter Umständen auch auf Prozesse außerhalb von SOLIDWORKS zu.

Beste Grüße
Kevin


------------------
HOMEPAGE | SWXTools.de - SWXHelper für SOLIDWORKS
KONTAKT | support@swxtools.de
FACEBOOK | facebook.com/SWXHelper
TWITTER | twitter.com/SWXTools

[Diese Nachricht wurde von deckelmaho am 19. Nov. 2022 editiert.]

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

nahe
Ehrenmitglied



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

Beiträge: 1710
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 19. Nov. 2022 12: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

Hallo Kevin,

danke für den Tipp, da hätte ich auch selbst draufkommen können.
Ich dachte halt, dass es ev. eine Funktion vom Selectionmanager gibt, die das Unterstützt

------------------
Grüße
Heinz

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