_

zmiana nazwy bloku bez uzycia RENAME

Forum poświęcone flagowemu produktowi oraz aplikacjom pochodnym Autodesku. To jedyne forum mające w tytule nazwę programu, a to ze względu na jego olbrzymią popularność w Polsce. Można tutaj umieszczać również posty z ogólnie pojętej tematyki "Kreślarskie 2D".

zmiana nazwy bloku bez uzycia RENAME

Postprzez kruuger » cze 01, 2010 11:54

witam

czy jest mozliwosc zmiany nazwy bloku (programowo) bez uzywania polecenia _RENAME (nie dziala ono w trakcie edycji innego bloku)
cos na wzor lispow pana kojacka MAG i MAB gdzie mozna tworzyc anonimowe grupy i bloki bedac w trakcie edycji innych blokow.

dzieki
kruuger
Avatar użytkownika
kruuger
 
Posty: 4903
Dołączył(a): paź 27, 2005 20:14
Lokalizacja: Kraków

Re: zmiana nazwy bloku bez uzycia RENAME

Postprzez kojacek » cze 01, 2010 12:25

kruuger napisał(a):czy jest mozliwosc zmiany nazwy bloku (programowo) bez uzywania polecenia _RENAME (nie dziala ono w trakcie edycji innego bloku)
cos na wzor lispow pana kojacka MAG i MAB gdzie mozna tworzyc anonimowe grupy i bloki bedac w trakcie edycji innych blokow.



jest, wywołanie:
Kod: Zaznacz cały
(vla-put-name (vlax-ename->vla-object (cdr (assoc 330 (entget (tblobjname "BLOCK" "ABC"))))) "XYZ")

zmienia nazwę boku "ABC" na "XYZ",przy czym "XYZ" musi być POPRAWNĄ (do sprawdzenia funkcją snvalid) i NIEISTNIEJĄCĄ (w aktualnym rysunku, do sprawdzenia np. tblobjname) nazwą bloku.

ps.
kruuger napisał(a):(...) lispow pana kojacka (...)


dobre ;)

kojacek
Avatar użytkownika
kojacek
 
Posty: 5567
Dołączył(a): paź 03, 2005 20:17

Re: zmiana nazwy bloku bez uzycia RENAME

Postprzez kruuger » cze 01, 2010 13:04

pieknie, pieknie.
podziekowal
k.
Avatar użytkownika
kruuger
 
Posty: 4903
Dołączył(a): paź 27, 2005 20:14
Lokalizacja: Kraków

Re: zmiana nazwy bloku bez uzycia RENAME

Postprzez kruuger » cze 01, 2010 21:33

wydlubalem sobie cos takiego - zalacznik.
jednak za cholere nie moge dojsc czemu nagle przestal sie podswietlac wskazywany blok - (redraw OBJ 3).
kruuger
Załączniki
BlockRen.zip
(1.46 KiB) Pobrane 203 razy
Avatar użytkownika
kruuger
 
Posty: 4903
Dołączył(a): paź 27, 2005 20:14
Lokalizacja: Kraków

Re: zmiana nazwy bloku bez uzycia RENAME

Postprzez kojacek » cze 01, 2010 22:58

kruuger napisał(a):wydlubalem sobie cos takiego - zalacznik.
jednak za cholere nie moge dojsc czemu nagle przestal sie podswietlac wskazywany blok - (redraw OBJ 3).
kruuger



Nie próbował, acz patrzył w kod... :) Podświetlenie znika (pewnie) z powodu odpalenia okna dcl-owego. Użyj vla-Highlight (true/false) zamiast redraw. Inna uwaga - PO CO odczytujesz/zapamiętujesz/zmieniasz/przywracasz zmienną CMDECHO :?: - wszak program nieużywający COMMAND nie potrzebuje tegoż. Ponadto - obsługa błędów. Ogólną zasadą jest (przed przedefiniowaniem) zapamiętanie starej funkcji *error* , a na końcu zaś, jej przywrócenie. Tutaj mamy doczynienia z zastąpieniem standardowej funkcji twoją, a stara... (jak mawiają nasi południowi sąsiedzi) se ne vrati...
Doskonałości programowi dodawałoby sprawdzenie wybrania Xrefa (bloku także), (nie dynamicznego) bloku anonimowego. W niektórych tych przypadkach próba zmiany nazwy, (oględnie mówiąc) uruchamiałaby obsługę błędu... :)

