lollazzo
Guest
ho delle aree e mi servirebbe un modo per avere all'interno dell'area una casella di testo che indichi il valore
cercando su internet si trovanoparecchie versioni...
ho delle aree e mi servirebbe un modo per avere all'interno dell'area una casella di testo che indichi il valore
cercando su internet si trovanoparecchie versioni...
ciao betoniera, ho provato il tuo fille ma mi da comando sconosciuto quando deve scrivere l'area.....
possiedo autocad 2012 ita...
cosa posso fare?
grazie
e' il solito problema dello stile con l'altezza già impostata. con il comando stile devi mettere l'altezza testo a 0.
ho fatto le modifiche richieste.
ecco il nuovo listato.
ciao
; area2.lsp calcola l'area e il perimetro di piu figure
; soft. betoniera - autocad 2014
(defun c:area2 ()
(if ht nil (setq ht 30)) ;imposta altezza testo
(setq a (strcat "\nimmetti altezza testo ht in unità disegno : <" (rtos ht) "> :")
ht1 (getreal a) ;chiede altezza testo
)
(if (/= ht1 nil) (setq ht ht1)) ;imposta altezza testo
(command "_setvar" "textsize" ht)
(setq gs (ssadd)
str t
ar 0
pe 0
)
(command "_color" 7)
(command "_setvar" "hpname" "solid")
;loop da cui si esce solo con return
(while (not (eq str ""))
(setq p1 (getpoint "\nimmetti punto "))
(cond
((= p1 nil) ;se si schiaccia return
(setq str "") ;cosi esce dal ciclo
)
);cond
(cond
((/= p1 nil)
(setq p2 p1
p3 (list (car p2) (+ (cadr p2) ht ht))
)
(command "_-boundary" p1 "")
(setq en (entlast))
(command "area" "_o" "_l")
(setq ar1 (getvar "area"))
(setq ar (+ ar ar1))
(setq pe1 (getvar "perimeter"))
(setq pe (+ pe pe1))
(command "_-bhatch" "_s" en "" "")
(command "_erase" en "")
)
);cond
);while
(command "_color" 3)
(command "_text" "_j" "_l" p2 "" 0 (strcat "area mq " (rtos ar 2 2)))
(command "_text" "_j" "_l" p3 "" 0 (strcat "perimetro m " (rtos pe 2 2)))
(command "_move" p2 p3 "" p2)
)
ciao!! quando carico il lisp mi scrive:
area2.lsp caricato.
comando: ; errore : parentesi destra in eccesso nell'input.
ringrazio sin d'ora per l'eventuale aiuto....
ho ancora il listato di quel file (io ne uso uno più complesso che rileva le unità di misura utilizzate)
l'ho provato e funziona. ti rimando il listato, copialo in un file chiamato a2.lsp e inseriscilo nella directory "support".
e' probabile che quando hai fatto queste operazioni col file precedente non hai copiato l'ultima parentesi. fai attenzione.
l'ho rinominato a2.lsp per agevolare il comando (a2)
se hai unità di misura differenti modifica pure le scritte in fondo: "area mq " e "perimetro m " e metti quello che vuoi.
ciao
; a2.lsp calcola l'area e il perimetro di piu figure
; soft. betoniera - autocad 2014
(defun c:a2 ()
(if ht nil (setq ht 30)) ;imposta altezza testo
(setq a (strcat "\nimmetti altezza testo ht in unità disegno : <" (rtos ht) "> :")
ht1 (getreal a) ;chiede altezza testo
)
(if (/= ht1 nil) (setq ht ht1)) ;imposta altezza testo
(command "_setvar" "textsize" ht)
(setq gs (ssadd)
str t
ar 0
pe 0
)
(command "_color" 7)
(command "_setvar" "hpname" "solid")
;loop da cui si esce solo con return
(while (not (eq str ""))
(setq p1 (getpoint "\nimmetti punto "))
(cond
((= p1 nil) ;se si schiaccia return
(setq str "") ;cosi esce dal ciclo
)
);cond
(cond
((/= p1 nil)
(setq p2 p1
p3 (list (car p2) (+ (cadr p2) ht ht))
)
(command "_-boundary" p1 "")
(setq en (entlast))
(command "area" "_o" "_l")
(setq ar1 (getvar "area"))
(setq ar (+ ar ar1))
(setq pe1 (getvar "perimeter"))
(setq pe (+ pe pe1))
(command "_-bhatch" "_s" en "" "")
(command "_erase" en "")
)
);cond
);while
(command "_color" 3)
(command "_text" "_j" "_l" p2 "" 0 (strcat "area mq " (rtos ar 2 2)))
(command "_text" "_j" "_l" p3 "" 0 (strcat "perimetro m " (rtos pe 2 2)))
(command "_move" p2 p3 "" p2)
)
.... come posso fare per evitare di far creare il retino solido a questo lisp?
quando uso il comand "a2" per scrivere area e perimetro mi si crea anche un non necessario retino pieno all'interno dell'area che sto calcolando e non so come fare ad evitarlo.