Newsgroup: it.comp.software.cad
Titolo: [LISP] dividere testi

Salve a tutti.
Autocad 2004 full.
Mi trovo di fronte a questa situazione:
Ho inserito alcune centinaia di righe di testo da un software di calcolo. Le 
righe sono intere di ben oltre 256 caratteri e hanno questa sintassi:
A101      12      /      /     12     -120    6    +150   -85
B103      210    /      /      123    -4     465     2        /
B105       2      13    1      /        5        /        2        1
Vorrei sapere se esiste un automatismo che mi consenta di spezzare queste 
lunghe stringhe di testo in tanti testi singoli considerando che gli spazi 
dividono sempre 2 testi da spezzare e che la posizione finale di un testo 
dovrebbe essere la stessa posizione nel foglio nella quale appare anche 
quando è parte della stringa totale. In pratica, visivamente, i testi non 
dovrebbero spostarsi.
Qualcuno conosce qualche lisp che possa aiutarmi?
Saluti e grazie
frank

 frank
secondo me chi è in grado di risolverti il problema è Marco_AA
oppure rpor66 che trovi qui
http://www.cad3d.it/forum1/showthread.php?t=18271
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

> secondo me chi è in grado di risolverti il problema è Marco_AA
Grazie ancora arri per la fiducia, certo è che ci vuole un po'
di tempo per rispondere a queste domande.
Ciao.
-- 
----------------------------------------------------------
Marc'Antonio Alessi - 
http://xoomer.virgilio.it/alessi
Per AutoCAD:
- Travi 2D: disegno automatico travi e pilastri in C.A.,
  relativi ferri e staffe, report peso ferri e C.A.
  su Excel
- Calcolo automatico aree su planimetrie: report su Excel
  per locale altezza, piano con descrizioni locali e piani
- Elaborazione dati from/to Excel
- Librerie manufatti in assonometria
- Autolayers: gestione automatica dei layers
- Elaborazioni e stampe multiple e automatiche
- Parametrico 2D, Viterie 2D/3D, Esplosi 2D/3D
- AutoGroups: gestione automatica gruppi di layers
- SetUp del disegno con gestione automatica DimStyles
- Conversione automatica files Inventor a DWG e viceversa
  anche senza avere Inventor installato
- ...
----------------------------------------------------------


Ciao Frank,
non ho capito bene la domanda, ti serve una cosa di questo tipo?
(ALE_Test
 "A101      12      /      /     12     -120    6    +150   -85"
)
==> ("A101" "12" "/" "/" "12" "-120" "6" "150" "-85")   >>> [150 non +150]
(ALE_Test
 "B103      210    /      /      123    -4     465     2        /"
)
==> ("B103" "210" "/" "/" "123" "-4" "465" "2" "/")
(ALE_Test
"B105       2      13    1      /        5        /        2        1"
)
==> ("B105" "2" "13" "1" "/" "5" "/" "2" "1")
o così?
(ALE_Test2
 "A101      12      /      /     12     -120    6    +150   -85"
)
==> (
      "A101" "" "" "" "" "" "12" "" "" "" "" "" "/" "" "" "" "" "" "/" ""
      "" "" "" "12" "" "" "" "" "-120" "" "" "" "6" "" "" "" "+150" ""
      "" "-85"
    )
sarebbe utile sapere cosa devi fare con i testi singoli...
--
M.

 certo č che ci vuole un po' di tempo per rispondere a queste domande.
certo, ma credo che hai una collezione di lisp che copre al 99,9 % le
esigenze piů disparate
(P.S. quello per cancellare gli xdata lo uso quotidianamente, grazie)
ciao 



Ciao Marco e grazie della disponibilità.
Cercherò di essere più chiaro.
Il software di calcolo che utilizzo esporta un file puro di excel, 
formattato e finito di qualche centinaio di righe e una cinquantina di 
colonne. A questo punto, sempre in excel, aggiungo ed elaboro i dati in modo 
da ottenere una tabella finita e completa che voglio inserire in autocad. 
Non è la soluzione definitiva ma al momento faccio in questo modo:
Seleziono da excel la tabella completa o parte di essa.
La Copio/Incollo in un editor di testo come Wordpad per eliminare dagli 
appunti la formattazione
La Copio/Incollo nuovamente in un testo multilinea di Autocad in modo da 
ottenere tutti i testi sequenziali.
Durante tutti i passaggi devo conservare tutti i segni dei valori.
Attribuisco al corpo del testo un carattere non proporzionale (tipo isocp) 
in modo che i testi siano incolonnati correttamente
Esplodo il testo multilinea in testi di righe singole poichè riesco a 
gestirle meglio per la fase successiva.
Queste stringhe hanno lunghezza anche elevata.
La successiva elaborazione è l'applicazione ad alcuni di questi numeri del 
%%P davanti al valore o addirittura la revisione di alcuni valori.
Se avessi dei testi singoli potrei cliccare esattamente il testo che voglio 
editare senza doverlo andare a cercare nella stringa di 250 caratteri o 
senza il timore che un +4 diventando -251 non mi trasli in avanti tutto il 
resto.
Spero di essere stato chiaro.
Ciao e grazie
frank

 resto.
