| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: viel Blöcke ersetzten durch einen (3185 mal gelesen)
|
holgerlab Mitglied Haustechniker
Beiträge: 446 Registriert: 02.12.2004
|
erstellt am: 01. Feb. 2005 10:55 <-- editieren / zitieren --> Unities abgeben:
Also versuche ich es hier noch mal. Suche ein LISP zu Austauschen von Blöcken. Ich habe von extren eine 37MB Zeichnung mit einer viel von Blöcken bekommen. Aber auch für absolut gleiche Blöcke (gleicher Layer, gleiche Skalierung) wurden mit eigenem Blöckenamen angelegt. z.B. AcDbProxyEntity_557 der nächste Block heißt dann eben AcDbProxyEntity_558 Jetzt hatte ich mir, dass so gedacht. ersetzte Blöcke A + B + ... (Wahl durch zeigen) durch C (Wahl durch zeigen) Gibt es so was? ------------------ Gruß Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 01. Feb. 2005 15:32 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Hallo Holger, probier mal die anhägende LISP-Datei, über =>Extras=>Anwendung laden... laden und dann über "block_ersetz" ausführen. Zu beachten, die Blöcke dürfen keine Attribute enthalten (die werden sonst platt gemacht). Vorgehensweise: Du kannst erst den Block picken, der die anderen ersetzen soll, und dann die über die ACAD-Auswahl die Blöcke auswählen, die ersetzt werden sollen, oder Du wählst die zu ersetzenden erst über den Filter, startest dann das Programm und wählst den Block, der die Blöcke aus der Filterauswahl ersetzten soll. Und, kontrollieren, ob kein Blödsinn rauskommt. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holgerlab Mitglied Haustechniker
Beiträge: 446 Registriert: 02.12.2004
|
erstellt am: 01. Feb. 2005 16:35 <-- editieren / zitieren --> Unities abgeben:
Danke Jörn, der Befehl funktionier prima, aber nicht in dieser Zeichung. Alle gewählten Blöcke verschwinden scheinbar. Die Blöcke aus getauscht werden sollen, sind nicht mehr an ihrem alten Einfügepunkt sondern am Einfügepunkt des Blocks der als Muster gedient hat. d.h. alle Blöcke sind deckungsgleich. Irgendwie haben die Blöcke keinen wählbaren Basispunkt. Gibt es nciht dachte ich!? Jetzt gebe ich es auf mit dem Schrott. Habe angefangen die Zeichung neu zu erstellen. Denke das ist einfachen. Dein LISP werde ich sicher noch sinnvoll gebrauchen können. ------------------ Gruß Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 01. Feb. 2005 16:47 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Hallo Holger, nur interessehalber, wenn Du einen Wblock erstellen würdest mit ein paar von Deinen Blöcken (bloß nicht die 37MB komplett) würde ich der Sache gerne nochmal auf den Grund gehen. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holgerlab Mitglied Haustechniker
Beiträge: 446 Registriert: 02.12.2004
|
erstellt am: 01. Feb. 2005 16:48 <-- editieren / zitieren --> Unities abgeben:
|
holgerlab Mitglied Haustechniker
Beiträge: 446 Registriert: 02.12.2004 MEP2012/2013/2014 + CAxToolbox MircoStation + TriCAD Windows 7 64Bit SSD 160GB Intel® Core i7-3770 CPU 3.40 GHz RAM 16 GB NVIDIA Quatdro 600 1,00RAM
|
erstellt am: 01. Feb. 2005 16:54 <-- editieren / zitieren --> Unities abgeben:
|
flaschenpost Mitglied Architekt
Beiträge: 497 Registriert: 29.09.2004 ADT 2004 / Windows XP
|
erstellt am: 01. Feb. 2005 17:28 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
|
holgerlab Mitglied Haustechniker
Beiträge: 446 Registriert: 02.12.2004
|
erstellt am: 01. Feb. 2005 18:28 <-- editieren / zitieren --> Unities abgeben:
Danke Carsten, für Hinweis. Austauschen der Blöcke geht auch schon mit dem LISP von Jörn prima. Aber da alle Blöcke ihren Basispunkt in 0,0,0 haben, verändert der ausgetauschte Block seine Lage. Wie gesagt ist das jetzt schneller neugezeichnet, wie noch lange rum gebastelt. Würde nur gern wissen warum der Plan so aussieht?????? ------------------ Gruß Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 01. Feb. 2005 19:06 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Hallo Holger, na das sind ja fiese Blöcke, da kann ich Dir so auf die schnelle auch nicht weiterhelfen. Ich habe zwar noch eine Idee, aber das hebe ich mir auf für "wenn ich mal groß bin". ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
flaschenpost Mitglied Architekt
Beiträge: 497 Registriert: 29.09.2004 ADT 2004 / Windows XP
|
erstellt am: 01. Feb. 2005 19:35 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Hallo Holger, vielleicht hat jemand Blöcke aus Elementen erzeugt, die grad dort lagen und keinen Einfügepunkt angegeben. In so einem Fall evtl. Austauschblöcke Einfügepunkt genauso legen, oder ganzen Block nehmen und wieder als Block definieren mit anderem Einfügepunkt. Gruß Carsten
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 01. Feb. 2005 20:02 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Hallo, derartige Zeichnungen sind nichts Ungewöhnliches. Verschiedene Applikationen haben da so ihre Eigenarten. Wenn du derartige Zeichnungen öfter weiter bearbeiten musst, dann ließe sich da auch mit LISP etwas zaubern. Ich denke aber, dass du immer noch manuell Nacharbeiten musst. Ich habe mal diese Lisp von CADmium hergenommen, und dahingehend geändert, dass den Blöcken der Basispunkt entsprechend des Basispunkt des darin als erstes gefundenen Objekts geändert wird. Hol dir die Lisp von CADmium, und kopiere diesen Code dazu. Bei Fragen ... Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Autodesk User Group Central Europe Programmierung/Schulung/ AUGCE Manager Deutschland Administration/Support Full Service for CAD
Code:
(defun C:BLOCK_NEW_BASISPUNKT_AUTO ( / AWS OBJEKT OBJEKTDATEN NAME ORIGIN ROTATION SKALIERUNG MOD1 MOD2 #el#) (startErrorHandler "BLOCK_NEW_BASISPUNKT" 'T '(("cmdecho" 0)("expert" 0) ("HIGHLIGHT" 1)("OSMODE" 639)("ATTREQ" 0))) (if (and(setq AWS (ssget "_X" '((0 . "INSERT")(2 . "AcDbProxyEntity_*")))) ;(setq OBJEKT (ssname OBJEKT 0)) ) (mapcar '(lambda (OBJEKT / OBJEKTDATEN NAME ORIGIN ROTATION SKALIERUNG MOD1 MOD2) (setq OBJEKTDATEN (entget OBJEKT)) (setq NAME (cdr(assoc 2 OBJEKTDATEN))) ; Blockname merken (setq ORIGIN (cdr(assoc 10 OBJEKTDATEN))) (setq SKALIERUNG (list (cdr(assoc 41 OBJEKTDATEN)) ; Skalierung der Blockreferenz (cdr(assoc 42 OBJEKTDATEN)) (cdr(assoc 43 OBJEKTDATEN)))) (setq ROTATION (list (cdr(assoc 50 OBJEKTDATEN)) 0.0)) ; Drehwinkel der Blockreferenz (if (setq NEW_ORIGIN (progn (setq #el# (tblobjname "BLOCK" NAME) #el# (entnext #el#) ) (cdr (assoc 10 (entget #el#))) ) ;(getpoint ORIGIN "\nNeuer Basispunkt : ") ) (progn (if (or (vl-member-if-not '(lambda ( X )(equal X 1.0))SKALIERUNG) ; INSERT skaliert oder (vl-member-if-not '(lambda ( X )(zerop X))ROTATION)) ; rotiert ? , dann .. (progn (princ "\nGewählte Referenz ist transformiert.") (initget "J N") ;(if (not(setq MOD1(getkword "\nBasispunkt-Verschiebesvektor umrechen? [J]a/[N]ein:<J> "))) (setq MOD1 "J") ; Vorgabe bei "Enter"-Eingabe setzen ;) ) (setq MOD1 "N") ) (initget "B A N") ;(if (not(setq MOD2(getkword (strcat"\n[B]lockreferenzen/[A]ttribute/[N]ichts " ; "auf neuen Einfügepunkt umrechnen? <B>")))) (setq MOD2 "B") ; Vorgabe bei "Enter"-Eingabe setzen ;) ; Parametervariante zum Setzen des Basispunktes aufrufen (BLOCK_NEW_BASISPUNKT NAME ORIGIN NEW_ORIGIN ROTATION SKALIERUNG MOD1 MOD2) (command "._regen") ; Zeichnung regenerieren ) (princ "\nKeinen gültigen Punkt eingegeben!\n") ) ) (bau_elemli AWS)) (princ "\nKeine Blockreferenz gewählt!\n") ) (EndErrorHandler) ; Errorhandler wieder deinstallieren (princ) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 02. Feb. 2005 07:39 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
|
holgerlab Mitglied Haustechniker
Beiträge: 446 Registriert: 02.12.2004
|
erstellt am: 02. Feb. 2005 07:43 <-- editieren / zitieren --> Unities abgeben:
Danke Holger, für das LISP, ich mach da wohl was falsch?! Da kommt diese Meldung. BLOCK_NEW_BASISPUNKT: "no function definition: BAU_ELEMLI" muss ich erst was definieren? Leider verstehe ich nur sehr wenig von LISP, Sorry. Gebe mir zwar Mühe, und verstehe aber nur einzelne Zeilen. ------------------ Gruß Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 02. Feb. 2005 08:02 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Ich reich mal was an Holgers Stelle nach. Die Funktion mußt du auch noch hinzukopieren und laden. (defun bau_elemli (asatz / n elemli) (setq n 0) (repeat (sslength asatz) (setq elemli (cons (ssname asatz n) elemli) n (1+ n)) ) elemli ) ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 02. Feb. 2005 09:37 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Hallo, das scheint so auch noch nicht zu gehen, die Lage der Basispunkte der ersten Elemente zueinander entsprechen nur in der Strecke, nicht in der Richtung der Anordnung der dargestellten Elemente innerhalb der Blöcke. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holgerlab Mitglied Haustechniker
Beiträge: 446 Registriert: 02.12.2004
|
erstellt am: 02. Feb. 2005 10:19 <-- editieren / zitieren --> Unities abgeben:
das LISP läuft, kann jetzt allen Blöcken einen neuen Basispunk zuordnen. Aber alle Blöcke haben immer nur den einen Basispunkt. Erst haben alle ihren Basispunkt in 0,0,0 und dann kann man ihn beliebig ändern. Damit man aber im zweien Schritt die Blöcke austauschen kann, müssen aber die Blöcke unterschiedliche Basispunkte haben. Versuch es mal mit der Zeichung die ich oben eingestellt habe. Ich glaube das ist echt vermurgst und es gibt keine globale Lösung. Selbst wenn man für das Beispiel eine Lösung findet - der Abstand der Blöcke ist gleich - beim nächsten Block geht es schon wieder nicht. Und dann müssen die Blöcke immer noch ausgetauscht werden. Ihr seit gut im Programmieren und ich schnell im Zeichnen. ------------------ Gruß Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holgerlab Mitglied Haustechniker
Beiträge: 446 Registriert: 02.12.2004 MEP2012/2013/2014 + CAxToolbox MircoStation + TriCAD Windows 7 64Bit SSD 160GB Intel® Core i7-3770 CPU 3.40 GHz RAM 16 GB NVIDIA Quatdro 600 1,00RAM
|
erstellt am: 03. Feb. 2005 16:26 <-- editieren / zitieren --> Unities abgeben:
Alle die versucht haben mir zu helfen meinen Dank, durch Fleißarbeit bin - löschen und Neuzeichnen bzw. kopieren - sieht die Zeichnung aus wie vorher, aber hat nur noch 10MB. Koppelt neu wäre sie sicher noch mal um die Häufte kleiner. ------------------ Gruß Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SebZ Mitglied Bauingenieur Tiefbau
Beiträge: 189 Registriert: 17.10.2004 AutoCAD 2010 Civil 3D DACH WinXP Professional 2002 SP3 MS Office 2007 Intel Core2Duo 2.80 GHz, 3.00 GB RAM
|
erstellt am: 23. Feb. 2005 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Hallo, bin gerade über die Suchfunktion auf diesen thread gestoßen. Das Problem, mit dem Holger zu kämpfen hat, nervt mich auch immer wieder: In unserem Fall handelt es sich um ein typisches und immer wiederkehrendes Schnittstellenproblem, das vom Export aus diversen Vermesser-Softwares herrührt. Und dann kriegt man eine Topografie, bei der jede Laterne, jeder Baum, ja oft sogar jede Zacke an den Zaunlinien als eigener Block definiert ist. Alle sehen jeweils gleich aus, sind aber der Reihe nach durchnummeriert. Bei Flächengrößen von vielen hundert ha könnt ihr euch den Spaß vorstellen. Aktuell habe ich festgestellt, dass in meiner neuesten Topografie leider ebenfalls alle einzelnen Blöcke den Insert 0,0,0 besitzen (d.h. tatsächlich sind sie dadurch nicht exakt "identisch" - hier liegt ja gerade der Knackepunkt). Da ich selbst auch eher auf der Suche nach einem Tip bin, kann ich vorerst keine Hilfe anbieten. Was ich sagen will ist aber, Holgers Problem ist beileibe kein exotischer Einzelfall. Nur: Neuzeichnen der Blöcke, wie's Holger zum Schluss gemacht hat, ist wegen der Riesenmenge der Blöcke absolut indiskutabel. Ich bleibe auf dem Gebiet selbst auch am Ball, und wenn sonst jemandem was dazu einfällt, wird alles dankbar aufgenommen. Man hört voneinander... ------------------ Gruß SebZ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holgerlab Mitglied Haustechniker
Beiträge: 446 Registriert: 02.12.2004
|
erstellt am: 23. Feb. 2005 15:23 <-- editieren / zitieren --> Unities abgeben:
Schön dass einer mein Problem teil. Sicher Neuzeichnen ist keine gute Lösung, aber irgendwann muss es auch mal fertig werden. Ich denke hier hat vor allem der Entwickler der Software oder der Zeichner der so einen Quatsch macht was zu ändern - und nicht hinterher an der Zeichnung herum zu basteln. Bei mir muss es ein Haustechnik-Programm sein. Leider war es nicht nach zu vollziehen wann das Chaos und durch was ausgelöst wurde. ------------------ Gruß Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SebZ Mitglied Bauingenieur Tiefbau
Beiträge: 189 Registriert: 17.10.2004 AutoCAD 2010 Civil 3D DACH WinXP Professional 2002 SP3 MS Office 2007 Intel Core2Duo 2.80 GHz, 3.00 GB RAM
|
erstellt am: 23. Feb. 2005 18:07 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Nein, ich denke da ist keinem ein spezieller Vorwurf zu machen. Das Problem dürfte eher daher rühren, dass andere Software die Zeichnungsdaten komplett anders verwaltet. Blöcke, aber auch Layer oder Elemente mit z.B. besonderen Datenbankanbindungen sind bei der "Übersetzung" in der Schnittstelle dann ein beliebtes Ziel für derartige Ergebnisse. Ideal wären natürlich Schnittstellen, die sich nahtlos an das Exportformat anpassen, die wären möglicherweise aber auch wirklich kompliziert, und dann ist wieder - trotz allem Komfort - der Anwender gefragt, der vielleicht gar nicht genau weiß, wie das Ergebnis in AutoCAD aussehen soll und dies oft auch gar nicht kontrollieren kann. Aber bevors zu philosophisch wird, ist es wohl doch besser, eine AutoCAD-seitige Lösung anzustreben, da das o.g. Problem anscheinend immer wieder im Zusammenhang verschiedener Herkunftsquellen auftaucht. Mich wundert halt nur ein wenig, dass der hier behandelte Aspekt in der unendlichen Geschichte "Blöcke einfügen / austauschen" nicht bereits früher schon viel ausgiebiger diskutiert worden ist. Nun, dann ist dieser Thread vielleicht der Anfang... ------------------ Gruß SebZ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holgerlab Mitglied Haustechniker
Beiträge: 446 Registriert: 02.12.2004
|
erstellt am: 24. Feb. 2005 09:38 <-- editieren / zitieren --> Unities abgeben:
Um zu klären wo das Problem liegt, müsste man verstehen wann das Problem überhaupt entsteht. Leider war es in meinem Fall nicht mehr nachzuvollziehen. Die Pläne hatten eine weite Reise durch verschiedene Büros hinter sich. Vielleicht findet sich noch jemand der was über die Entstehung des Problems weis. Mit welchem Programm (Cats??). Vielleicht kann man durch eine Option beim Auslesen was ändern? - SebZ weist Du mit welchem Programm "Deine" Pläne erstellt wurden? ------------------ Gruß Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SebZ Mitglied Bauingenieur Tiefbau
Beiträge: 189 Registriert: 17.10.2004 AutoCAD 2010 Civil 3D DACH WinXP Professional 2002 SP3 MS Office 2007 Intel Core2Duo 2.80 GHz, 3.00 GB RAM
|
erstellt am: 24. Feb. 2005 12:28 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Hallo miteinand, habe mir mittlerweile die verschiedenen Bausteine hier im Thread runtergeladen und erste Erfahrungen gesammelt. Im Lisp BLOCK_NEW_BASISPUNKT_AUTO (BNBA) hab ich folgende Verallgemeinerung eingebaut (*****>>> = geänderte Zeile): (defun C:BLOCK_NEW_BASISPUNKT_AUTO ( / AWS OBJEKT OBJEKTDATEN NAME ORIGIN ROTATION SKALIERUNG MOD1 MOD2 #el#) (startErrorHandler "BLOCK_NEW_BASISPUNKT" 'T '(("cmdecho" 0)("expert" 0) ("HIGHLIGHT" 1)("OSMODE" 639)("ATTREQ" 0))) *****>>> (setq Schablone (getstring "\nBezeichnungsschema für zu ändernde Blöcke eingeben (*=Wildcard): ")) *****>>> (if (and(setq AWS (ssget "_X" (list '(0 . "INSERT")(cons 2 Schablone)))) Das gleiche auch in BLOCK_ERSETZ von Jörn, das ich deswegen auch umbenannt habe in BLOCK_ERSETZ_AUTO (BEA): (defun c:block_ersetz_auto( / block aws) (if(setq block (entsel "\nBitte den Block wählen, der andere ersetzen soll.")) (progn *****>>> (setq Schablone (getstring "\nBezeichnungsschema für zu ändernde Blöcke eingeben (*=Wildcard): ")) *****>>>; (princ "\nBitte die Blöcke wählen die ersetzt werden sollen.") *****>>> (setq aws (ssget "_X" (list '(0 . "INSERT") (cons 2 Schablone)))) ) )
Ist sicherlich noch fast&dirty, aber "schön" kommt später... Beim Testen hab ich gemerkt, dass das Umsetzen der Basispunkte etwas tricky ist, nämlich dann, wenn BNBA bei Varianten des gleichen Blockschemas unterschiedliche erste Elemente findet und daher abweichende Einfügepunkte vergibt. Das merkt man spätestens beim BEA, weils dann zu Verrückungen der Blöcke kommt. Bei riesigen Blockmengen kann man das leider nicht mehr visuell kontrollieren. Ein weiteres Problem stellt sich in der angehängten Zeichnung. Die dargestellten Blöcke 854_KABELSCHACHT_nNn... lassen sich einfach nicht mit BNBA umsetzen. Wenn ich aus den Elementen eines derartigen Blockes aber einen neuen Block (hier TEST, Einfügepunkt ebenfalls 0,0,0) erzeuge, dann lässt dieser sich problemlos mit BNBA einen neuen Einfügepunkt verpassen. Weiss jemand, warum? (Vielleicht, weil zufällig das erste gefundene Element bei 854_KABELSCHACHT_* ein anonymer Block ist und bei TEST nicht ???) Hier bräuchte ich dringend noch einige Unterstützung. @Holger: im aktuellen Fall kommt die Quelldatei aus MegaCAD, ist aber auch schon einige Umwege, mindestens 1x über AutoCAD2004 gelaufen. Ich kann aber nicht sagen, ob bzw. dass alle unsere derartigen Imports nur aus MegaCAD herrühren. ------------------ Gruß SebZ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SebZ Mitglied Bauingenieur Tiefbau
Beiträge: 189 Registriert: 17.10.2004 AutoCAD 2010 Civil 3D DACH WinXP Professional 2002 SP3 MS Office 2007 Intel Core2Duo 2.80 GHz, 3.00 GB RAM
|
erstellt am: 24. Feb. 2005 12:53 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
PS: 1) an den anonymen Blöcken liegts nicht (s.o.); das Problem tritt auch bei normalen Blöcken aus herkömmlichen Zeichnungselementen auf. 2) wie kann man das ständige Bildaufbauen beim BNBA unterdrücken? Kann nämlich sehr zeitaufwendig werden! ------------------ Gruß SebZ PPS: Dank an Jörn, Holger Brischke und Cadmium, deren Lisps ich heruntergeladen habe - echte Meilensteine bis zu meinem Ziel! Vor lauter Probieren hab ich doch glatt die U's vergessen. Beim nächsten mal bin ich schneller... Wie es scheint, ist bisher aber noch niemandem was zu den hartnäckigen Blöcken im Dateianhang (s.o.) eingefallen. Na, die Hoffnung stirbt zuletzt... Nochmal Grüße SebZ [Diese Nachricht wurde von SebZ am 02. Mrz. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SebZ Mitglied Bauingenieur Tiefbau
Beiträge: 189 Registriert: 17.10.2004 AutoCAD 2010 Civil 3D DACH WinXP Professional 2002 SP3 MS Office 2007 Intel Core2Duo 2.80 GHz, 3.00 GB RAM
|
erstellt am: 04. Apr. 2005 18:24 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Hab inzwischen wieder ein bisschen weiterprobiert. @CADmium: kann es sein, dass der Einfügepunkt nicht umgesetzt wird, wenn der Block eine oder mehrere Polylinien enthält? Wo kann man eine Änderung ansetzen, um auch solche Blöcke umdefinieren zu können? Ehe ich mich lange in den Code eingrabe, wäre mir ein Tip vom Autor ehrlich gesagt lieber. wiederholtes Regenerieren bei vielen Blöcken: habe den Aufruf (command "_.regen") in der Funktion C:BLOCK_NEW_BASISPUNKT_AUTO stillgelegt. Falls nötig, lieber außerhalb des MAPCAR-Aufrufes? Kann aber nicht erkennen, ob Regen wirklich nötig ist. [Diese Nachricht wurde von SebZ am 04. Apr. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 04. Apr. 2005 18:51 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Zitat: Original erstellt von SebZ: Hab inzwischen wieder ein bisschen weiterprobiert. @CADmium: kann es sein, dass der Einfügepunkt nicht umgesetzt wird, wenn der Block eine oder mehrere Polylinien enthält? Wo kann man eine Änderung ansetzen, um auch solche Blöcke umdefinieren zu können? Ehe ich mich lange in den Code eingrabe, wäre mir ein Tip vom Autor ehrlich gesagt lieber.
Welche Objekte in dem Block enthalten sind, ist der Routine egal!
------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SebZ Mitglied Bauingenieur Tiefbau
Beiträge: 189 Registriert: 17.10.2004 AutoCAD 2010 Civil 3D DACH WinXP Professional 2002 SP3 MS Office 2007 Intel Core2Duo 2.80 GHz, 3.00 GB RAM
|
erstellt am: 05. Apr. 2005 12:06 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Hallo CADmium, nimms mir nicht übel, wenn ich da immer noch Zweifel habe. Angehängte Datei habe ich mal aus einer Topografie herausgelöst. Sie besteht aus ca. 120 Gullies, die einen Rand aus Polylinie und ein symbolisches Gitter aus normalen Linien haben. Sie haben das Bezeichnungsschema "840_STR_ABLAUF_nNn*". Im Zentrum des Kreises links unten ist der rot gefärbte Block "840_STR_ABLAUF_nNn03509", der dagegen nur aus Linien besteht. Weiterhin im Anhang ist dein Tool BLOCK_NEW_BASISPUNKT_AUTO mit meinen kleinen Anpassungen wie oben beschrieben. Die Keywortabfragen habe ich noch auf Vorgabewerte gesetzt. Damit kann ich o.g. Bezeichnungsschema verarbeiten. Bei mir jedenfalls lässt sich der Einfügepunkt nur bei diesem einen Block tatsächlich ändern, überall sonst bleibt er auf 0,0,0. Sollte ich was übersehen haben? ------------------ Gruß SebZ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 05. Apr. 2005 13:43 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
zum Beweis:..anbei ein Tool, das mit deiner angehängten Datei keine Probleme hat die Blockbasispunkte auf "innerhalb" der Referenzen zu setzen. Bei Objektauswahl einfach alle eingeben.... ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SebZ Mitglied Bauingenieur Tiefbau
Beiträge: 189 Registriert: 17.10.2004 AutoCAD 2010 Civil 3D DACH WinXP Professional 2002 SP3 MS Office 2007 Intel Core2Duo 2.80 GHz, 3.00 GB RAM
|
erstellt am: 07. Apr. 2005 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Danke, jetzt klappts auch mit den hartnäckigen Blöcken. Keine Ahnung zwar, warum, aber egal. Hat wegen der großen Gesamtanzahl an Blöcken erstmal eine ganze Weile gedauert. Vermute ich richtig, dass der Einfügepunkt jetzt nicht mehr am ersten gefundenen Subelement aufgehängt wird, sondern aus dem Mittelwert der Einzelkoordinaten? Nur mal aus Interesse, ist ja ansonsten egal. (U's sind on the road.) ------------------ Gruß SebZ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SebZ Mitglied Bauingenieur Tiefbau
Beiträge: 189 Registriert: 17.10.2004 AutoCAD 2010 Civil 3D DACH WinXP Professional 2002 SP3 MS Office 2007 Intel Core2Duo 2.80 GHz, 3.00 GB RAM
|
erstellt am: 08. Aug. 2005 18:51 <-- editieren / zitieren --> Unities abgeben: Nur für holgerlab
Hallo, ich wollte das Thema nicht so ohne weiteres liegenlassen, auch wenn ich mich lange nicht mehr dazu gemeldet habe. Das Tool von Cadmium hat prima geklappt, aber dann habe ich doch feststellen müssen, dass der erwartete Gesamtnutzen (Datei kleiner, besser handhabbar) durch die Konsolidierung der Blöcke nicht in dem Maße gestiegen ist, wie ich an Aufwand reingesteckt habe. Es liegt also nicht nur an den Blöcken, sondern an so vielen kleinen und großen anderen Dingen. Ich hatte dann einfach weder Lust noch Zeit, dem weiter auf den Grund zu gehen. Sicher kommt irgenwann wieder eine geeignete Datei rein, die groß und nervig genug ist, um ein paar Optimierungen auszuprobieren. Es ist halt immer eine Abwägungssache, und ich bin auch nicht sicher, ob sich in unserem Fall eine Art Standardisierung der Optimierungsschritte erarbeiten lässt, um derartige Kandidaten schnell und ohne viel nachzudenken abzuspecken. Über gelegentlichen Erfahrungsaustausch wäre ich nach wie vor dankbar. ------------------ Gruß SebZ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |