Wenn ichs halbwegs richtig verstanden habe...
Mein Vorschlag:
1.) Die texte mit XDATAs in der BLOCKDEFINITION nummerieren etc. damit man noch weis wer was ist.
dim BLOCK as acadblock
set block=thisdrawing.blocks.item(blockref.name)
(der kann ja auch dynamisch sein also fragen wir den namen nicht den effektiven namen)
for each entity in block - kann man so durchhecheln wie den modelspace (der ist auch nur ein block)
wenn object=mtex usw dann
mtext.setxdata...
next
so nun weis jeder Mtext wer wer oder was ist.
Nun bastelst du ja mit der Blockref rum
der Trick ist nun die blockref einfach zu explodieren.
da wir ja vorher die mtexte iniziert haben wissen wir ja wer was ist.
dim v as VARIANT ' !!! Sonst gehts nicht
v=blockref.explode
for I= lbound(v) to ubound (V)
nun halt das aray der entitys durchhecheln, mtexte suchen und xdtats auswerten
next
Anschließend kann man die blockref löschen oder die explodierten Entitys je nachdem was man machen möchte.
Durch das explodieren wird die blockrefernz NICHT gelöscht.
Bei geschachtelten Blöcken geht sowas auch.
Dann muss man rekursiv von unten nach oben explodieren.
Hierbei gibt es noch folgenden Pitfall
den Kram muss man ja auch wieder loswerden, also den, den man nicht brauch.
und x copys brauch man auch nicht.
Ich speicher bei sowas den handle mit ner xref nachh dem kpieren mit ab.
Variante 1. das neue Entity hat den xdataeintrag nicht = neues Element
dann bekommt das entity per xdata sein handle mit
bei NACHFOLGENDEN durchläufen kann nur das Ursprungselement sein eigenes handle besitzen.
Nur so las Idee. Etwas ähnliches hab ich mal implementiert von daher kannst du davon ausgehen, das es funktioniert.
Code gibts hierzu diesmal nicht. Liest eh keiner oder wenn gibt es sonderbare Kommentare. Ich hab auch keine Lust mehr die Selbstdarstellertruppe der "profesionellen" Hilfsleistungsanbieter zu hier weiter zu belustigen. Hilfreiche Kommentare wie "Ich weis nicht was du da so machst" brauch ich echt nicht. Liebe Leute ich programmiere ACAD nicht aus Spaß um sondern weil ichs für Konstruktionen brauche. Und die warten nun mal nicht auf nen Softwareyogie ! Da muss der unqualifizierte Vadder denn schon mal selbst ran :P
Und nein, LISP brauch es für dein problem auch nicht ! Das sind alles Standartoperationen.
Lieben Gruß
Thomas
------------------
Wer es nicht versucht, hat schon verlorn
Und bei 3 Typos gibts den vierten gratis !
<<< for sale !
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP