Vytisknout stránku | Zavřít okno

Správná poloha atributů po výměně bloku

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: AutoCAD
Popis fóra: Otázky kolem aplikací AutoCAD a AutoCAD LT, AutoCAD web, prohlížečů, DWG a DXF, Design Review, Navisworks, nadstavby, Drive a cloud Autodesk
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=4706
Datum vytištění: 07.čer.2026 v 13:21


Téma: Správná poloha atributů po výměně bloku
Odeslal: Kubíček
Předmět: Správná poloha atributů po výměně bloku
Datum odeslání: 06.čer.2007 v 11:05
Výměna bloku je možná různými způsoby:
    1a. Ručně s pomocí příkazu: -vlož    RAZEGE=D:/Library/bloky/vykresy/VymenaRaz/RzEGE-CZ-POS
    1b. Pomocí lispovské funce
 
   (DEFUN C:TEK ( / TEK e1 e3 e4)
  (command "-vlož" "RAZEGE=D:/Library/bloky/vykresy/VymenaRaz/RzEGE-CZ-POS" "A" "" pause)
)
 
    Při těchto změnách zústává název původního bloku a pokud ho chcete změnit na požadovaný dá se to příkazem -přejmen    blok  ...
 
    I když jsou použity u obou bloků stejné atributy jejich poloha po výměně neodpovídá požadované poloze jak jsou definované v nahrazovaném bloku.
 
    2. Další možností je využitím operací s daty entit
 
(DEFUN C:TEK-EGE ( / TEK e1 e3 pa nbrv sa na nb)
 
(setq e3 (entget (SETQ e1 (car (entsel "Vyberte blok starého razítka: " )))))  ; data entity
  (setq pa (assoc 2 e3))                  ; seznam s klíčem 2
  (setq nbrv (cdr pa))    ; název razítka na výkresu
  (setq sa "RazEGECZ")    ; staré razítko
 
  (setq na "RzEGE-CZ")    ; nové razítko
  (setq nb "RzEGE-CZ-POS")   ; nové razítko

 ((= nbrv nb) (prompt (strcat "/n Výkres má správné razítko:  " nbrv)))
 ((= nbrv sa) (vlož-rz))
    )
  )
(DEFUN vlož-rz ( / bl sa sac)
  (setq sac "D:/Library/bloky/vykresy/VymenaRaz/RzEGE-CZ-POS.dwg" )
  (setq bl (STRCAT  sa "=" sac))
  (command "-vlož" bl "A" "" pauze)
 )
 
    Ani při druhém pokusu jsem nedosáhl ispokojivé polohy textu atributů v rohovém razítku.
 
    Chtěl bych se zeptat, zda jste někdo řešil podobný problém s výměnou podobných bloků s atributy. Jedním ze zůsobu je vytvoření náhradního bloku, který by dával uspokojivé výsledky.


-------------
jku



Odpovědi:
Odeslal: Sedláček
Datum odeslání: 06.čer.2007 v 11:40
Obávám se že ikdyž předefinujete blok, tak proměnné atributy zůstanou původní - viz help:
 
Opětovná definice atributů bloku

Atributy lze připojit k bloku při definici nebo opětovné definici bloku. Při výzvě AutoCADu LT pro vybrání objektů, které se vloží do definice bloku, vložte požadované atributy do výběrové množiny. Opětovná definice atributů v definici bloku má následující vliv na reference dříve vložených bloků:

To je z A2002LT, možná je to v novějších verzích jinak.
 
 


Odeslal: Kubíček
Datum odeslání: 06.čer.2007 v 13:55
Jedná se o případ, rohového razítka, kdy jsou použity stejné atributy. Referenční bod 1 bloku je posunut o 5,5 mm vůči bloku druhému nebo v případě, že jedno z razítek blo vloženo v nějakém jiném měřítku než druhé. I dyž rámeček rohového razítka odpovídá, tak poloha atributu neodpovídá požadované.

-------------
jku


Odeslal: pavelstyl
Datum odeslání: 07.čer.2007 v 08:53

Já bych to řešil lispem, který musí udělat následující:
- uložit si polohu, měřítko, natočení, hladinu ... bloku
- uložit si hodnoty atrubutů
- smazat blok
- vložit nový (poloha, měřítko, hladina, ...)
- vyplní atributy

Pavel Štyl



Odeslal: Pajas
Datum odeslání: 07.čer.2007 v 11:02
existuje příkaz pro synchronizaci atributů _ATTSYNC


Odeslal: Kubíček
Datum odeslání: 11.čer.2007 v 10:00

V mnoha případech rozhoduje, co je rychlejší a zda nebude jednodušší daná razítka jednoduše přepsat. Výhodou způsobi s použitím příkazu

"-vlož" je, že se zachová hodnota atributů. Při mých pokusech s daty entit s využitím následného příkazu
(setq e3 (entget (SETQ e1 (car (entsel "Vyberte blok starého razítka: " )))))
(setq pa (assoc 10 e3))    ; výstup (10 41550.0 500.0 0.0)
(setq nbrv (cdr pa))          ; výstup souřadnic razítka (41550.0 500.0 0.0)
 
se mi do proměné "e1" zapíše jméno entity a do "e3" data týkající se bloku a né atributů. Jedině se nějak dostat dovnitř bloku a řídit tak polohu atributů podobným způsobem, jakým by šlo upravovat polohu celého bloku.
Hodnota atributů se dá též i vyexportovat a potom zase nějak načít, možná že i této skutečnosti by se možná dalo využít .... zatím nevím jak ...
 


-------------
jku



Vytisknout stránku | Zavřít okno