Newsgroup: it.comp.software.cad
Titolo: lispino

per calcolare e trascrivere aree, un grazie in anticipo a chi mi da una mano
saluti

mi da una mano
 c'e' il comando "area", che ti serve ?
 tu clicci sugli oggetti e esce un file
 con una lista ?
 saluti
 
s...@col.it
-- 
Posted from [213.26.111.12] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 un grazie in anticipo a chi mi da una mano
 Returns the area inside the curve
(vlax-curve-getArea curve-obj)
Ho qualcosa di fatto che potrebbe fare al caso
tuo, dovresti pero' spiegarmi un po' meglio la situazione
in modo che possa riadattarlo al tuo caso.
Ad esempio:
Le aree di cosa?
- Polilinee, Splinee, Region, un po' di tutto ... Che so?
Le aree di quanti oggetti?
- Quello selezionato, tutti quelli di un layer.... Che so?
Trascrivere dove?
- Al command, in una variabile, in un file .... Che so?
Inoltre non per essere cavilloso... :-)
Quale rel. di Autocad?
- 12, 13 , 14, 2k... fa la sua differenza.
Ciao Giovanni A.

 (vlax-curve-getArea curve-obj)
quanto sopra potrebbe essere la risposta sintetica alla tua domanda
se gia' sai programmare in autolisp ed hai la rel. 2000.
Senno cancella dal messaggio precedente
le due righe riportate qua e leggilo.
Ciao Giovanni A.

 ha scritto nel messaggio
news:Ex1d6.48391$ew1.3...@news.infostrada.it...


 ha scritto nel messaggio
news:Ex1d6.48391$ew1.3...@news.infostrada.it...


 ha scritto nel messaggio
news:9544i8$gd3$1...@lacerta.tiscalinet.it...


 wrote in message
pHld6.56110$ew1.3...@news.infostrada.it...


Ciao fede, ciao Alessandro,
La procedura postata da Stefano
fa al caso vostro direi, ci ho inoltre
un po' messo mano per renderla piu' generica,
se vi interessa la trovate nel mess. in risposta a stefano.
--
Ciao Giovanni A.

Ciao Stefano,
ho generalizzato e modificato un po' le procedure che hai postato,
spero tu non me ne voglia, se ti va di confrontare le due e fare un po'
di "critica", sono a tua disposizione.
L'intento era quello di avere qualcosa di utile in vari casi.
--
Ciao Giovanni
---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---c
ut
;---------------------------------------------------------------------------
---------------
; procedure varie e comando A&P per calcolare area e perimetro
; di un'area definita tramite un boundary temporaneo e per inserire
; eventualmente tali valori nel disegno
;---------------------------------------------------------------------------
---------------
; Realizzate da:
; Stefano              - 
stec...@tin.it
; Giovanni Anzani - 
giova...@tiscalinet.it
; ...e non so chi altri.
;---------------------------------------------------------------------------
---------------
(defun store_var      (§var)        (set (read (strcat §var "-old")) (getvar
§var))(princ))
(defun store_list_var (£§var)       (foreach §var £§var (store_var §var)))
(defun reset_var      (§var)        (setvar §var (eval (read (strcat §var
"-old"))))(princ))
(defun reset_list_var (£§var)       (foreach §var £§var (reset_var §var)))
(defun   set_var      (£§&#var)     (setvar (nth 0 £§&#var)(nth 1 £§&#var)))
(defun   set_list_var (££§&#var)    (foreach £§&#var ££§&#var (set_var
£§&#var)))
(defun list_princ     (£LispObj)    (foreach LispObj £LispObj (princ
LispObj)))
;---------------------------------------------------------------------------
---------------
(defun entlast_type   ()            (cdr(assoc 0 (entget(entlast)))))
(defun initgetword    (§txt # §opz) (initget # §opz) (getkword §txt))
;---------------------------------------------------------------------------
---------------
(defun area&perimetro (/ §a §p PTins opz2)
  (command "_area" "_e" "_last")
  (setq §a   (strcat "Area: "      (rtos (getvar "AREA") 2 2)))
  (setq §p   (strcat "Perimetro: " (rtos (getvar "PERIMETER") 2 2)))
  (setq §a&p (strcat §a " ; " §p))
  (list_princ (list "\n ----------------------------------------"
      "\n Dati relativi al contorno selezionato: \n "
          §a&p
      "\n ----------------------------------------"))
  (setq opz2 (initgetword "\n Quale dato si vuole inserire nel disegno?
                           \n (Area / Perimetro / Entrambi / Nessuno): " 1
"A P E N"))
  (if (/= opz2 "N") (setq PTins (getpoint "\n Punto di inserimento: ")))
  (command "_undo" "_b")
  (cond ((= opz2 "A") (command "_TEXT" PTins "" "" §a))
 ((= opz2 "P") (command "_TEXT" PTins "" "" §p))
 ((= opz2 "E") (command "_TEXT" PTins "" "" §a&p)))
  (setq opz1 nil))
;---------------------------------------------------------------------------
---------------
(defun c:A&P ( / a p pt conferma ent_type1 ent_type2 opz1)
   (store_list_var  '("CMDECHO" "MENUECHO" "HPBOUND" "PDMODE"))
   (  set_list_var  '(("CMDECHO" 0) ("MENUECHO" 0) ("HPBOUND" 1) ("PDMODE"
34)))
   (command "_undo" "_m")
   (initget 1) (setq pt (getpoint "\nSelezionare punto interno al contorno:
"))
   (command "_point" pt)    (setq ent_type1 (entlast_type))
   (command "_bpoly" pt "") (setq ent_type2 (entlast_type))
   (if (/= ent_type1 ent_type2)
       (progn (redraw (entlast) 3)
       (setq opz1 (initgetword "\n Area e perimetro (Calcola / Evidenzia /
Ridefinisci): " 1 "C E R")))
       (progn (alert " costruzione boundary per il calcolo \n dell'area non
riuscita. Riprovare !")
       (setq opz1 "R")))
  (while opz1
   (cond ((= opz1 "C")  (area&perimetro))
         ((= opz1 "E")  (command "_pedit" "_last" "_w" 0.5 "")
                 (setq opz1 (initgetword "\n Area e perimetro (Calcola /
Ridefinisci): " 1 "C R" )))
         ((= opz1 "R")  (command "_undo" "_b")
                        (c:A&P))))
  (reset_list_var '("CMDECHO" "MENUECHO" "HPBOUND" "PDMODE"))(princ))
;---------------------------------------------------------------------------
---------------
---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---c
ut