| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: skizziertes Symbol erstellen und einfügen mit VBA (3059 mal gelesen)
|
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 08. Jun. 2005 17:27 <-- editieren / zitieren --> Unities abgeben:
Hallo WBF, in IV10 ist ein Beispiel zum Erstellen und Einfügen eines Skizzierten Symbols. Dieses wollte ich in IV9 probieren, leider funzt es nur teilweise. Das Erstellen funzt einwandfrei, nur beim Einfügen bekomme ich eine Fehlermeldung. Laut Programmieranleitung von IV9 sollte es aber funzen. Hat jemand einen Rat? etwas später: Hab den Fehler gefunden. so funzt der Code: Set oSketchedSymbol = oSheet.SketchedSymbols.Add(oSketchedSymbolDef, oTG.CreatePoint2d(0, 0), sPromptStrings) Originalcode: Set oSketchedSymbol = oSheet.SketchedSymbols.Add(oSketchedSymbolDef, oTG.CreatePoint2d(0, 0), (3.14159 / 4), 0.75, sPromptStrings) ------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik.
Das Saxregister [Diese Nachricht wurde von SHP am 08. Jun. 2005 editiert.] [Diese Nachricht wurde von SHP am 08. Jun. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 12. Jun. 2005 19:10 <-- editieren / zitieren --> Unities abgeben:
|
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 13. Jun. 2005 16:41 <-- editieren / zitieren --> Unities abgeben:
|
Charly Setter Ehrenmitglied V.I.P. h.c.
Beiträge: 11977 Registriert: 28.05.2002 Trau keiner Diva unter SP2....
|
erstellt am: 13. Jun. 2005 16:45 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
Das läuft auf Userinteraktion und Eventbehandlung hinaus. Schau Dir mal die Beispiele in der API-Doku an. Da ist sicher sowas beschrieben. Ich weiß, das hilft Dir jetzt nicht wirklich, aber so mußt nicht dauernd Selbstgespräche führen ------------------ Der vernünftige Mensch paßt sich der Welt an; der unvernünftige besteht auf dem Versuch, die Welt sich anzupassen. Deshalb hängt aller Fortschritt vom unvernünftigen Menschen ab. (George Bernard Shaw) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lbcad Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau und CAD-Trainer
Beiträge: 3794 Registriert: 15.02.2001
|
erstellt am: 13. Jun. 2005 16:51 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
... und außerdem ist das auf die Dauer ungesund - für den Kopf . Ich habe heute auch mal in der Beschreibung zur API in den Beipielen nachgesehen und erst mal nichts passendes dazu gefunden .
Dabei hatte ich den Eindruck schon mal so etwas gesehen zu haben. Wenn man hier im Forum sucht, dann wird immer so um den hießen Brei drumrumgeredet - so als wenn es ein Geheimnis wäre ... also Ihr Spezialisten , so wie ich es mir denken kann ist es ja eh nur eine einzige Zeile. ------------------ Gruß Lothar --------------------------------------------------- Während man es aufschiebt, verrinnt das Leben. —Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 13. Jun. 2005 18:29 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
Hallo Zusammen, schaut Euch mal das Beispiel 'Selection Simple' in der API-Hilfe an. Auf 81 Zeilen Code (statt nur auf einer) wird da erklärt, wie ein SelectEvent angeworfen wird. Das Beispiel trägt den Name 'Selection Simple' zurecht, denn in diesem Beispiel ist nicht berücksichtigt, dass eine Selektion mit der 'Esc'-Taste abgebrochen werden kann - oder z.B. sich selbst aufhebt, wenn während der Selektion ein anderer Befehl aufgerufen oder ein anderes Dokument geöffnet wird usw. Um all diese Eventualitäten abzufangen braucht's noch 'ne ganze Menge mehr Code. Um nun die Illusionen ganz zu zerstören: Selektionen in Zeichnungen sind besonder aufändig, da: - der selektierte Punkt relativ zum Blattursprung (links unten) ist - der Punkt aber ev. relativ zum Ursprungspunkt einer bestimmten View (Mitte der View) gebraucht wird - in diesem Fall muss der Skalierfaktor innerhalb der View berücksichtigt werden) und zu guter Letzt: - Körperkanten usw. können nicht selektiert werden, da ein entsprechender SelectFilter in der API fehlt. - will ich die Koordinate eines geklickten Punktes wissen, brauchts dazu noch eine MouseEvent - um eine laufende Selektion mit 'Esc' abzubrechen brauchts noch eine KeyboardEvent @HPS: Du kannst über den oben beschriebenen Weg einen selektieren Punkt herausfinden (und in Deinem Beispiel auswerten) - Dein Symbol wird aber nie an einem anderen Objekt 'kleben' - es hängt irgendwo in der Luft. @All: Kommt mal von dem Trip runter, dass sowas komplexes - obschon es eigentlich ganz einfach ausschaut - mit 5 Zeilen Code zu lösen ist. Grüsse, Paul www.morecam.ch/cad.htm
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 13. Jun. 2005 18:49 <-- editieren / zitieren --> Unities abgeben:
|
Charly Setter Ehrenmitglied V.I.P. h.c.
Beiträge: 11977 Registriert: 28.05.2002 Trau keiner Diva unter SP2....
|
erstellt am: 14. Jun. 2005 00:21 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
NA, dann man to ------------------ Der vernünftige Mensch paßt sich der Welt an; der unvernünftige besteht auf dem Versuch, die Welt sich anzupassen. Deshalb hängt aller Fortschritt vom unvernünftigen Menschen ab. (George Bernard Shaw) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 14. Jun. 2005 06:56 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
|
Charly Setter Ehrenmitglied V.I.P. h.c.
Beiträge: 11977 Registriert: 28.05.2002 Trau keiner Diva unter SP2....
|
erstellt am: 14. Jun. 2005 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
Aber ansonsten ist alles OK ? rotfl ------------------ Der vernünftige Mensch paßt sich der Welt an; der unvernünftige besteht auf dem Versuch, die Welt sich anzupassen. Deshalb hängt aller Fortschritt vom unvernünftigen Menschen ab. (George Bernard Shaw) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 15. Jun. 2005 21:58 <-- editieren / zitieren --> Unities abgeben:
Hi all, es ist in der Tat so schwierig wie Paul es beschreibt. Im Beispiel "Selection Simple" wird ein Filter für die Selektion gesetzt, das ist mir noch einigermaßen klar. Ich kann in meinem Fall keinen Filter setzen weil ich nichts selektieren will, also Ende der Straße. In daywalkers Beispiel "Mouse Events" ist eine ButtonDefinitionHandler und eine Sub "oMouse_OnMouseClick" deklariert. Nur wer startet diese Sub? Ich nehme mal an das steht in der ButtonDefinitionHandler. Leider ist dieses Beispiel in VB, darum kann ich mir aus dem ButtonDefinitionHandler nicht viel rauslesen. In VBA find ich auch nur eine ButtonDefinition. Hat noch wer einen Tip für mich? ------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 16. Jun. 2005 08:45 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
Hallo Hans-Peter, oMouse_OnMouseClick ist ein Event, der gefeuert wird, wenn der User mit der Maus irgendwo in den Grafikbereich klickt. Will heissen: Wenn Du den MouseEvent deklarierst und instanziierst werden alle möglichen Events selbständig erzeugt. Dasselbe passiert ja auch, wenn Du auf eine Form einen Button einfügst: Du findest dann im Abrollmenü eine Auswahl aller möglichen Events, z.B. _Click, DblClick, Over, usw. Nur: für den Inventor MouseEvent gibt's kein Steuerelement, das man einfach auf das GUI ziehen kann - das muss 'handgestrickt' werden. Schau Dir mal unter \SDK\Samples\VB\ das Beispiel 'User Interaction' an. Dort findest Du am Anfang des Codes die Deklaration des InteractionEvents. Über diesen kannst Du dann einen MouseEvent erzeugen. Hoffe, das hilft. Grüsse,
Paul www.morecam.ch/cad.htm
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 16. Jun. 2005 16:35 <-- editieren / zitieren --> Unities abgeben:
|
lbcad Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau und CAD-Trainer
Beiträge: 3794 Registriert: 15.02.2001
|
erstellt am: 17. Jun. 2005 08:44 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
und wie hast Du es gemacht ? ------------------ Gruß Lothar --------------------------------------------------- Während man es aufschiebt, verrinnt das Leben. —Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 17. Jun. 2005 09:02 <-- editieren / zitieren --> Unities abgeben:
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 17. Jun. 2005 09:33 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
|
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 19. Jun. 2005 12:33 <-- editieren / zitieren --> Unities abgeben:
Wie versprochen hier mein Beispiel für den Einfügepunkt. ... uns so hab ich das Symbol eingefügt. Set oPickPoint = oPick.Pick Dim oSketchedSymbol As SketchedSymbol Set oSketchedSymbol = oSheet.SketchedSymbols.Add(oSketchedSymbolDef, oTG.CreatePoint2d(oPickPoint.X, oPickPoint.Y), sPromptStrings)
------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 19. Jun. 2005 21:39 <-- editieren / zitieren --> Unities abgeben:
Hallo, wie es eben so ist. Das eine wär so einigermaßen klar, kommt schon das Nächste daher. Wollte jetzt laut anraten von Paul auch noch KeyboardEvents verwenden. Hab aber jetzt folgendes Problem: Die ESC-Taste, die U-Taste, die Ö-Taste, ... kann ich mit OnKeyDown abfangen, wobei nur bei der ESC-Taste die Sub verlassen wird. Private Sub oKeyboardEvents_OnKeyDown(ByVal Key As Long, ByVal ShiftKeys As ShiftStateEnum) If Key = vbKeyEscape Then bStillSelecting = False End If End Sub Bei z.B. der S-Taste (Skizze) ist OnTerminate zuständig und beendet die Sub. Wie stell ich es aber an, daß keine Skizze gemacht werden will und die Sub nur mit einem Pick oder der ESC-Taste beendet wird?
------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister [Diese Nachricht wurde von SHP am 19. Jun. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 22. Jun. 2005 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
Hallo Hans-Peter, die Esc-taste geht ein wenig anders als die Anderen - die reagiert nur auf OnKeyUp: Private Sub oKeyboardEvents_OnKeyUp(ByVal .... If Key = 27 Then bStillSelecting = False End If End Sub Noch was: bevor Du mit Esc abbrechen kannst, musst Du in den Grafikbereich klicken. Grüsse, Paul www.morecam.ch/cad.htm
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sperry Mitglied
Beiträge: 16 Registriert: 24.07.2003
|
erstellt am: 20. Sep. 2006 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
Hallo Leute, ich habe ein ähnliches Problem mit dem Einfügen eines Skizzierten Symboles. Bei mir wird das ausgewählte Symbol leider nicht eingefügt. Während des Programmablaufes bekommen ich den Error-Fehler 5, wenn er zum folgenden Schritt kommt: Set oSketchedSymbol = oSheet.SketchedSymbols.Add(oSketchedSymbolDef, oTG.CreatePoint2d(0, 0), sPromptStrings) Woran liegt das? Kann mir jemand weiterhelfen? Danke.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |