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

Ersetzen einer Einheit in einem Block

  • Ersteller Ersteller StoneDesign
  • Erstellt am Erstellt am

StoneDesign

Guest
Guten Morgen.
Ich habe ein Problem mit Autocad-Blöcken.
Ich müsste eine Einheit innerhalb eines Blocks durch eine andere Einheit desselben Typs ersetzen.
Ich habe den Namen aller Beteiligten, aber ich habe keine Ahnung, wie ich sie ersetzen soll.

Hast du Ideen?

Danke.
Squarzoni luigi
 
Sie können meinen varblok verwenden, der es Ihnen erlaubt, Objekte zu einem Block hinzuzufügen oder zu entfernen.
in Ihrem Fall geht es darum, die alte Entität zu entfernen und dann den Befehl neu zu laden, um die neue hinzuzufügen.
 

Anhänge

Danke, es kann eine gute Lösung sein, aber ich muss den Befehl viele Male ausführen.
Ich habe etwas mit vl-Funktionen gesehen... aber ich finde keine ausführlichen Unterlagen darüber.

Er macht es.
 
Ist es nicht einfacher, die Blöcke durch die aktualisierten zu ersetzen? Sie können es durch ein Skript auf allen notwendigen Dateien ausführen.
"Ich habe den Namen aller Beteiligten"; Was meinst du? Es ist ein Text, eine Zeile, was? mit einem anderen Äquivalent oder Typ ersetzt werden?
Wenn Sie im Detail gehen, ist es einfacher, Ihnen zu helfen, wenn Sie nicht handlich sind, um Hand an die Kontrollen, um die Blöcke zu ändern, scheint nicht wie ein guter Anfang, in der Tat, ich würde eine schlechte sagen.
 
Jetzt denke ich, dass Autocad die Funktion hat, die Blöcke zu ersetzen. Da mein Intellicad es nicht hatte, schrieb ich dieses kleine Dienstprogramm.
Code:
(Defun ersetzt()
(setq memblock 0)
(prompt "\ersetzt ausgewählte Blöcke <point cro="" las="" pre="" win="">. "
(setq selez(ssget))
(falls (/= selez nil)
(Progn)
(setq l(sslength selez))(setq l(1- l))(setq a 0))
(inkl.
(Progn)
(setq ename(sname selez a)))
(setq alist(entget ename))
(wenn (= "Insert"(cdr(assoc 0 alist)))))
(Progn)
(setq bn (cdr (assoc 2 alist)); Blockname erhalten
; (prompt) ---------------------------------------------------
(setq newname (getstring ( strcat "insert new block name for "bn" : ")))))
(Eingabeq alist (Unterseite (cons 2 newname ) (assoc 2 alist ))
(falls (entmod alist) (setq mes " ok.) (setq mes ", aber das ******* haben Sie wieder geschrieben? Nein.
(setq memblock 1)
)
)
)
(Setq a(1+) (a)
)
)
(falls (/= memblock 0)
(Progn)
(prompt "\nblocks to reload found.\n")
(prompt)
)
(prompt "\nblocks to recharge not found. "
)
)
)
)</point>
 
gelöst!
Ich trage die Linie unten mit den Funktionen vl....
es löst mein Problem

Er macht es.

(vl-load-com)
(setq minted (car (nentsel "wählt die zu eliminierende Blockgröße")))

(Schritt) (Schritt) (Schritt)
(vla-delete)
(Schritt) (Schritt) (Schritt)

(Befehl "_regen")
 
<grazie, buona="" comando="" devo="" essere="" il="" io="" lanciare="" ma="" può="" soluzione="" tantissime="" una="" volte.="">Also, was hast du gelöst?</grazie,>
 

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