kojacek
Avatar użytkownika
kojacek
 
Posty: 5567
Dołączył(a): paź 03, 2005 20:17

Re: zmiana nazwy bloku bez uzycia RENAME

Postprzez kruuger » cze 02, 2010 10:52

kojacek napisał(a):Podświetlenie znika (pewnie) z powodu odpalenia okna dcl-owego. Użyj vla-Highlight (true/false) zamiast redraw

- na samym poczatku podswietlanie dzialalo (nawet z oknem dcl), dopisalem troche kodu i w ktoryms momencie cos padlo. bede jeszcze dlubal. jak nie pomoze to zostanie Highlight

kojacek napisał(a):PO CO odczytujesz/zapamiętujesz/zmieniasz/przywracasz zmienną CMDECHO :?: - wszak program nieużywający COMMAND nie potrzebuje tegoż.

- no tak, sie rozpedzilem

kojacek napisał(a):Ponadto - obsługa błędów. Ogólną zasadą jest (przed przedefiniowaniem) zapamiętanie starej funkcji *error* , a na końcu zaś, jej przywrócenie. Tutaj mamy doczynienia z zastąpieniem standardowej funkcji twoją, a stara... (jak mawiają nasi południowi sąsiedzi) se ne vrati...

- ok

kojacek napisał(a):Doskonałości programowi dodawałoby sprawdzenie wybrania Xrefa (bloku także)

- jest xref wiec nie edytujemy nazwy-OK, ale o co chodzi z "(bloku takze)"

kojacek napisał(a):(nie dynamicznego) bloku anonimowego

- zmiana anonimowego bloku jest mi na reke (wiec chyba bedzie to dopuszczone)

dzieki
kruuger
Avatar użytkownika
kruuger
 
Posty: 4903
Dołączył(a): paź 27, 2005 20:14
Lokalizacja: Kraków

Re: zmiana nazwy bloku bez uzycia RENAME

Postprzez kojacek » cze 02, 2010 11:22

kruuger napisał(a): - jest xref wiec nie edytujemy nazwy-OK, ale o co chodzi z "(bloku takze)"

Bloku także w rozumieniu: "wszakże Xref blokiem jest także" ;)

kruuger napisał(a): - zmiana anonimowego bloku jest mi na reke (wiec chyba bedzie to dopuszczone)

Dopuszczone być powinno tylko dla anonimowych bloków związanych z blokami dynamicznymi - inne - zaś nie.
Inne bloki anonimowe powstają w wyniku kreskowania zespolonego, wymiarowania oraz operacji innych aplikacji AutoCAD-a. Swego rodzaju "ochroną" przed wybraniem takiego bloku jest wybór przez wskazanie obiektu, niemniej być może w przyszłości chciałbyś rozbudować program o wybór bloku przez nazwę, wtedy musisz o tym pamiętać. W przeciwnym wypadku "wynaturzysz" jakieś wymiary lub inne elementy.
===
1) Dodatkowo (wczoraj zapomniałem) - dodaj UNDO. Dobrze jest mieć możliwość wycofania się z pewnych działań... (przynajmniej w AutoCAD-zie... ;) )
2) Jeszcze będę miał małe uwagi dotyczące klarowności kodu, ale muszę się temu przypatrzeć dokładniej.

kojacek
Avatar użytkownika
kojacek
 
Posty: 5567
Dołączył(a): paź 03, 2005 20:17

Re: zmiana nazwy bloku bez uzycia RENAME

Postprzez kruuger » cze 02, 2010 11:59

kojacek napisał(a):Dopuszczone być powinno tylko dla anonimowych bloków związanych z blokami dynamicznymi - inne - zaś nie.
Inne bloki anonimowe powstają w wyniku kreskowania zespolonego, wymiarowania oraz operacji innych aplikacji AutoCAD-a. Swego rodzaju "ochroną" przed wybraniem takiego bloku jest wybór przez wskazanie obiektu, niemniej być może w przyszłości chciałbyś rozbudować program o wybór bloku przez nazwę, wtedy musisz o tym pamiętać. W przeciwnym wypadku "wynaturzysz" jakieś wymiary lub inne elementy.

wiem ze jest cos takiego:
*U### = anonymous blocks
*E### = anonymous non-uniformly scaled blocks
*X### = anonymous hatches
*D### = anonymous dimensions
*A### = anonymous groups - tylko jeszcze nie bardzo czaje jak sie zabrac za sprawdzanie tego.

kojacek napisał(a):1) Dodatkowo (wczoraj zapomniałem) - dodaj UNDO. Dobrze jest mieć możliwość wycofania się z pewnych działań... (przynajmniej w AutoCAD-zie... ;) )

tak z ciekawosci, czy tym wypadku undo jest konieczne? za bardzo chyba nie ma co cofac?

k.
Avatar użytkownika
kruuger
 
Posty: 4903
Dołączył(a): paź 27, 2005 20:14
Lokalizacja: Kraków

Re: zmiana nazwy bloku bez uzycia RENAME

Postprzez kojacek » cze 02, 2010 12:12

kruuger napisał(a):
kojacek napisał(a):Dopuszczone być powinno tylko dla anonimowych bloków związanych z blokami dynamicznymi - inne - zaś nie.
Inne bloki anonimowe powstają w wyniku kreskowania zespolonego, wymiarowania oraz operacji innych aplikacji AutoCAD-a. Swego rodzaju "ochroną" przed wybraniem takiego bloku jest wybór przez wskazanie obiektu, niemniej być może w przyszłości chciałbyś rozbudować program o wybór bloku przez nazwę, wtedy musisz o tym pamiętać. W przeciwnym wypadku "wynaturzysz" jakieś wymiary lub inne elementy.

wiem ze jest cos takiego:
*U### = anonymous blocks
*E### = anonymous non-uniformly scaled blocks
*X### = anonymous hatches
*D### = anonymous dimensions
*A### = anonymous groups - tylko jeszcze nie bardzo czaje jak sie zabrac za sprawdzanie tego.

kojacek napisał(a):1) Dodatkowo (wczoraj zapomniałem) - dodaj UNDO. Dobrze jest mieć możliwość wycofania się z pewnych działań... (przynajmniej w AutoCAD-zie... ;) )

tak z ciekawosci, czy tym wypadku undo jest konieczne? za bardzo chyba nie ma co cofac?

No... literki bym sprawdził

Cofasz zmianę nazwy. Wstawiajac znacznik UNDO, po prostu znaczysz grupę. To ma głeboki sens. Jeżeli po zmianie nazwy wywołasz dowolne polecenie, a potem je cofniesz, prawdopodobnym jest że (przy okazji) cofniesz zmianę nazwy.

kojacek
Avatar użytkownika
kojacek
 
Posty: 5567
Dołączył(a): paź 03, 2005 20:17

Re: zmiana nazwy bloku bez uzycia RENAME

Postprzez kruuger » cze 02, 2010 12:27

kojacek napisał(a):Cofasz zmianę nazwy. Wstawiajac znacznik UNDO, po prostu znaczysz grupę. To ma głeboki sens. Jeżeli po zmianie nazwy wywołasz dowolne polecenie, a potem je cofniesz, prawdopodobnym jest że (przy okazji) cofniesz zmianę nazwy.

jeszcze to podrąże bo cos mi nie pasuje.. po narysowaniu czegos po zmianie nazwy i decyzji ze jednak to cofamy, to jeden CTRL+Z cofa obiekt a drugi CTRL+Z cofa Rename - nie wazne czy byl znacznik undo czy nie.
k.
Avatar użytkownika
kruuger
 
Posty: 4903
Dołączył(a): paź 27, 2005 20:14
Lokalizacja: Kraków

Następna strona

Powrót do AutoCAD

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników