| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Zeichnen in Formularen (898 mal gelesen)
|
Sebastian1 Mitglied Dipl.-Ing.
 Beiträge: 7 Registriert: 26.07.2008 Autocad Mechanical 2008
|
erstellt am: 26. Jul. 2008 16:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, beschäftige mich gerad das erste mal mit VBA unter AutoCad. Ich bitte also um Verständnis für mein wahrscheinlich triviales Problem. Ich möchte ein VBA Programm schreiben, welches mir bestimmte Standardbaugruppen zeichnet. Diese sind aber immer leicht anders und müssen entsprechen angepasst werden. Ich hab mir also eine Klasse geschrieben für dieses Bauteil und möchte nun mittels eines Formulars die entsprechenden Parameter der zu zeichnenden Baugruppe einlesen. Das klappt auch ganz gut jedoch möchte ich in diesem Eingabeformular eine Vorschau der Baugruppe haben, damit der Nutzer die Konsequenzen seiner Eingabe sofort sieht. Welche Komponente nimmt man da? Gibt es nicht irgendwelche Komponenten wo ich die selben Objekte (linien, Kreise usw.) wie in einer AutoCadZeichnung mittels VBA hinzufügen kann? Danke im Voraus. Gruß Sebastian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 26. Jul. 2008 18:39 <-- editieren / zitieren --> Unities abgeben:          Nur für Sebastian1
Hallo Sebastian, erst mal herzlich willkommen in VBA Forum für AutoCAD. Zitat: Original erstellt von Sebastian1: ..beschäftige mich gerad das erste mal mit VBA unter AutoCad. Ich bitte also um Verständnis für mein wahrscheinlich triviales Problem.
Ganz so trivial wird das nicht sein Unter VB6 gibt es einige Methoden um in eine Form oder eine Picturbox zu zeichnen. Bei VBA gibt es IMHO diese Methoden nicht. Code: Me.Picture1.Line (1, 1)-(400, 400) Me.Picture1.Circle (400, 400), 100, QBColor(1)
Du sollest da an einem Workaround arbeiten. - Mit VB6 ein OCX erstellen mit der Möglichkeit zu zeichnen - Verwendung eines SVG Viewers (xml) - Vorschau temporär in AutoCAD Ich würde es mit der letzten Variante probieren. z.B. Erstellen des Objektes, zoom an eine freie Stelle, Einblenden, Interaktion mit dem Benutzer, temp Objekt entfernen, wieder an die alte Stelle zoomen.Wilfried Stelberg
------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sebastian1 Mitglied Dipl.-Ing.
 Beiträge: 7 Registriert: 26.07.2008 Autocad Mechanical 2008
|
erstellt am: 28. Jul. 2008 09:50 <-- editieren / zitieren --> Unities abgeben:         
Erstmal danke für die Info, aber temporär in AutoCad zeichnen ist nicht das, was ich mir vorstelle. Ich kann ja dann praktisch nur einen Button erstellen, bei dessem Knopfdruck sich das Fenster minimiert und eine gewisse Stelle in der AutoCad Zeichnung angezeigt wird. Ich find das deshalb ungünstig, weil ich viele Maße parameterförmig angebe. Z.Bsp. ein Maß in meiner Baugruppe, welches ich dort mit "A" bezeichne. Im Formular will ich dann einfach mittels Textbox den Wert für A eingeben. Wenn ich aber nur entweder das Eingabeformular oder die dazugehörige Zeichnung sehe, halte ich das für ungünstig. Kann man in VBA nicht direkt in ein Formular oder ein Bild zeichnen? Ich komme von C++ mit BCB, dort ist das ohne weiteres möglich. Zitat:
- Mit VB6 ein OCX erstellen mit der Möglichkeit zu zeichnen - Verwendung eines SVG Viewers (xml)
Damit kann ich leider nicht wirklich was anfangen. Was ist ein OCX? Und was ist ein SVG Viewer? Versteh nicht, warum es da keine kompfortable Lösung gibt. Ich bin doch garantiert nicht der erste mit solchen Problemen oder? Gruß Sebastian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 02. Aug. 2008 14:58 <-- editieren / zitieren --> Unities abgeben:          Nur für Sebastian1
Hallo Sebastian, VBA ist ja auch nicht c++. VBA ist ja auch mehr oder weniger nur eine Scriptsprache, mit der man allerdings einiges machen kann. Und was hier nicht geht kannst du aus anderen Sprachen holen. Ein OCX ist ein Steuerelement, dass über die ActiveX Schnittstelle mit dem Hostprogramm kommuniziert. Grundsätzlich verhält sich das OCX wie ein normales Control welches du in dein Formular ziehst. Das kannst du dir selber machen (z.B. mit VB oder C oder ..), oder du suchst nach entsprechenden Angeboten im Inet. Da gibt es z.B. einen SVG Viewer. Der setzt ein XML Vektorformat in eine Grafik um. Es gibt wohl diverse OCX mit denen man eine DWG anzeigen kann. Mir wäre allerdings der AUfwand zu gross. Ich würde es wie gesagt im AutoCAD sichtbar machen. Du kannst ja hierfür eine neue Zeichnung aufmachen und die Fenster automatisch plazieren. In der Vergangenheit habe ich mal mit einem OCX aus VB probiert. Ich habe dir das mal zusammengstellt. Wenn du es probieren willst muss du die Dateien aus dem ZIP entpacken und die OCX Datei bei Windows registrieren. Das Beipielprogramm (EXE) verwendet dieses OCX. Das kannst du mit dem Dienstprogramm REGSVR32 machen. Auf der Befehlszeile: REGSVR32 C:\TEMP\PAINTOCX.OCX Wenn du das OCX mit AutoCAD VBA verwenden willst, musst du es einfach der Toolbox hinzufügen. Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002
|
erstellt am: 02. Aug. 2008 18:21 <-- editieren / zitieren --> Unities abgeben:          Nur für Sebastian1
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |