iand
18.01.2007, 09:10
Potřebuji použít v ACADu 2004 příkaz _ddedit v lispu. Příkaz by měl umět zpracovat
text, mtext, dimension a attribute.
Při spuštění příkazu _ddedit z příkazového řádku vše funguje. Při spuštění z lispu funguje jen text,
u ostatních entit vznikne chyba "irfcld".
Ví někdo, v čem je chyba?
Příklad použití:
;;; tt.lsp
;;; editace textu, mtextu, koty z výběrové množiny
(defun c:tt ( / ss sslen cnt ent)
(setq ss (ssget
'((-4 . "<OR")
(0 . "TEXT")
(0 . "MTEXT")
(0 . "DIMENSION")
(-4 . "OR>")
)
)
)
(setq sslen (sslength ss))
(setq cnt 0)
(while (< cnt sslen)
(setq ent (ssname ss cnt))
(command "_ddedit" ent "")
(setq cnt (1+ cnt))
(princ)
)
)
A. spuštění z lispu: funguje jen text, mtext ani dimension nefungují (attribute jsem nezkoušel):
Příkaz: tt
Vyberte objekty: nalezeno: 1 ;vybrán text
Vyberte objekty: nalezeno: 1, celkem 2 ;vybrán mtext
Vyberte objekty:
_ddedit
Vyberte objekt poznámky nebo [Zpět]: ;text zpracuje správně
Příkaz: _ddedit
Vyberte objekt poznámky nebo [Zpět]: CHYBA aplikace: irfcld ;mtext popř. i dimension havaruje
Příkaz: ; chyba: Nastala chyba uvnitř funkce *error*příliš mnoho argumentů ;co je to za chybu?
B. spuštění z klávesnice: funguje všechno
Příkaz: (setq ent (entsel))
Vyberte objekt: (<Jméno entity: 7ef605d0> (11.7618 19.7676 0.0)) ;vybrán mtext piknutím
Příkaz: _ddedit ;mtext zpracuje správně
Vyberte objekt poznámky nebo [Zpět]: "AAAAAAAAAAA\\PLLLLLLLLLLL"
Vyberte objekt poznámky nebo [Zpět]: !ent ;vybrán mtext pomocí !ent
(<Jméno entity: 7ef605d0> (11.7618 19.7676 0.0))
"AAAAAAAAAAA\\PLLLLLLLLLLL" ;opět mtext zpracuje správně
Vyberte objekt poznámky nebo [Zpět]:
text, mtext, dimension a attribute.
Při spuštění příkazu _ddedit z příkazového řádku vše funguje. Při spuštění z lispu funguje jen text,
u ostatních entit vznikne chyba "irfcld".
Ví někdo, v čem je chyba?
Příklad použití:
;;; tt.lsp
;;; editace textu, mtextu, koty z výběrové množiny
(defun c:tt ( / ss sslen cnt ent)
(setq ss (ssget
'((-4 . "<OR")
(0 . "TEXT")
(0 . "MTEXT")
(0 . "DIMENSION")
(-4 . "OR>")
)
)
)
(setq sslen (sslength ss))
(setq cnt 0)
(while (< cnt sslen)
(setq ent (ssname ss cnt))
(command "_ddedit" ent "")
(setq cnt (1+ cnt))
(princ)
)
)
A. spuštění z lispu: funguje jen text, mtext ani dimension nefungují (attribute jsem nezkoušel):
Příkaz: tt
Vyberte objekty: nalezeno: 1 ;vybrán text
Vyberte objekty: nalezeno: 1, celkem 2 ;vybrán mtext
Vyberte objekty:
_ddedit
Vyberte objekt poznámky nebo [Zpět]: ;text zpracuje správně
Příkaz: _ddedit
Vyberte objekt poznámky nebo [Zpět]: CHYBA aplikace: irfcld ;mtext popř. i dimension havaruje
Příkaz: ; chyba: Nastala chyba uvnitř funkce *error*příliš mnoho argumentů ;co je to za chybu?
B. spuštění z klávesnice: funguje všechno
Příkaz: (setq ent (entsel))
Vyberte objekt: (<Jméno entity: 7ef605d0> (11.7618 19.7676 0.0)) ;vybrán mtext piknutím
Příkaz: _ddedit ;mtext zpracuje správně
Vyberte objekt poznámky nebo [Zpět]: "AAAAAAAAAAA\\PLLLLLLLLLLL"
Vyberte objekt poznámky nebo [Zpět]: !ent ;vybrán mtext pomocí !ent
(<Jméno entity: 7ef605d0> (11.7618 19.7676 0.0))
"AAAAAAAAAAA\\PLLLLLLLLLLL" ;opět mtext zpracuje správně
Vyberte objekt poznámky nebo [Zpět]: