| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: Fangpunkte an Blöcken (1429 mal gelesen)
|
Frank136 Mitglied

 Beiträge: 45 Registriert: 06.04.2009 P4 WinXP Acad2004,2005,2008 Office2003
|
erstellt am: 15. Jun. 2009 16:06 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich bins schon wieder, sorry wenn ich Euch in letzter Zeit öfters frage, aber bei häufen sich grad die Probleme. Aktuelles Problem: Ich habe mit VBA Blockreferenzen(Quadrate) in eine Zeichnung eingefügt. Wenn ich diese Blöcke verschieben möchte, stehen mir wie gewohnt alle Fangpunkte zur Verfügung. Wenn ich die Zeichnung aber unter Acad 2008 LT öffne kann ich nur den Basispunkt fangen, obwohl in den Einstellungen alle Fangpunkte aktiv sind. Ich hab die Zeichnung auch schon als Dxf abgespeichert, geht aber auch nicht. WARUM Danke für Hilfe gruß Frank ------------------ Wenn das Wasser bis zum Hals steht, sollte man den Kopf nicht hängen lassen... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 15. Jun. 2009 17:11 <-- editieren / zitieren -->
Hi, Dein Problem hat aber nix mit VBA zu tun, oder? Verständlich wäre es nicht, dass ein Block in LT ander Objektfänge hat als mit der Vollversion, ev. probierst Du mal 'prüfung'/'_audit' der Zeichnung, ev. schaust Du auch mal bei Autodesk, welches ServicePack für AutoCAD LT2008 aktuell ist und welches bei Dir installiert ist. Und wenn das nix hilft, kannst Du eine solche Zeichung uploaden? - alfred - ------------------ www.hollaus.at |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer

 Beiträge: 9807 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil Inventor AIP 4-11, 2008 -2022 Win 10
|
erstellt am: 16. Jun. 2009 14:18 <-- editieren / zitieren --> Unities abgeben:          Nur für Frank136
|
Frank136 Mitglied

 Beiträge: 45 Registriert: 06.04.2009 P4 WinXP Acad2004,2005,2008 Office2003
|
erstellt am: 16. Jun. 2009 16:46 <-- editieren / zitieren --> Unities abgeben:         
Hallo, das Problem scheint doch irgendwie mit VBA zu tun zu haben, denn wenn ich die Blöcke händisch in der Zeichnung erstelle, sind in Acad LT alle Fangpunkte da. Mittlerweile läuft die Sache aber, es war das Service-Pack. Danke für Hilfestellungen. Ich hätte da noch ne Frage, möchte aber nicht schon wieder ein neues Thema aufmachen: Ich hab ne Zeichnung mit vielen Blockrefs. Mit "For Each Entity..." lese ich die aus. Klappte auch alles, bis ich ein paar Blöcke mitten raus gelöscht habe. Jetzt findet "For Each ..." nur noch die Blockrefs, die nach den Blöcken eingefügt wurden, die ich gelöscht habe. warum? gruß Frank ------------------ Wenn das Wasser bis zum Hals steht, sollte man den Kopf nicht hängen lassen... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 16. Jun. 2009 16:52 <-- editieren / zitieren -->
Hi, For...Each ist gemeinsam mit Löschen mit höchster Vorsicht zu geniessen, denn am Anfang wird intern ein Enumerator erstellt (eine Liste der Elemente) und wenn Du diese Liste modifizierst, während Du diese gleichzeitig durchläufst, dann entziehst Du dem Enumerator die Basis. Abhilfe ist ein Zähler, den Du von hinten nach vorne mit 'Step -1' durchlaufen lasst, z.B. Code: Dim i as Integer For i = ubound(EntArray) to lbound(EntArray) Step -1 Dim tEnt as AcadEntity Set tEnt = EntArray(i) tEnt.Delete Next
- alfred - ------------------ www.hollaus.at |
Frank136 Mitglied

 Beiträge: 45 Registriert: 06.04.2009 P4 WinXP Acad2004,2005,2008 Office2003
|
erstellt am: 16. Jun. 2009 17:40 <-- editieren / zitieren --> Unities abgeben:         
Hallo Alfred, kann ich die Liste denn irgendwie anhalten oder neu starten, damit ich zwischendurch in Acad händisch Blöcke löschen kann, und dann lass ich die Liste weiterlaufen? Es ist so, dass ich zuerst die Anzahl aller Blöcke haben will, dann bei Bedarf möchte ich irgendwo einen oder mehrere Blöcke löschen und dann noch mal durchzählen. Evtl noch mal löschen und zählen. Wenn die Zahl dann passt, möchte ich mit "For...Each" noch mal jeden Block ansprechen und bearbeiten. Fürs zählen hab ich ne Function, die mittels For...Each alle Entities duchgeht und einen Zähler hochlaufen lässt. Im laufe des Hauptprogramms wird die Function dann bei Bedarf aufgerufen, wenn sich die Blochanzahl geändert hat. Oder gibs vvlt noch ne einfachere Lösung? Danke für die Hilfe gruß Frank ------------------ Wenn das Wasser bis zum Hals steht, sollte man den Kopf nicht hängen lassen... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 16. Jun. 2009 17:44 <-- editieren / zitieren -->
Hi, Du hast 2 Möglichkeiten: a) wenn Du löscht, baust Du Dein SelektionSet neu b) Du überwachst AutoCAD nach dem ersten SelectionSet-Bilden, ob Elemente gelöscht werden und baust das SelectionSet im Event neu. Aber löschen und gleichzeitig das Element in einer Liste zu haben ist mit VBA jedenfalls mit Hoppala's verbunden, mit dotNET (und Managed-Access) wäre es möglich. - alfred - ------------------ www.hollaus.at |
Frank136 Mitglied

 Beiträge: 45 Registriert: 06.04.2009 P4 WinXP Acad2004,2005,2008 Office2003
|
erstellt am: 17. Jun. 2009 09:38 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |