| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
|
Autor
|
Thema: Bitte um Hilfe bei Blockauswahl über Attribute (1081 mal gelesen)
|
Jowo76 Mitglied

 Beiträge: 16 Registriert: 09.12.2008 AutoCad 2007, 2008, 2009
|
erstellt am: 09. Dez. 2008 21:54 <-- editieren / zitieren --> Unities abgeben:         
Erstmal hallo an Alle, da mir der Part der AutoCad-Programmierung in der Firma zugeteilt wurde, und ich leider vom Programmieren kaum Ahnung habe, wende ich mich an Euch. Zum Problem: Ich habe in einer Zeichnung mehrere Blöcke mit den Attributen Punktnummer(PNUM) und Höhe(Höhe). Nun soll ich den Block mit einer bestimmten Punktnummer als Attribut automatisch auswählen, ihn dann auf eine andere Höhe verschieben und diese Höhe in das Höhenattribut eintragen. Bitte um Eure Unterstützung Danke im Voraus Jowo76 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 09. Dez. 2008 22:04 <-- editieren / zitieren -->
Hi, Willkommen auf CAD-de!! Aus Deiner Fragestellung (und auch restlichen Formulierung) seien mir ein paar Rückfragen erlaubt: a) wie gut bist Du mit AutoCAD (z.B. kennst Du die Schritte, wie Du diese Aufgabe händisch bewältigen würdest) b) wie gut bist Du mit VBA (hast schon mal was mit VBA gemacht, auch mit AutoCAD?) c) woher kommen Punktnummer und neue Höhe, aus Dateiliste, aus Usereingabe, aus Berechnung, ...? d) hast schon einen Code und eventuell eine Position im Code, wo Du hängst? Ich nehme nicht an, dass der Hintergrund der Frage hier wäre 'Wer kann's mir machen' - alfred - PS: ich bin ein Feind von Umlauten in Bezeichnungen (und immer wieder habe ich recht) ==> d.h. Eure Attributsbezeichnung hat nicht wirklich den Namen 'Höhe' oder? |
Jowo76 Mitglied

 Beiträge: 16 Registriert: 09.12.2008 AutoCad 2007, 2008, 2009
|
erstellt am: 09. Dez. 2008 22:16 <-- editieren / zitieren --> Unities abgeben:         
Hallo und Danke für die schnelle Antwort, nein, die "Höhe" ist natürlich als "Hoehe" hinterlegt. Unsere Blöcke werden mit einem für uns programmierten Tool erstellt. Man wählt den Einfügepunkt und gibt die Höhe an. AutoCad selbst: Zeichne - Konstruiere schon bald zehn Jahre mit diversen AutoCad Versionen. VBA: Habe schon ein paar Kleinigkeiten programmiert, nix besonderes. Hänge eigentlich bei dem Problem, dass ich nicht weiß wie ich das Atrribut für die Punktnummer in einem selectionsets ansprechen kann, bzw. wie ich dieses selectionsets definieren muss. Zum Beispiel will ich den Block mit Attribut PNUM (Wert 34) mit diesem selectionsets auswählen. Bin ich da überhaupt auf dem richtigen Weg? Die Blockkoordinaten mit Variable (0 to 2) auslesen... und so das ist kein Thema. Die neue Höhe für den Block (sprich z-Koordinate) gebe ich über ein Formular ein und lese de Wert des Textfeldes aus (=z-Koordinate neu). Bei der Auswahl des Blockes über das Attribut, da steht gerade das Hirn. PS:Bekomme mein VBA Buch "AutoCad 2006 VBA" leider erst nächste Woche. mfg Jowo76 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 09. Dez. 2008 22:24 <-- editieren / zitieren -->
Hi, dann gehen wir's an (wie lange wirst Du heute arbeiten?) a) SelectionSet kann nicht auf Attribute prüfen, Du kannst nur ein SelectionSet auf BlockReferenzen machen (wenn möglich, dann mit Blocknamen) und dann die Blöcke samt deren Attribute durchscannen) b) nur um sicherzugehen, bevor ich Dir Beispiel schreibe: VBA oder VB.NET (wäre bei grossen Zeichnungen bzw. vielen Blockreferenzen) schon vorteilhaft in Bezug auf Speed. - alfred - |
Jowo76 Mitglied

 Beiträge: 16 Registriert: 09.12.2008 AutoCad 2007, 2008, 2009
|
erstellt am: 09. Dez. 2008 22:38 <-- editieren / zitieren --> Unities abgeben:         
Danke für Deine Hilfe, es handelt sich um VBA in AutoCad 2008. Von VB.net habe ich gar keine Ahnung. (bin aber für alles offen) Bin heute "schon" zu Hause (irgendwann schreien sonst die eigenen Kinder) und kann sowieso erst morgen wieder auf meinem Firmenrechner das AutoCad bzw. dessen VBA würgen. (oder es mich) Zum Thema große Zeichnungen. Die größten Exemplare, wo ich diese "Anwendung" benötigen werde, kann etwa 10.000 Blöcke umfassen (kommt aber maximal 2 mal im Jahr vor).
------------------
Jowo76 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 09. Dez. 2008 22:52 <-- editieren / zitieren -->
Hi, anbei TestCode, der Dir zeigt, wie Du SelectionSet definierst (Konstante am Anfang beachten). Die 10000 Punkte halte ich für grenzwertig, aber wenn's nur 2* p.a. vorkommt und dann auch noch ein Anwender dahintersitzt (auf den in der Regel der Computer wartet statt umgekehrt), ist das trotzdem mal ein Anfang. Zum Code selbst, nix getestet, nur geschrieben - alfred - |
Jowo76 Mitglied

 Beiträge: 16 Registriert: 09.12.2008 AutoCad 2007, 2008, 2009
|
erstellt am: 09. Dez. 2008 22:55 <-- editieren / zitieren --> Unities abgeben:         
|
Jowo76 Mitglied

 Beiträge: 16 Registriert: 09.12.2008 AutoCad 2007, 2008, 2009
|
erstellt am: 10. Dez. 2008 11:46 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |