--
Posted from mta09-acc.tin.it [212.216.176.40]
via Mailgate.ORG Server - http://www.Mailgate.ORG
>
Mi sembra pèroprio strano che l'utilizzo di funzioni command provochi
l'interruzione del programma.
Se utilizzi il Visual lisp puoi utilizzare la funzione vla-get-area per
ottenere il valore dell'area.
Per inserire il testo da lisp puoi utilizzare la funzione entnmake o la
corrispondente in AcriveX.
Ti suggerirei comunque di utilizzare un blocco con attributi al posto del
testo, in modo da poter immagazzinare più informazioni (individuazione
dell'area, numero progressivo, destinazione o tipo dell'area, ecc.), nonché
di estrarre tutti ivalori delle aree e gli altri valori connessi in un file
di testo facilmente esportabile in un foglio di calcolo od in database.
Dal lontano 1989 ho realizzato dozzine di programmini di "etichettura" con i
valori dell'area, e se specifichi meglio cosa ti serve posso darti qualche
dritta o del codice già pronto.
Gigi
e' una classica operazione da GIS ; prima di effettuare il calcolo puo'
essere necessario "ripulire" le linee di costruzione (eliminare gaps,
dangles, duplicati); poi si procede creando i centroidi e quindi le
aree. Prova con Microstation Geographics che tutte queste operazioni
consente di farle in automatico (probabilmente lo potrai fare anche con
Autocad Map, ma non lo conosco).
--
Greetings, Alessandro
http://www.b3soft.com
Pesaro, Italy
Sent via Deja.com
http://www.deja.com/
Giancarlo Paolini ha scritto:
Fai così:
(defun c:aa (/ cancella ent pt1)
(setq cancella (ssadd))
(while (setq pt1 (getpoint "\npunto d'inserimento: "))
(setq ent (bpoly pt1))
(command "_area" "_e" ent \r)
(redraw ent 3)
(setq cancella (ssadd ent cancella))
(command "_text" "_m" pt1 "0" (strcat "mq " (rtos (getvar "area") 2 2)))
(command "_text" "" (strcat "ml " (rtos (getvar "perimeter") 2 2)))
)
(command "_erase" cancella "" "_redraw")
)
P.s. Questa routine crea una poliliea nel perimetro (che deve essere chiuso)
e, dopo aver "catturato" le informazioni che servono, la cancella.
Ricordati di impostare uno stile di testo con altezza predefinita.
ciao
"stace" <st...@iol.it> ha scritto nel messaggio
news:3A427953...@iol.it...