| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: script wird nicht gespeichert (SCC2) (1280 / mal gelesen)
|
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 28. Sep. 2022 16:41 <-- editieren / zitieren --> Unities abgeben:
Hallo Cadler, ich versuche ein altes Script wiederzuerwecken`und dient zum Bereinigen, es wird mit SCC2 von Cadwiesel aufgerufen (alle Dateien nacheinander geladen), aber nicht gespeichert. Am Ende meines Skriptes ist was falsch. _qsave geht nicht "_saveas 2018" geht nicht Wer hat eine Idee Nun denke/ merke irgendetwas ist mit dem SDI=1 Wird der alte Name nicht überschrieben? LG Pit
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archtools Mitglied
Beiträge: 965 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 28. Sep. 2022 19:46 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
Zitat: Original erstellt von cockpit: Hallo Cadler,ich versuche ein altes Script wiederzuerwecken`und dient zum Bereinigen, es wird mit SCC2 von Cadwiesel aufgerufen (alle Dateien nacheinander geladen), aber nicht gespeichert. Am Ende meines Skriptes ist was falsch. _qsave geht nicht "_saveas 2018" geht nicht Wer hat eine Idee Nun denke/ merke irgendetwas ist mit dem SDI=1 Wird der alte Name nicht überschrieben? LG Pit
Was bedeutet "_qsave geht nicht"? Öffne doch die DWG manuell und führe die Befehle im Skript nacheinander aus. Geht das _QSAVE denn dann? Ist eventuell ein Befehl im Skript nicht korrekt abgeschlossen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 29. Sep. 2022 10:45 <-- editieren / zitieren --> Unities abgeben:
Hallo archtools.. es funktioniert, ich habe es an einer Datei ausprobiert. Ich hatte im Hintergrund eine Datei von den zu bearbeitenden Dateien offen, dadurch wurde nicht gespeichert... Mein Fehler... Ich möchte das Skript erweitern... Wie kann ich in dem Skript alle dynamischen Blöcke auflösen und bereinigen? (...und damit auch die unbenannten Blöcke) Gibt es dafür ein Befehl oder Routine? LG Pit Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archtools Mitglied
Beiträge: 965 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 29. Sep. 2022 11:36 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
Zitat: Original erstellt von cockpit: Hallo archtools..es funktioniert, ich habe es an einer Datei ausprobiert. Ich hatte im Hintergrund eine Datei von den zu bearbeitenden Dateien offen, dadurch wurde nicht gespeichert... Mein Fehler... Ich möchte das Skript erweitern... Wie kann ich in dem Skript alle dynamischen Blöcke auflösen und bereinigen? (...und damit auch die unbenannten Blöcke) Gibt es dafür ein Befehl oder Routine? LG Pit
Das geht mit einem kleinen Lisp-Aufruf von SSGET mit einem passenden Filter.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 29. Sep. 2022 14:51 <-- editieren / zitieren --> Unities abgeben:
Ich kenne mich bei Lisp wenig aus und suche wie man alle dynamischen Blöcke filtert... und nun weiß ich nicht, ob die Hilfe (DEINE Hilfe) hier endet... Zitat: Das geht mit einem kleinen Lisp-Aufruf von SSGET mit einem passenden Filter.
Habe Kochbuch_Autolisp(2007), aber ich werde nicht fündig. Wie würde die Zeile mit dem Filter lauten?
LG Pit
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bbernd Ehrenmitglied Technischer Zeichner / Zimmerermeister
Beiträge: 1621 Registriert: 20.02.2009 AutoCAD 2021, 2023 nanoCAD 5 Gimp 2.10 Windows10 64bit 64 GB Arbeitsspeicher NVIDIA RTX A4000
|
erstellt am: 29. Sep. 2022 15:10 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
|
bbernd Ehrenmitglied Technischer Zeichner / Zimmerermeister
Beiträge: 1621 Registriert: 20.02.2009 AutoCAD 2021, 2023 nanoCAD 5 Gimp 2.10 Windows10 64bit 64 GB Arbeitsspeicher NVIDIA RTX A4000
|
erstellt am: 29. Sep. 2022 15:11 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
|
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 29. Sep. 2022 16:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, danke, aber das nützt mir leider (-->DXE) nichts, da ich das in einem Skript verbauen und dann mit Skriptgenerator (SCC2.exe) laufen lassen will. Mir geht es darum, ich muss oft mehrere Dateien an Ausführungsfirmen schicken, die vorher bereinigt werden müssen. Dynamischen Blöcke gebe ich ungern weiter und löse sie vorher lieber auf. LG Pit Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archtools Mitglied
Beiträge: 965 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 30. Sep. 2022 10:19 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
Zitat: Original erstellt von cockpit:
Mir geht es darum, ich muss oft mehrere Dateien an Ausführungsfirmen schicken, die vorher bereinigt werden müssen. Dynamischen Blöcke gebe ich ungern weiter und löse sie vorher lieber auf.
Ich habe Verständnis dafür, dass Du Dein KnowHow in Form dynamischer Blöcke nicht kostenfrei außer Hand geben willst. Aber ich erwarte natürlich, dass Du dann anerkennst, dass ich das mit meinem Lisp-KnowHow nicht anders mache.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 30. Sep. 2022 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
Hallo cockpit, das Lisp hier macht aus allen dynamischen Blöcken Statische Blöcke ohne diese aufzulösen. Musst aber selbst noch Layer entsperren usw. Code: (vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)) ) (vlax-for obj block (if (and (= (vla-get-objectname obj) "AcDbBlockReference") (= (vla-get-isdynamicblock (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)) ) (vla-get-effectivename obj) ) ) :vlax-true ) ) (progn (setq n 1) (while (tblsearch "block" (strcat (vla-get-effectivename obj) "_" (itoa n)) ) (setq n (1+ n)) ) (vla-converttostaticblock obj (strcat (vla-get-effectivename obj) "_" (itoa n)) ) ) ) ) )
------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 04. Okt. 2022 12:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Andreas, danke für Deine großartige Hilfe! (...hier der Stand vom Skript, falls noch andere es benötigen...) Das Skript ist fast perfekt, um es auf mehrere Dateien nacheinander anzuwenden...(SCC2.vlx) Es fehlt noch das Löschen aller ausgeschalteten und gefrorenen Layer. (... nicht dargestellte Geometrie, liefern wir nicht mit) Wie könnte an das machen? Es wäre schön, wenn nochmal jemand hilft... (... falls nicht, ein Dank an alle Beteiligten) LG Pit [Diese Nachricht wurde von cockpit am 04. Okt. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 04. Okt. 2022 12:13 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
das Löschen der Layer ist ja die eine Sache. Was ist mit den ganzen Elementen, die auf diesen Layern liegen? Nicht zu vergessen, die Elemente in Blöcken und weiteren Objekten wie Bemassungen etc. Gehen tut das alles, ist nur eine Frage des Aufwandes. ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 04. Okt. 2022 13:58 <-- editieren / zitieren --> Unities abgeben:
|
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 05. Okt. 2022 19:11 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
Habs eben erst gelesen da ich coronabedingt flachlag (endlich bin ich ein positiver Mensch, ich habs schriftlich ) Bin wieder da, wenn noch was gebraucht wird. Fürs löschen schlage ich (command "_laydel") vor. Layerliste erstellen und dann abarbeiten. ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 10. Okt. 2022 10:52 <-- editieren / zitieren --> Unities abgeben:
Entschuldigung erstmal, ich bin nicht alle Tage im Forum... (...ich hoffe bei nächsten Thema geht es schneller ) Hallo Andreas, der Tipp mit _Layerdel ist gut, aber ich will die ganzen Layer (aus und gefroren) in einer Liste gar nicht angeben. Es soll eher eine Bedingung sein (lösche alle gefroren und ausgeschalten Layer mit allen Inhalten), da das Skript über mehrere Dateien laufen soll und es immer unterschiedliche Layer von DwG zu DWG sind. LG Pit Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archtools Mitglied
Beiträge: 965 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 11. Okt. 2022 11:08 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
Zitat: Original erstellt von cockpit: Entschuldigung erstmal, ich bin nicht alle Tage im Forum... (...ich hoffe bei nächsten Thema geht es schneller )Hallo Andreas, der Tipp mit _Layerdel ist gut, aber ich will die ganzen Layer (aus und gefroren) in einer Liste gar nicht angeben. Es soll eher eine Bedingung sein (lösche alle gefroren und ausgeschalten Layer mit allen Inhalten), da das Skript über mehrere Dateien laufen soll und es immer unterschiedliche Layer von DwG zu DWG sind. LG Pit
Das ist eigentlich trivial. Gucke einfach mal in der DXF-Liste eines Layers, wie der jeweilige Status dort gespeichert ist, und dann läufst Du durch die ganze Layertable und löschst alle Elemente auf den gefrorenen und ausgeschalteten Layern. Vergiss aber nicht, dass Blockdefinitionen auch Elemente auf ausgeschalteten und gefrorenen Layern haben können, auch wenn sie auf anderen Layern eingefügt sind. Am Schluss dann bereinigst Du diese geleerten Layer. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 12. Okt. 2022 11:01 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
Zitat: ...aber ich will die ganzen Layer (aus und gefroren) in einer Liste gar nicht angeben.
Das sollst du ja auch nicht. Die Layer müssen natürlich für jede Datei ermittelt werden. Wie Pit schon geschrieben hat einfach bei den Layern schauen was aus/gefrohren ist und das dann _laydel übergeben. So vielleicht: Code: (vlax-for layer (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)) ) (if (or (= (vla-get-freeze layer) :vlax-true) (= (vla-get-LayerOn layer) :vlax-false) ) (command "_laydel" "_n" (vla-get-name layer) "" "_y") ) )
------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 13. Okt. 2022 13:32 <-- editieren / zitieren --> Unities abgeben:
|
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 24. Okt. 2022 15:50 <-- editieren / zitieren --> Unities abgeben:
Zuerst ein Dank an Andreas Kraus, für die entscheidende Mithilfe. Ein Dank an CADwiesel für das SCC2.vlx ... und auch archtools, für die Tipps ... Hallo Cadler: Zusammenfassung: 1. Das mitgelieferte Skript macht, was es soll, bindet xref, löscht alle ausgeschalteten und gefroren Layer mit den darauf befindlichen Inhalten für eine Datenübergabe an Fremdfirmen. Dynamische Blöcke werden in "normale" umgewandelt, (Ausgeschaltete Layer..., heißt aber nicht gleich unsichtbar! (--> Blöcke, die intern auf einem anderen sichtbaren Layer liegen..., sauberes Arbeiten notwendig💡 ) 2.die Mehrfachausführung mit SCC2.vlx funktioniert auch, warum die unbenannten Blöcke nicht gelöscht werden, bleibt mir ein Rätsel. (im Gegensatz zur reinen Skriptabarbeitung!) Gibt es dafür einen Grund? LG Pit [Diese Nachricht wurde von cockpit am 24. Okt. 2022 editiert.] [Diese Nachricht wurde von cockpit am 24. Okt. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 24. Okt. 2022 16:02 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
|
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 24. Okt. 2022 17:09 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 24. Okt. 2022 17:20 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
|
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 25. Okt. 2022 09:06 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen, meines Erachtens ja.... (Dateigröße vorher 2.6 MB / nach dem Skript 0.9 MB, ) (Reduzierung der Layer von 120 > auf 35, ein bisschen Statistik muss sein ) ...für mich eine tolle Hilfe, da ich oft mehrere Pläne habe... (deswegen gern mit dem Scriptgenerator...) LG Pit Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 25. Okt. 2022 17:34 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
Ja das sieht gut aus (bei dir), bei mir läuft es jedoch nicht durch und somit kann ich nicht bei deinem Problem ansehen Kann es ja nicht 1:1 nachvollziehen und somit kenne ich die Blöcke nicht um die es geht usw., daher bin ich leider raus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |