| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| | |
 | SolidWorks Kurs mit IHK-Zertifzierung , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
|
|
Autor
|
Thema: GetSelectionPoint --> Typen unverträglich (997 mal gelesen)
|
adi.r Mitglied Informatiker

 Beiträge: 18 Registriert: 04.07.2005
|
erstellt am: 08. Jul. 2005 08:43 <-- editieren / zitieren --> Unities abgeben:         
Ich bins wiedermal  Ich habe mir einen Mauslistener gebastelt, welcher bei der betätigung der linken maustaste einen balloon an der: "coord = swSelMgr.GetSelectionPoint(1)" zeichnen sollte. Das blöde ist nur, dass er mir manchmal (9 von 10 klicks) die meldung "typen uverträglich" ausgibt. dies geschieht aber nicht erst bei der x,y zuweisung, sondern schon bei der "GetSelectionPoint"-Methode. weiss da vieleicht jemand einen Rat? gruss adi
------------------ in der ruhe liegt die kraft Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kalle Mitglied Student
  
 Beiträge: 706 Registriert: 14.04.2002
|
erstellt am: 08. Jul. 2005 10:59 <-- editieren / zitieren --> Unities abgeben:          Nur für adi.r
Aheu Adi, kannst Du nachvollziehen wo Du hinklickst wenn er die Meldung bringt? Also z.B. immer auf eine Kante, immer auf einen Punkt, immer ins leere auf einer Zeichenansicht, ausserhalb einer Zeichenansicht,... Hab selber GetSelectionPoint noch nie gebraucht, daher nur Vermutungen. Bis dann, Kalle ------------------ ----------------------------------------- Es gibt immer mehr Lösungen als Probleme. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
adi.r Mitglied Informatiker

 Beiträge: 18 Registriert: 04.07.2005
|
erstellt am: 08. Jul. 2005 11:38 <-- editieren / zitieren --> Unities abgeben:         
 ...hm nicht wirklich. die fehlermeldung erscheint eigentlich bei jeder art von objekten die man anklickt...was ich ja nicht nachvollziehen kann ist, dass es unter zehn klicks vieleicht 1mal geht. habe auch schon probiert alle vor dem aufruf selektierten objekte zu deselektieren, damit auch wirklich nur dieser eine klick wahrgenommen wird...hat auch ned geklappt  ------------------ in der ruhe liegt die kraft Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kalle Mitglied Student
  
 Beiträge: 706 Registriert: 14.04.2002
|
erstellt am: 08. Jul. 2005 13:31 <-- editieren / zitieren --> Unities abgeben:          Nur für adi.r
Aheu Adi, ich hab Dein erstes Posting falsch gelesen. Ich dachte bei 9 von 10 Klicks funktioniert's. Kannst Du mal Dein Programm hier hochladen, oder den Code (möglichst komplett) posten. Ich schau's mir dann mal an. Wäre doch gelacht wenn das nicht lösen ist (vor allem bei dem Fehler). Bis dann, Kalle ------------------ ----------------------------------------- Es gibt immer mehr Lösungen als Probleme. [Diese Nachricht wurde von Kalle am 08. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
adi.r Mitglied Informatiker

 Beiträge: 18 Registriert: 04.07.2005
|
erstellt am: 08. Jul. 2005 14:12 <-- editieren / zitieren --> Unities abgeben:         
so, des wär mein progi, habe es halt in ein makro schreiben müssen, da es vorher in einer dll war...aber mein problem sollte recht gut ersichtlich sein. klickt man zweimal(meistens mehr) auf den linken mausbutton erscheint ein ballon mit leader. klickt man einmal links und dann rechts, erscheint der balloon ohne leader. gruss adi ------------------ in der ruhe liegt die kraft Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kalle Mitglied Student
  
 Beiträge: 706 Registriert: 14.04.2002
|
erstellt am: 08. Jul. 2005 14:38 <-- editieren / zitieren --> Unities abgeben:          Nur für adi.r
Aheu Adi, also das Problem ist, dass Dein Programm den Mausklick auswertet bevor der überhaupt SolidWorks erreicht. Daher ist noch nichts selektiert, der SelectionManager folglich leer und dann kannst Du auch nichts zuweisen. Wenn Du vor der Makroausführung was selektiert hast, dann ist was drin im SelectionManager und dann macht er dir auch den Ballon hin. An Deiner Stelle würde ich die Sache anders angehen. Lass Dir das NewSelectionNotify-Event schicken und wenn das kommt, dann hol Dir die Koordinaten. Wie Du das dann aber mit der mit/ohne Leader Geschichte machen sollst weiss ich derzeit auch nicht. Soweit erstmal der Stand wie er grade bei mir ist. Ich schau aber noch ein bisschen drauf. Vielleicht fällt mir noch was ein. EDIT: Hab dem UserForm1.Show mal noch ein vbModal drangehängt. Jetzt kann ich eine Auswahl machen und muss ein zweites Mal klicken, dass was passiert. Ich denke jetzt habe ich erst das Verhalten, das Du die ganze Zeit schon hast. Vorher habe ich auf Balloon geklickt und beim nächsten Klick kam schon der Fehler. Dass das jetzt mit der (sichtbaren) Selektion nichts wird wundert mich. Bin aber weiterhin dran. Bis dann, Kalle ------------------ ----------------------------------------- Es gibt immer mehr Lösungen als Probleme. [Diese Nachricht wurde von Kalle am 08. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kalle Mitglied Student
  
 Beiträge: 706 Registriert: 14.04.2002
|
erstellt am: 08. Jul. 2005 15:47 <-- editieren / zitieren --> Unities abgeben:          Nur für adi.r
Aheu Adi, ich hab's dir mal umgeschrieben, so dass es so funktioniert wie Du es beschreibst, dass Du's gern hättest. Schau Dir den Code mal an und wenn Du Fragen hast, dann kannst Du sie gerne stellen. Bis dann, Kalle ------------------ ----------------------------------------- Es gibt immer mehr Lösungen als Probleme. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
adi.r Mitglied Informatiker

 Beiträge: 18 Registriert: 04.07.2005
|
erstellt am: 11. Jul. 2005 09:03 <-- editieren / zitieren --> Unities abgeben:         
Super!!! Danke viel mal!  So funzt's einwandfrei. habe mir wirklich den kopf darüber zermürbt wieso dieser Mausklick ned registriert wird. Diese Notify-Methode werde ich natürlich sofort in meine persönliche SolidWorks-API- Helpdoku aufnehmen. gruss adi ------------------ in der ruhe liegt die kraft Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
adi.r Mitglied Informatiker

 Beiträge: 18 Registriert: 04.07.2005
|
erstellt am: 11. Jul. 2005 11:06 <-- editieren / zitieren --> Unities abgeben:         
...hm, es gäbe da noch eine Frage... ...Bei mir ist das ganze ja in einer DLL aufgebaut, also soetwas wie extern. Nun werden die Notify-Funktionen irgendwie einfach übergangen.ich nehme an diese events werden vom solidworks "abgehört". Muss ich die in dem Modul in meiner DLL anders deklarieren oder so?  ------------------ in der ruhe liegt die kraft Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kalle Mitglied Student
  
 Beiträge: 706 Registriert: 14.04.2002
|
erstellt am: 11. Jul. 2005 13:30 <-- editieren / zitieren --> Unities abgeben:          Nur für adi.r
Aheu Adi, hab mit DLLs leider keine Erfahrung. Ich denke aber, dass es genauso funktionieren sollte. Wichtig ist, dass Du Deine Zweiger auf das Document mit 'WithEvents' deklarierst. Vielleicht hast Du das übersehen weil in Deinem Projekt die Sachen ja schon deklariert waren. Wenn's das nicht ist kann ich auch nicht weiterhelfen, da ich hier leider nur die Einstieger-Edition von VB hab. Bis dann, Kalle ------------------ ----------------------------------------- Es gibt immer mehr Lösungen als Probleme. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
adi.r Mitglied Informatiker

 Beiträge: 18 Registriert: 04.07.2005
|
erstellt am: 11. Jul. 2005 14:27 <-- editieren / zitieren --> Unities abgeben:         
Danke dir vielmals Kalle, des wars mit dem "withevents ...wie ich das bloss übersehen konnte  wenn ich dann mal etwas richtig cooles, nützliches gebastelt habe werde ich es auf jeden Fall hier posten. gruss adi ------------------ in der ruhe liegt die kraft Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |