Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Block mit Command _.insert und * für Ursprung einfügen?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Block mit Command _.insert und * für Ursprung einfügen? (3420 / mal gelesen)
joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 05. Aug. 2016 16:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

Beiträge: 3358
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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joern bosse 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 05. Aug. 2016 16:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,
fast, Einfügen funktioniert mit Deiner Variante, aber die Option Ursprung (das vorangestellte "*") bekomme ich so nicht. Wenn ich ein Sternchen voran stelle erscheint die Meldung:
* Fehler: Sie können mit der Syntax "Blockname=Dateiname" keine Blöcke auflösen.

Noch eine Idee wie ich den Ursprung dort hin bekomme?

------------------
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
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 05. Aug. 2016 17:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joern bosse 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 05. Aug. 2016 18:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 05. Aug. 2016 18:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joern bosse 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 05. Aug. 2016 18:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Sebastian,
vielleicht ist das auch schon alles ein alter Hut, ich habe hier z.B. eine Antwort von CADmium aus dem Jahre 2005
Zitat:
if you use the Filename with "*" at the begin , the block will explod during the insert-routine
for instance (command "_insert" "*d:\\test.dwg")

http://forums.augi.com/showthread.php?19581-Block-insert-and-explode-lisp-routine

Wie auch immer ich mache jetzt erstmal Wochenende, am Montag gehts weiter

------------------
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
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 05. Aug. 2016 18:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joern bosse 10 Unities + Antwort hilfreich

An der Stelle könnte es auch daran liegen:
Die Beschreibung nur zum besseren Verständnis genutzt,
dazu noch eine Fremdsprache..

Aber ich habe kein 2005 zum testen, lach. Schöne WE 

------------------
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


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 08. Aug. 2016 08:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 08. Aug. 2016 12:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joern bosse 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 08. Aug. 2016 16:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Udo,
ich prüfe vorher schon mit (if tblsearch "BLOCK" ..., sollte eigentlich reichen, aber die Idee mit einem Random-Namen behalte ich im Hinterkopf.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Liniensignaturen Youtube

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz