• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Ersetzen Sie mehrere Zeichnung Papierblock in AutoCAD 2008

Ich muss den Namen des Blocks kennen, den Namen der Etiketten, die geändert werden müssen, die neuen Texte zu schreiben und die Version von Autocad, auf dem Sie arbeiten.
 
Ich muss den Namen des Blocks kennen, den Namen der Etiketten, die geändert werden müssen, die neuen Texte zu schreiben und die Version von Autocad, auf dem Sie arbeiten.
Vielen Dank für Ihre Hilfe!
Dann ist der Name des Cartiglio (Block) Cartiglio_00 .

Diese unten aufgeführten sind die Attribute, die in jedem Ordner enthalten sind:

Vertragspartner
Gegenstand
Standort_Intervention
Phase_des Projekts
Identifikationsnummer
typology_of_document
Beschreibung_of_document
00/gen/001
Beschreibung1
aaaaaa
b)
cc
002
Beschreibung2
aaaaa
b)
ccc
003
Beschreibung3
aaaaaa
b)
ccc3
004
Beschreibung4
aaaaaa
b)
cc
00/gen/005
Warenbezeichnung
Aah!
bb5

C

und
Skala
A1
C0000_j00_e000_00.dwg
Name/System
Name/Designer_sg
Name/societa_ar
Name/Designer_ar
Name/societa_comm
Name/n des Kunden
Name/societa_ditta
Name und Name
Stempel_copy_intern


autocad 2010 voll verwenden.

Was den Namen der Texte zum Wiedereintritt angeht... Nun, jetzt weiß ich es nicht!
Ich glaube, dass die Funktion global sein muss, um mehrmals auf verschiedenen Aufträgen verwendet werden, so dass ich ein Einfügen oder Modifizierung eines Labels (oder mehrere Labels) in einem Schuss nur auf mehreren Designs. .
..z.B. wenn ich zum Ende der Arbeit erkennen muss, dass ich das Datum des Projekts ändern muss, würde ich gehen, um das Label "00/gen/001" der ersten Revision zu ändern, um dann auf allen Bildern in einem Ordner implementiert werden.


..wenn Sie eines Tages den Namen des Knorpels oder eines dieser Etiketten ändern möchten, wäre ich in der Lage, die Funktion unabhängig zurückzusetzen? ?

Danke noch mal.
 
die angeschlossene Funktion besteht aus 4 separaten Dateien.
1) c-cattr ist der primäre Befehl, der am Anfang gestartet wird und das ist, was öffnet eine Hintergrund-Autocad-Sitzung und sendet Befehle an diese Sitzung mit der Funktion (vla-sendcommand).
2) cattr ist der eigentliche Modifizierungsbefehl des Knorpelblocks. Suchen Sie alle Papiere mit diesem Namen und verbringen Sie eine nach dem anderen.
3) mod_attr ist die Funktion, die das Etikett ändert.
4) Ordner ist die Funktion, die den Ordner wählt, in dem sich die Zeichnungen befinden.

Insbesondere können Sie Etiketten ändern.
(Mod_attr-Block-Ei)

Themen:
block - Entität repräsentiert den Knorpel
Etikett - Zeichenkette, die eines der zu ändernden Etiketten darstellt
Neuer Text - Zeichenfolge, die den Text darstellt

Beachten Sie, dass ich mehrere Zeilen mit mod_attr einfügen kann:
(mod_attr block "00/gen/001" "01/02/2012")
(mod_attr block "description1" "variante Updates")
(mod_attr block "aa1" "pink ball")

Speicher werden nach den Änderungen gemacht und der letzte aufwändig zu ändern, die Autocad-Sitzung im Hintergrund schließt und bleibt das aktuelle Design, aus dem der c-cattr-Befehl gestartet wurde.
um den Funktionstyp zu laden:
( laden Sie "funktion_riname") und dann c-cattr. der Rest ist automatisch.

ps: Ich fragte Sie die Autocad-Version, aber es funktioniert tatsächlich auf allen Versionen ab 2000.
 

Anhänge

Mom mein cher arbeitete confutatis.... Danke!
...aber ich kann es nicht richtig funktionieren (ich hatte keinen Zweifel!) :-)

Ich habe das Gefühl, dass ich die Funktion anpassen muss, indem ich die Labels, die ich berücksichtigen möchte, und den neuen Text, den ich einfügen möchte, ändere.
sagte:
Original Funktionsteil(setq docs (vla-get-documents acad_app)
Herkunft (Ordner "wählen Sie Ihren Quellordner"
"c:\Dokumente und Einstellungen\user\\desktop"
)
listfiles (vl-directory-files origin "*.dwg" 1)
)

(Foreach Listfiles Element)
(setq dis2 (vla-open docs (strcat origin "\\" element))
(vla-sendcommand dis2 "(load \"function_rename\") ")
(vla-sendcommand dis2 "cattr ")
(vla-close dis2 :vlax-true)
)

(vla-sendcommand (vla-item docs 0) (strcat "(command \"_quit\") _y ")
(vlax-release-object acad_app)
(princ)
)

(defun c:cattr (/Grublo-Index)
(setq grublo(ssget "x"(0 . "insert")(2 . "cartiglio_00")))
Index
)
(Repeat)
(mod_attr (ssname grublo (setq index(1+ index))) "tag3" "newtext!"); <-- hier können Sie Etikett und Text ändern
;;;(mod_attr (vlax-ename->vla-object (sssname grublo (setq index(1+ index))))))))
)
)

Funktionsteil modifiziert von mir (2 zu ändernde Textwerte) (setq docs (vla-get-documents acad_app)
Herkunft (Ordner "wählen Sie Ihren Quellordner"
"c:\Dokumente und Einstellungen\user\\desktop"
)
listfiles (vl-directory-files origin "*.dwg" 1)
)

(Foreach Listfiles Element)
(setq dis2 (vla-open docs (strcat origin "\\" element))
(vla-sendcommand dis2 "(load \"function_rename\") ")
(vla-sendcommand dis2 "cattr ")
(vla-close dis2 :vlax-true)
)

(vla-sendcommand (vla-item docs 0) (strcat "(command \"_quit\") _y ")
(vlax-release-object acad_app)
(princ)
)

(defun c:cattr (/Grublo-Index)
(setq grublo(ssget "x"(0 . "insert")(2 . "cartiglio_00")))
Index
)
(Repeat)
(mod_attr (ssname grublo (setq index(1+ index))))Beschreibung1"Erste Überprüfungsfrage";
(mod_attr (ssname grublo (setq index(1+ index))) "00/gen/001"1. Januar 2012"); <-- hier können Sie Etikett und Text ändern
;;;(mod_attr (vlax-ename->vla-object (sssname grublo (setq index(1+ index))))))))
)
)




... aber nichts.
der erste Teil der Funktion (der c-cattr) funktioniert, und macht mich daher den Pfad der Zeichnungen zu wählen und öffnet sie alle in einer zweiten Sitzung von autocad..unglücklich, wenn es in die letzten offenen Dateien kommt, schließt es die Sitzung ohne Änderung etwas.

Ich bitte um Lumi.
 
das Gesetz der Murphy wieder getroffen..

(mod_attr (ssname grublo (setq index(1+ index))))) "description1" "erstes Verifikationsproblem");
(mod_attr (Name grublo index) "00/gen/001" "01 Januar 2012"); <-- hier können Sie Etikett und Text ändern

der geschriebene (setq index(1+ index)) ist nur die erste Zeile von mod_attr gültig, die anderen müssen nur Index haben. Mein Fehler, das habe ich vergessen.
 
da ich nicht weiß, von denen, die diese Funktion benutzt haben, wenn sie funktioniert, sende ich eine nachträgliche Überprüfung. wir akzeptieren Anomalien, Kritik, Verbesserungen und Vorschläge.
 

Anhänge

Es ist ziemlich einfach.
Öffnen Sie die erste Datei.
über Blockeditor, bearbeiten Sie das Papier, speichern Sie die Änderungen, die Sie bemerken, dass die Attribute unverändert geblieben sind.
gespeichert, mit wblock, dem Stationsblock, Dateiname = Blockname.
Öffnen Sie die zweite Datei, setzen Sie die attreq auf 0 Variable, geben Sie den Warenkorb
-_insert nameblocco=lock name "0,0" 1 0
Löschen Sie den gerade eingefügten Block:
_erase _last
durch den Skriptgenerator, den Sie hier auf cad3d finden, können Sie alles automatisieren.
Viel Spaß
Hallo an alle: ... und dennoch erinnere ich mich, dass es funktionierte und ich habe es mehrmals mit Zufriedenheit benutzt... aber jetzt kann ich es nicht mehr machen... hilfst du mir?