Al momento non ho niente di espressamente valido per il tuo utilizzo,
prova se questa funzione di può dare un aiuto:
; Marc'Antonio Alessi, Italy - 
http://xoomer.virgilio.it/alessi
;
; Function: ALE_String2List
;
; Version 1.00 - November 2001
;
; Description:
;   convert a string into a list
;
; Arguments:
;   InpStr = string [STR]
;   CarDlm = delimiter [STR] 1 character
;
(defun ALE_String2List (InpStr CarDlm / SttPos EndPos TmpLst)
  (setq
    CarDlm (ascii CarDlm)   SttPos 0
    EndPos (vl-string-position CarDlm InpStr)
  )
  (while EndPos
    (setq
      TmpLst (cons (substr InpStr (1+ SttPos) (- EndPos SttPos)) TmpLst)
      SttPos (1+ EndPos) EndPos (vl-string-position CarDlm InpStr SttPos)
    )
  )
  (reverse (cons (substr InpStr (1+ SttPos)) TmpLst))
)
Comando: (ALE_String2List "A101  /   12   -120  6   +150   -85" " ")
("A101" "" "/" "" "" "12" "" "" "-120" "" "6" "" "" "+150" "" "" "-85")
%%
La cosa migliore sarebbe leggere direttamente ogni cella di Excel e
creare memorizzare testi da inserire poi in AutoCAD.
Oppure, meglio ancora, importare da Excel a AutoCAD i dati direttamente
in una "Tabella" (_Table) anche con copia/incolla.
L'unico inconveniente è che, mi pare, 2004 non abbia ancora le "Tabelle".
Sarebbe un buon motivo per un upgrade.
--
Marco


Grazie.
Lo proverņ e ti farņ sicuramente sapere.
Saluti
frank 

 colonne. 
se in AutoCAD incolli speciale come Entità PRODUCT i testi ti rimangono
separati
(In AutoCAD 2004 incolla speciale selezionando Entità AutoCAD)


 (In AutoCAD 2004 incolla speciale selezionando Entità AutoCAD)
Infatti, io pensavo che questa possibilità partisse dalla 2005,
(in 2002 non c'è).
C'è un'altra "cosetta" che ricordo di aver notato:
- se copi/incolli da Excel precedente alla versione Xp ci sono
  alcuni problemi riguardanti la formattazione dei testi
  (se non ricordo male).
--
Marco

 Marco
ricordi bene
Microsoft Excel spreadsheet is truncated when pasted into drawing 
Issue
You paste a Microsoft Excel spreadsheet into a drawing, but the
spreadsheet is truncated.
Solution
When an Excel spreadsheet is pasted, the Picture (metafile) format is
used, which can result in the spreadsheet being truncated. This problem
can occur when the column width and row height in Excel are set to the
default (default width is 8.43, and default height is 12.75), and the
pasted object exceeds 18 columns by 70 rows. 
Use one or both of these methods to resolve the problem:
Method #1
In Excel, reduce the column width and row height. You can paste more of
the spreadsheet if you reduce the column width and row height.
Method #2
Paste the spreadsheet in separate parts. By pasting the spreadsheet in
separate parts you can break it down into several smaller OLE objects.



Ciao Marco.
Ho provato il lisp. La funzione restituisce i testi separati partendo dalla 
stringa completa. Andrebbe bene ma dovrei metterci un po' le mani per 
applicarla al mio caso con centinaia di righe. Sto valutando l'alternativa 
di acquistare qualcosa di preconfezionato che converte intere tabelle di 
excel a tabelle di autocad, linee, formattazione e colori compresi. In modo 
da prendere la questione direttamente alla radice.
Grazie per il tempo che mi hai dedicato.
A presto.
frank 

 Grazie per il tempo che mi hai dedicato.
Prego,
ho scritto in VBA, un paio di anni fa, qualcosa che fa quello che chiedi:
- da Excel selezioni le celle che vuoi esportare
- AutoCAD viene aperto se non lo è già
- la tabella viene importata in un punto richiesto
- le seguenti impostazioni:
    Nomi dei Layers Descrizione Colore SpessoreLinea
    Nomi degli Stili di Testo Descrizione
    Crea Retini da Riempimenti di Celle? (Si o No)
    Trasforma le Tabelle in Blocchi? (Si o No)
    Fattore di Scala
    Altezza Righe
    Larghezza Colonne
    Font da usare in AutoCAD
    vengono configurate in apposito "sheet" di configurazione
Il programma non è stato poi perfezionato (ci sono alcuni piccoli problemi)
per mancanza di richieste.
Aggiungo: su tabelle molto grosse è un po' lento.
Ciao.
Marco 


Ciao
Sembra proprio la descrizione della demo che ho scaricato:
http://www.cadtool.net/tut_symbology.htm
ciao
frank 


Il mio è simile ma non così "professionale".