Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  block umbenennen

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 umbenennen (3257 mal gelesen)
stolti
Mitglied
technischer zeichner


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

Beiträge: 373
Registriert: 05.09.2007

auto_cad 2008
athena 2008
DELL Precision PWS390
Intel Core2 CPU 6600
2gb RAM
2.40 GHz

erstellt am: 08. Jun. 2008 16:15    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 experten.
ich bin ja wie gesagt momentan am beginn meiner lisplerei.

also hab ich mir mal nen befehl gesucht, der blöcke umbenennt, den ich modifizieren will. da ja einige lips den block auflösen (was ich bein dynamik ja nicht will) will ich jetzt einfach den block anklicken, den namen angezeigt haben, damit ich weiß wie der heisst und dann den neuen namen eingeben können.

ich kapier folgendes ja auch quasi/fast.
nur ich komm nicht weite.r

kann mir jemand eine anregung geben, wie ich vorgehen muss?


(defun C:BLOCKNAME(/ blkname oldname newname)

((setq blkname (ssget)

(command "_RENAME" "Block" (substr (getvar "blkname") 1 (- (strlen (getvar "blkname"))))))

(tblobjname "BLOCK" oldname)

)


vielen dank
stolti

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

stolti
Mitglied
technischer zeichner


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

Beiträge: 373
Registriert: 05.09.2007

auto_cad 2008
athena 2008
DELL Precision PWS390
Intel Core2 CPU 6600
2gb RAM
2.40 GHz

erstellt am: 08. Jun. 2008 16:57    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

es ist auch so, dass verschiedenen block umbenennungstools die man findet bei mir zumindest teilweise probleme haben dynamische blöcke umzubenennen....

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 08. Jun. 2008 18:41    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 stolti 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von stolti:


(defun C:BLOCKNAME(/ blkname oldname newname)

((setq blkname (ssget)

(command "_RENAME" "Block" (substr (getvar "blkname") 1 (- (strlen (getvar "blkname"))))))

(tblobjname "BLOCK" oldname)

)


vielen dank
stolti



Aua, aua ... (ssget) liefert einen Auswahlsatz ....
(getvar "blkname") .. eine Systemvariable "blkname" gibts nicht usw. .. du hast irgendwelche Codezeilen zusammenkopiert ohne eine einzelne zu verstehen !

(setq OBJ(car(entsel)))  .... läßt den Nutzer ein Objekt wählen
(setq DATA(entget OBJ)) ... liest die beschreibende Datenliste aus
(=(cdr(assoc 0 DATA)) "INSERT")  .. prüft, ob eine Blockreferenz gewählt wurde
(setq NAME(cdr(assoc 2 DATA)))  .. liest den Blocknamen aus (nicht den Effektivnamen bei dyn. Blöcken)  .. welchen du dann bei rename verwenden kannst

(setq Newname NAME)
(setq NR 0)
(while(tblobjname "BLOCK"  Newname)
(setq NEWNAME(strcat NEWNAME (itoa (setq NR(1+ NR)))))
)  -> Ermittelt einen neuen Blocknamen

(setq OBJDATA(subst (cons 2 NEWNAME) (assoc 2 OBJDATA) OBJDATA))
-> tauscht den NAmen in der NAmensliste
(entmod OBJDATA) -> modifiziert den Block

(alles ungetestet und jetzt so hiereingeschrieben, kann sein, das noch ne Klammer fehlt, oder so, aber das Prinzip dürfe klarer sein ?! )
------------------
      - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 08. Jun. 2008 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 Nur für stolti 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von stolti:
es ist auch so, dass verschiedenen block umbenennungstools die man findet bei mir zumindest teilweise probleme haben dynamische blöcke umzubenennen....

..ja, weil sie den Blocknamen vom angeklicktem Insert abnehmen statt den Effektivnamen über ActiveX zu ermitteln....

aber fang an deiner Stelle etwas kleiner an 

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

stolti
Mitglied
technischer zeichner


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

Beiträge: 373
Registriert: 05.09.2007

auto_cad 2008
athena 2008
DELL Precision PWS390
Intel Core2 CPU 6600
2gb RAM
2.40 GHz

erstellt am: 08. Jun. 2008 18:47    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

d.h.
es ist unwahrscheinlich, dass ich das jetzt mit den funktionen, die du hier reingepostet hast hinkriege?
(ja. genau. aua aua).

aber das wär echt klasse, wenn sone blockumbenennung funktionieren würde.
d.h. würdest du mir freundlicherweise assisten?


genauso:
eine blockdefinition kopieren. findet man auch nur mit explode und dann neu definiert.
die müsste man dann ja quasi so aufbaun. block auswählen-bedit-bsaveas-name-bclose?

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 08. Jun. 2008 20:56    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 stolti 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von stolti:
d.h.
es ist unwahrscheinlich, dass ich das jetzt mit den funktionen, die du hier reingepostet hast hinkriege?
(ja. genau. aua aua).

probier die obigen Sache einfach Schritt für Schritt in der Befehlszeile aus .. dann lernst du ach, was die Funktionen zurückgeben, welche Parameter sie erfordern usw.

 

Zitat:
Original erstellt von stolti:

aber das wär echt klasse, wenn sone blockumbenennung funktionieren würde.
d.h. würdest du mir freundlicherweise assisten?


Dich auf den rechten Weg zu bringen, versuche ich, assistieren derart, das ich dir hier so eine Funktion reinstelle: Nein!

 

Zitat:
Original erstellt von stolti:

genauso:
eine blockdefinition kopieren. findet man auch nur mit explode und dann neu definiert.
die müsste man dann ja quasi so aufbaun. block auswählen-bedit-bsaveas-name-bclose?

Nein .. entweder eine Blockreferenzen exploden, alle dabei entstandenen Objekte einsammeln und einen neuen Block draus machen, oder : via ACtiveX einen neuen Block erzeugen mit der Methode copyobjects Kopien der Objekte dem neuen Block übereignen und evtl. der schon existierenden Bloreferenz die neue Blockdefinition zuweisen. Evtl. kann man das auch über eine Temporäre neue Zeichnung und hinundzurückkopieren der Blockdefinition mit zwischendurch umbenennen mache.

Möglich ist sowas, aber kein Thema zum anfangen!!


Wenn du unbedingt in rel. kurzer Zeit solche Tools brauchst, beauftrage diese!

Blockumbenennen hatten wir ja hier schon mal... was paßt dir denn da nicht?

------------------
      - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

stolti
Mitglied
technischer zeichner


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

Beiträge: 373
Registriert: 05.09.2007

auto_cad 2008
athena 2008
DELL Precision PWS390
Intel Core2 CPU 6600
2gb RAM
2.40 GHz

erstellt am: 08. Jun. 2008 23: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

nein. das will ich gar nicht, dass du mir die hier reinstellst....

ich werd das jetzt alles mal ausprobieren.

an der funktion "stört" mich eben, dass ich teilweise dynamische blöcke nicht umbenennen kann.

ok. und das mit dem blockdefinition kopieren ist wohl auch sehr hoch.
du weißt nicht, ob das zufällig schon irgendwo existiert (also, dass er mir den block nicht explodiert etc...). ich will nicht, dass du das reinstellst, ich hab gesucht und ncihts gefunden.
vielleicht gibts da aber schon was, was ich nciht gefunden habe.

danke. stolti

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