Ich befolgte alle Anweisungen, starten Sie Excel, wählen Sie meine 180 dwg, auf die ich Logo und Text auf der Cartiglio-Basis löschen muss, um die ganze anonym zu machen, aber gleichzeitig halten Sie die Daten-Attribute, kopieren Sie die Einstellungen neben Excel, ich erstellen das Skript und speichern Sie es, so die Einführung, aber es blockiert mich am ersten Schritt, ohne einen Warenkorb zu ändern...

Geben Sie den Designnamen zu öffnen <c:\reggio\500.dwg>: "c:/reggio2/500.dwg"
Öffnen einer Datei im Format autocad 2000.
Regenerationsmodell im Gange.
Das Laden der Autocad-Menüprogramme erfolgte.
<copyright: claudio="" granuzzo="" ing.="">Geben Sie allessu0 ein, um das Programm zu starten!
dwg Datei autodesk. Dies ist eine zertifizierte Dwg-Datei, deren letzte Rettung
mit einer Selbst-Desk-Anwendung oder einer lizenzierten Anwendung
autodesk.
Befehl: (Befehl "setvar" "attreq" 0)
setvar befehl unbekannt "setvar". drücken f1 für die Führung.
Befehl: attreq
neuen Wert für attreq eingeben <0>: 0
Befehl: nil

Was ist los? Wie mache ich das?
Ich arbeite nicht mal an dem zippten Beispiel, das ich hier heruntergeladen hatte...
</copyright:></c:\reggio\500.dwg>Ich bin ein kleines Beispiel, sagen Sie mir, wie es funktioniert?
 

Anhänge

Ersatz Setvar mit Wege.
ist derselbe Befehl, aber auf Italienisch

Diese Linie Milben Ich verstehe es nicht, aber heute Abend bin ich ein wenig verstopft und ich hoffe, es ist genug Befehl auf Italienisch, um Dinge auszuprobieren.
 
Ersatz Setvar mit Wege.
ist derselbe Befehl, aber auf Italienisch

Diese Linie Milben Ich verstehe es nicht, aber heute Abend bin ich ein wenig verstopft und ich hoffe, es ist genug Befehl auf Italienisch, um Dinge auszuprobieren.
Ciao Die Masse, danke, es beginnt sich zu drehen, aber wir sind noch nicht da, ich versuche für den Teil der Zukunft zu erklären, die jetzt verstanden und dann hoffe ich, dass jemand mir helfen wird, zu schließen ;).

1) die Excel-Datei "simplely" dient dazu, ein Skript zu erstellen, das "ist nichts anderes" als eine Liste von Befehlen, die Sie auch von Hand auf acad schreiben könnten, im Grunde excel nimmt die Befehle, die Sie in Spalte schreiben und eine Art Makro erstellen.
2) warum, heute der Befehl modvar (Italienisch) Funktionen und der Befehl setvar (der gleiche Befehl in Englisch) nicht funktioniert unklar (für andere _setvar mit dem "_" vorne macht es international und immer interpretierbar in jeder Sprache, für die ... nicht so bleibt das Geheimnis, aber tantè, heute mit modivar der Zyklus dreht und kommt am Ende.
3) miatab ist der Name des alten Blocks, den Sie durch das neue ersetzen möchten: im heutigen Test, da der alte Cartiglio-Block mit Logo "cart-compil" genannt wird, habe ich es in "cartiglio-origin" umbenannt, indem der Befehl "_rename" dann erstellt wurde (und davon bin ich nicht sicher, dass ich es gut gemacht habe, und in der Tat Ich frage: Wie speichern Sie auf c:/registrieren Sie die Kopie des Cartiglio-Blocks mit den Attributen, indem Sie nur das Logo und das Schreiben unten entfernen und das 0.0 in der gewünschten Einführstelle zuordnen?) "paper-ohne_logo_e_note", an diesem Punkt der Befehl, in Excel gesetzt und dann im Skript wurde
"Papieroriginal=c:\reggio3\cartiglio-senza_logo_e_note"
... dass ich als: "Ersetzen Sie den ursprünglichen Cartiglio-Block mit c block:\reggio3\cartiglio-senza_logo_e_note"

4) "0,0" Ich glaube gibt die Schließeinlage Position,
"1" die Skala
"1"... es müsste Rotation sein... also wäre Null besser... Ich verstehe nicht, warum ich 1"0" ... Ich verstehe nicht, wofür es ist"_erase"... Ich glaube Tore...
"_last"... Der letzte...? Aber was?"_qsave" ... speichert die offene und geänderte Datei
"_close" ... die offene und geänderte Datei schließen

an diesem Punkt, der Zyklus, wie ich sagte, ich tat und ersetzt die Blöcke, nur dass ich in meinem Fall mehrere Probleme habe:
- neue Standort Blöcke falsch (wenn ich herausfinden kann, wie man die Kopie richtig speichern, wie ich oben fragte, ich denke, es wird funktionieren)
- bleiben sowohl die richtigen Attribute als auch die in den neuen Block eingefügt (ich habe offensichtlich nicht gut verstanden, wie man die Attribute im neuen Block verwaltet... siehe oben ..
- die Skala ist falsch, manchmal ist der neue Block richtig, manchmal klein, manchmal groß: das, weil ich denke, ich habe verschiedene Bogengrößen a4,a3,a2,a1,a0 ... und auch das ist nicht, wie ich es lösen.. ... Ich würde den üblichen Helfer brauchen...
 
im Skript ist der setivar Befehl nicht mit dem Underscore vor, vielleicht ist die Installation, die Sie gemacht haben, auf Italienisch und dann die Befehle, die Sie auf Italienisch geben müssen.
die Rede von miatab=eccc.... Ich kam dort nach einer Weile an (wenn ich falsch bin, aber Sie haben ein altes Skript mit wenig Wissen über Ursache erschossen?), was ich vorschlagen, ist, eine Beschreibung ihrer Funktion an die Kontrollen zu schreiben, so dass Sie sofort die Bedeutung verstehen, wenn Sie es nach einiger Zeit zurück in die Hand nehmen.
dann die Befehle, die Sie starten, wenn Sie den Block eingeben sind:
Einführpunkt (0,0)
x Skala (1)
(1)
Drehbuch (0)
Löschen (erfordert ein Objekt zu löschen)
Letztes (die letzte eingefügte Position löschen)

aufgrund der letzten beiden Befehle wird erklärt, dass sie durch Eingabe eines Blocks mit demselben Namen neu definiert werden. dann haben Sie noch den Insert-Befehl aktiv und geben dann die Werte für das Einfügen. was an diesem Punkt passiert, dass Sie mit dem alten aktualisierten Block (obwohl vollständig hoch) und einem neuen, bei 0,0 eingeführten, also ein Doppel; in diesem Fall löschen und zuletzt löschen Sie den letzten Block.
Dies geschieht, weil Sie durch Skript den Esc-Schlüssel nicht emulieren können, der den Befehl kurz nach der Neudefinition des Blocks stoppt; oder besser kann ich es nicht einmal tun Das ist post hatte den Weg gefunden.
- neue Standort Blöcke falsch (wenn ich herausfinden kann, wie man die Kopie richtig speichern, wie ich oben fragte, ich denke, es wird funktionieren)
- bleiben sowohl die richtigen Attribute als auch die in den neuen Block eingefügt (ich habe offensichtlich nicht gut verstanden, wie man die Attribute im neuen Block verwaltet... siehe oben ..
- die Skala ist falsch, manchmal ist der neue Block richtig, manchmal klein, manchmal groß: dies, weil ich glaube, ich habe verschiedene Bogengrößen a4,a3,a2,a1,a0
wie Sie Zeichnungen mit verschiedenen Skalen haben (ich stelle mir vor, aus solidworks kommen, sonst repent and start making 1:1 Karten in layout space) können Sie nicht, nicht mit einem einfachen Skript, einen neuen Block einfügen, weil es nie die gleichen Koordinaten und selten dieselbe Skala haben wird. dann müssen Sie alles auf die Neudefinition des vorhandenen zeigen, während Sie die vorherigen Einstellungen beibehalten (auch weil es die Werte eingefügt hält). wie ich es Ihnen jetzt nicht sagen kann, aber denken Sie, dass ich immer noch dinieren muss, dass ich auch schon lange bin.
Wenn zufällig, was Sie innerhalb des Blocks löschen müssen, in dem Sie die Texte in rot lesen sind Blöcke oder Attribute, die Sie denken, nur diejenigen zu ersetzen: das Logo tun den gleichen Prozess bisher für die Attribute hier lesen http://www.cad3d.it/forum1/threads/script-per-editare-attributi-di-un-blocco.22583/
 
um Blockattribute zu beheben
attsync (synchronisiert Blöcke mit Attributen)
n (indiziert als Auswahlart den Namen)
Name Block

dies bleibt zu verstehen, warum der Ursprungspunkt nicht mit dem des alten Blocks korrespondiert (durch die Art, wie Ihr Schloss ohne Logo einen Block innerhalb eines Blocks auslöst, explodiert es im dwg Papier ohne Logo)

Ich habe verstanden, warum der falsche Einführpunkt und es ist absurd trivial, aber ich dachte nicht, dass es einen solchen Fehler gab. In der Praxis hat der zu ersetzende Block nicht den unteren Scheitel zu destr asullo 0.0, während was geht zu ersetzen ja.
 
Zuletzt bearbeitet:
am Ende der Messe funktioniert das anfängliche Skript gut (außer, um den Befehl setvar mit modivar zu untertiteln) und all dieses Casino wurde geboren, weil der Cartiglio-origin-Block den Einschubpunkt mit dem Maurerzähler platziert hat.
Ich hänge die Datei cartiglio-senza_logo_e_note an, an die ich den Ursprung verschoben habe, damit sie dem anderen entspricht.
Verwenden Sie dies und starten Sie das Skript und Sie werden sehen, dass es funktioniert und wenn Sie ruhig hinzufügen Strings für Sync
 

Anhänge

wenn es das andere Mal funktionierte es wahrscheinlich aus schlechten Excel gestartet.
Währenddessen, um zu überprüfen, dass es funktioniert, schreiben Sie es per Hand auf dem Notizblock.
 
1522827423170.pngdie Funktion, die Sie nicht erkennen, ist Teil der in blau markierten Bücherregale, in vba gehen Sie auf Werkzeuge / Referenzen und überprüfen Sie die Anwesenheit.
 
wenn Sie autocad auf Italienisch haben
(Befehl "setvar" "attreq" 0)
wird
(Befehl "_setvar" "attreq" 0)
oder
(setvar "attreq" 0)
oder
(Befehl "attreq" 0)
 
wenn Sie autocad auf Italienisch haben (Befehl "setvar" "attreq" 0) wird (Befehl "_setvar" "attreq" 0)
ok, con Wege Ich werde auch mit _setvar versuchen, es international zu machen
Währenddessen, um zu überprüfen, dass es funktioniert, schreiben Sie es per Hand auf dem Notizblock.
getan und nicht gearbeitet
wenn es die andere Zeit funktionierte, begann es wahrscheinlich schlecht übertreffen
... effektiv nach einem schönen Neustart (ab Geburt ...) jetzt Ihre Testarbeiten... aber ...

:cry::cry:
Ich fürchte, ich habe ein weiteres Problem, das ich nicht überwinde...
in Ihrem Test und in meinem Test wurde der zu ersetzende Karton als "cartiglio-original" bezeichnet.
während in Wirklichkeit der zu ersetzende Cartiglio "cartigli duno 1" (mit Leerzeichen ...) genannt wird und dann beim Start das Skript mich beantwortet:
Papiere.dwg: unmöglich, die Datei im Suchort zu finden:"
... wenn sie dagegen das Original als "cartigli_duno_1" (ohne Leerzeichen) aufgeben, kann das Skript den Warenkorb ersetzen ...
Also scheint der Raum ihn zu stören... aber ich kann den Namen nicht auf alle Dateien aller dwg ändern, so viel, so dass es alles von Hand ändern kann...
wie verdaue ich die Räume zum Skript/Autokad?
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben