| |
| 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: Block mit Command _.insert und * für Ursprung einfügen? (3542 / mal gelesen)
|
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: 05. Aug. 2016 16:26 <-- editieren / zitieren --> Unities abgeben:
Hallo, bin gerade bei einer eigentlich einfachen Sache: Ich möchte eine DWG-Datei als Block einfügen mit der Option Ursprung, und ich möchte den Befehl auch gleich wieder abbrechen, damit die Referenz nicht mit in die Zeichnung kommt. Folgende Zeile sollte eigentlich funktionieren: (command "_insert" "*s:\\MeineBloecke\\MeinBlock.dwg")(command) In BricsCAD V16 funzt es. In AutoCAD 2015 und 2012 dagegen wird nur ein NIL zurückgegeben, es passiert aber nichts. Mache ich was falsch oder funktioniert das in den aktuellen AutoCAD-Versionen nicht mehr (Über die Suche bei Google bin ich meistens nur über sehr alte Beiträge gestolpert). Vielleicht weiß ja auch einer von Euch eine Alternative. Hintergrund: Bisher habe ich den Block immer komplett eingefügt, das ENTLASTE-Objekt gelöscht und die Definition der DWG-Datei entfernt. Ich denke, mit der oben genannten Methode funktioniert das schneller, wenn es denn funktionieren würde ------------------ viele Grüße Jörn http://www.bosse-engineering.com Liniensignaturen Youtube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3424 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 05. Aug. 2016 16:33 <-- editieren / zitieren --> Unities abgeben: Nur für joern bosse
Servus, (command "_insert" "Meinblock=s:\\MeineBloecke\\MeinBlock.dwg") ------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. Wünsche: Tabllen (XLS,ODS) FDO nativ einbinden, FDO-WMTS, richtige Ebenen für Layer, Erweiterter Attribut-Editor "auffrischen", dyn. Xrefs, mehrere modell Bereiche, Halo4Texte, verschränkte Attribute, Linientypen überarbeiten (doppellinien) , XREF>VISRETAIN pro XREF Fehler: FDORasterdaten im Layout Richtigen Maßstab verwenden, funktionierende updates u. erweiterungen inkl. installationsroutinen, Fehler zwischen Normal MAP Civil beheben Schöne Grüsse aus der Steiermark Bernd P. 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: 05. Aug. 2016 16:44 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Aug. 2016 17:34 <-- editieren / zitieren --> Unities abgeben: Nur für joern bosse
Hallo Jörn, bei deinem Posting stimmt schon an anderer Stelle etwas nicht, danach kann man sich um die Versions-Sache kümmern: <Ich beziehe mich nur auf Acad> a) mit *BLOCKNAME wird keine Blockdefinition importiert, sondern "nur" die Zeichnungsobjekte importiert. daher gibt es auch keine BlockDef zu löschen. b) Und mit deiner Zeile werden nicht mal die Objekte eingefügt, da du den Vorgang abbrichst. c) wenn du früher in dem Fall mit entlast etwas gelöscht hast, so war es wohl das letzte Objekt der aktuellen DWG und sicher nicht gewünscht. Frage: 1) WAS WILLST DU ÜBERHAUPT 2) In welcher Version geht das angeblich? == schnipp == Spontan würde ich tippen das du aktuell nicht genug Ruhe hast zum testen? Bezüglich Versionen von _insert kann ich nur initcommandversion beisteuern, auch wenn ich nicht denke das dein Problem damit zutun hat. https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2015/ENU/AutoCAD-AutoLISP/files/GUID-6176FC98-DC5D-433E-8D76-F481BE68D46A-htm.html . Teste in deinen Versionen immer mit den gleichen Grundlagen, teste immer über die gleichen Wege. Also zB der (command ..)-Ausdruck über die Befehlszeile, immer mit der gleiche DWG als Block immer mit der gleichen DWG als ZIEL/aktuelle Datei. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD 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: 05. Aug. 2016 18:11 <-- editieren / zitieren --> Unities abgeben:
Hallo Sebastian, also nochmal von Anfang: Ich habe eine ziemlich große Vorlagendatei mit jede Menge sichtbarer Geometrie (also nicht nur die Tabellen mit Blöcken, Layer usw.) Für einen Programmablauf müssen die Tabelleneinträge Blöcke und Layer aus der Vorlagendatei zur Verfügung stehen. Mein bisheriges Verfahren: (command "_.insert" "s:\\MeineBloecke\\MeinBlock.dwg" "0,0" "" "" "") Dann habe ich die Vorlagenzeichnung komplett als Blockreferenz in er Zeichnung, also: (vla-delete (vlax-ename->vla-object(entlast))) Und jetzt ist es wichtig, die Blockdefinition der Vorlagendatei wieder loszuwerden (das ist wichtig bei großen Zeichnungen, wenn ein Benutzer einen Block einfügen will. Wenn nämlich die Vorlagendatei in der Blockliste ganz oben steht, dann rechnet sich AutoCAD einen Wolf, bis das Vorschaubild dargestellt ist) (vla-delete (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-Acad-Object)))(vl-filename-base "MeinBlock.dwg"))) Dann habe ich als Ergebnis alle Block- und Layerdefinitionen in der Zeichnung und kann damit loslegen. Bei großen Vorlagendateien dauert das Verfahren aber schon mal ein bisschen, bei langsamen Rechnern kann das auch mal nervig werden. Dann habe ich mit heute nachmittag mit Torsten Moses telefoniert, und der hat mir dann die Methode vorgeschlagen, beim (command "_.insert" das Sternchen vor den gesamten Dateipfad zu stellen und ein (command) hinterherzuschicken: Das Ziel: der Block soll im Ursrung eingefügt werden, d.h., die Bloockdefinition der Vorlagendatei kommt erst gar nicht in die Zeichnung, und durch das Abbrechen mit (command) wird auch keine Blockreferenz erzeugt, die dann wieder gelöscht werden muss. Also bin ich bei folgender Zeile angekommen und das funktioniert leider nur in BricsCAD (und dort ziemlich gut und schnell) (command "_insert" "*s:\\MeineBloecke\\MeinBlock.dwg")(command) Und jetzt weiß ich nicht, wie ich diese Variante, sofern es denn geht, in AutoCAD zum laufen bekomme. Vielleicht bin ich ja auf dem falschen Dampfer, aber mein Bauchgefühl sagt mir, dass ich ganz nah dran bin Hat mich irgenwer verstanden
------------------ viele Grüße Jörn http://www.bosse-engineering.com Liniensignaturen Youtube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Aug. 2016 18:23 <-- editieren / zitieren --> Unities abgeben: Nur für joern bosse
Bricscad wurde da wohl nicht gut genug kopiert, in Acad geht das SO nicht. Wirklich elegant wäre die Definitionen über ObjectDBX zu kopieren oder ggf. vorhandene Definitionen anhand der externen Vorlage zu prüfen/anzupassen. Da dir (bisher) die Insert-Variante ausreicht, möchtest du bestehende Definitionen nicht überschreiben(Layer etc.), also bleiben wir mal beim einfachen Command: Wenn ich mich nicht Irre: Es geht SO in Acad nicht. Ich hatte dich nur so verstanden das du es schon immer so machst und in einigen Versionen noch immer funktioniert, aber das hat sich ja nun geklärt. = geht SO nur in Brics. Ich nehme an das dieser Vorgang so speziell ist, es ist ja nur ein winziges detail in einem komplexen Vorgang des Imports, dies ist bei Brics nicht aufgefallen war, oder ignoriert. (bewußt von Acad abgewichen wird ja eher selten, wegen der Kompatibilität) ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD
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: 05. Aug. 2016 18:42 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Aug. 2016 18:51 <-- editieren / zitieren --> Unities abgeben: Nur für joern bosse
|
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: 08. Aug. 2016 08:51 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe mich jetzt für folgende Version entschieden: Code:
(setq pfad "s:\\MeineBloecke\\MeinBlock.dwg") (command "_.insert" (strcat (vl-filename-base pfad)"="pfad))(command) (vla-delete (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-Acad-Object)))(vl-filename-base pfad)))
Damit habe ich mein Ziel erreicht, es geht sehr viel schneller als meine bisherige Version. Jetzt ist das Thema für mich abgehakt, danke für die vielen Antworten.
------------------ viele Grüße Jörn http://www.bosse-engineering.com Liniensignaturen Youtube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 08. Aug. 2016 12:01 <-- editieren / zitieren --> Unities abgeben: Nur für joern bosse
Hallo Jörn, ungetestet - Was passiert, wenn "Meinblock" in der Zeichnung bereits vorhanden ist und auch mindestens eine eingefügte Blockreferenz besitzt? Schlägt die Blocklöschung dann nicht fehl? Ggf. ist es günstiger so etwas wie command "_.insert" RandomNewBlockname "="pfad))(command) zu verwenden. ------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de 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: 08. Aug. 2016 16:19 <-- editieren / zitieren --> Unities abgeben:
|