• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

[回復] 計算複雑な領域

  • Thread starter Thread starter lattu
  • Start date Start date
arklisp
18-07-2002, 11.31.19

sottopongo all'attenzione dei progettisti e disegnatori autocad una semplice
macro per ottenere il cacolo dell'area di figure chiuse.

copiate in un file e salvate con estensione.lsp, poi caricate il file in oggetto all'interno
di autocad con il comando _appload, infine lanciate la macro dal prompt, digitate
ar

modificatela a vostra discrezione, mantenendo tuttavia la dicitura originaria di copyright
dell'autore.
buon lavoro!
fabrizio

testo della macro autolisp:

;;;area.lsp release 1.0 <(c) f. battistini - 2001>
;;; http://webspace.omniway.sm/fbattistini/
;;;
;;;********************************************************
;;;you are allowed to freely distribute and modify it.
;;;********************************************************
;;;
;;; calcola l'area di un loop
;;;
;;;error handler routine for ar
;;;
(defun bnerror (bn)

(princ "\n ar <enter>: optimized area command-r 1.0 (c) f. battistini ")
(command)
(setq lastr (ssget "_l" '((0 . "region"))))
(command "_area" "_ob" lastr )
(setq lastr nil)
(setvar "cmdecho" 0)
(setq lastr2 (ssget "_l" '((0 . "region"))))
(if (= lastr2 nil)(princ)
(command "_erase" lastr2""))
(setvar "cmdecho" 1)
(setq *error* olderr)
(princ)
)
;;;
;;;
;;;*** main routine (c) f. battistini_2001 *************************************
;;;
(defun c:ar (/ ent entb ss pt ptlst ptlst2 ll lll loop ll2 y y2 ss ssoff entoff lass viewarea zdin)
(setq olderr *error*
*error* bnerror)
(setvar "cmdecho" 0)
(setvar "pickadd" 1)
(command "_undo" "_be")
(alert "area calculator: (c) by f. battistini_2001
http://webspace.omniway.sm/fbattistini
ar <enter> ")
(princ" ar <enter>: optimized area command for loops. (c) f. battistini")
(setq pt (getpoint "\nseleziona punto interno all'isola: "))
(if (null pt)
(nil)(princ))
(setq xx (getvar "acadver"))
(if (>= xx "15.0")
(command "_-boundary" pt "" )
(command "_-boundary" pt""))

(command "")(princ "\n\n---------prego attendere...-------------------\n\n")

(setq ss (entlast))(command "_region" ss"" )

(setvar "cmdecho" 1)
(command "_area" "_ob" "_last" )
(setvar "cmdecho" 0)
(command "_erase" (entlast)"")
(setvar "cmdecho" 0)(textpage)
(command "_undo" "_e")(setvar "cmdecho" 1)(setq *error* olderr) (princ))
;;;
(princ "\n ar <enter>.comando -area- ottimizzato. (c) f. battistini")


max
18-07-2002, 14.57.27

la cosa mi interessa: mi spieghi la differenza fra questo ed il comando "area"?
max



arklisp
18-07-2002, 20.53.35

ciao max,
la differenza è sostanziale!
esempio: se tu hai una figura chiusa composta da un loop di lìnee,
con il comando area dovrai selezionare uno ad uno tutti i suoi vertici (estremi) per
ottenere il computo. poi se dovessi avere una figura con qualche lato curvo non riusciresti a calcolare l'area con il comando standard "area".
grazie al mio comando ar puoi computare l'area cliccando semplicemete un punto al suo interno. potrai calcolare l'area di qualunque figura 2d.
quindi si guadagna in velocità, semplicità e per capacità di calcolo.
spero di essere stato esauriente!
comunque non ti resta che testare la macro e distribuirla a chi desideri.
ciao!

fabrizio
http://webspace.omniway.sm/fbattistini/


max
19-07-2002, 00.49.56

hai ragione!

fatalità per il mio modo di disegnare mi era sempre capitato di utilizzare il comando area/object per misurare gli sviluppi dei nastri trasportatori, che ovviamente trasformavo in polilinea prima di misurare.

domani, tempo permettendo, proverò ad utilizzare la tua macro. non conoscendo assolutamente il lisp però non so se la cosa mi sarà facile. intanto grazie, poi semmai ti contatto...
max


arklisp
19-07-2002, 10.19.47

gent.mo max,
il fatto che tu non conosca autolisp non ti impedisce di godere dei benefici che esso apporta ad autocad.
in breve, per caricare un lisp (o la lisp, se preferisci gli attributi femminili...)
devi digitare dal prompt il comando _appload e selezionare la macro, poi premere il pulsante "load" (carica). la macro verrà caricata in memoria, a questo punto dovrai lanciare il comando specifico.
comunque se incontri difficoltà sarò felice di aiutarti!
ciao e a presto.

p.s. io non impartisco lezioni di autolisp, ma se sei interessato ad avvicinarti a questo linguaggio (davvero semplice a livello base) puoi visitare il link "autolisp..." sul mio sito.
inoltre in giro per il web troverai migliaia di risorse ed info su autolisp.

fabrizio
http://webspace.omniway.sm/fbattistini/


marcog
21-07-2002, 20.15.30

ciao, volevo solo indicarvi (nel caso non ci aveste fatto caso) che esiste una sotto funzione del comando area che permette di calcolare "almeno" l'area di una figura chiusa.

se usate il comando area vedrete che compare in basso il sottocomando "object". con quel comando, selezionando la poly o la figura chiusa in genere, potrete calcolarne l'area velocemente senza lisp.

se volete potete inserire il comando in un vostro pulsante utilizzando la personalizzazione dei pulsanti.

^c^carea o
il comando chiederà solamente il click su un oggetto (chiuso) e visualizzerà l'area corrispondente
ciao, grazie


max
22-07-2002, 11.02.46

...sì, infatti, è quello che dicevo io sopra. fatalità avevo sempre calcolato le aree (ed i perimetri, perchè a me interessano i perimetri) in questo modo. tuttavia non si può negare l'utilità e la praticità della lisp proposta da arklisp.

max
 
marcog
22-07-2002, 11.27.32

hai perfettamente ragione. da quando lavoro in autocad ho sempre utilizzato piccole routine in autolisp (mie o da altre fonti) per la soluzione dei piccoli problemi quatidiani e devo dire che il lisp è un linguaggio molto versatile e abbastanza semplice da programmare (avendo tempo .. ovviamente) .

ho dato un occhiata al tuo sito e sono sicuro di trovare cose interessanti.

sarai daccordo con me però, che a volte alcune persone non conoscendo a fondo autocad (che ha all'interno un sacco di segreti) a volte si rivolgono inutilmente verso macro esterne...

per esempio poca gente ha mai esplorato il menù bonus in autocad14 che in autocad2000 si chiama "express" all'interno del quale si possono trovare diverse interessanti utillity in arx e lsp; comandi per la modifica del testo , delle entità e per la piccola gestione dei layer e delle entità all'interno dei blocchi.

ciao e grazie.
marcog



max
22-07-2002, 11.51.50

...posso dire una cosa?
sono stati proprio degli stronzi a togliere gli express nella 2002!!
max



marcog
22-07-2002, 12.29.53

li hanno tolti!!!!?????

kakkio ancora non avevo visionato la 2002... beh.. sai cosa ti dico?? quando farò l'upgrade me li porto dal 2000.

che tu sappia funzionano ? (anche in parte)

ti spiego... per ora non voglio installare 2002 perchè penso sia un upgrade inutile visto le poche innovazioni (se non stupide) che hanno inserito.

penso come al solito sia migliore saltare un passaggio di autocad cercando di upgradarlo tra una versione.

stessa cosa vale per 3ds, penso che a ottobre prenderò il viz5 perchè il 4 (radiosity a parte) mi sembra solo una versione di passaggio... oltretutto "solo" in inglese.

ciao a presto . marcog



max
22-07-2002, 14.00.49

... "se vogliono gli express menù, se li comprano".
così autodesk ha giustificato il fatto di non pagare più gli express a chi li faceva per inserirli standard nel pacchetto...

altra buona notizia: quelli del 2000 non funzionano

in effetti se non fosse per le quote associative non ci sarebbero valide ragioni per passare alla 2002, se non che la 2000 in winxp non è supportata...

...una valle che si brucia!!
max


marcog
22-07-2002, 15.11.50

beh... sai.. non è che mi meravigli molto... conosco autocad dal lontano 88 quando uscì praticamente la sua prima o seconda versione.. (su 5 o 6 floppy da 5e1/4)

beh.. da allora direi che l'ultimo a goderne sono stati gli utenti... le innovazioni migliori degli ultimi anni sembra siano state messe come "optional" .. come nelle automobili...

non credo sia una buona politica e te lo dice uno che di autocad ne parla molto bene proprio perchè è una piattaforma molto ben adattabile alle esigenze di tutti.

sembra che facciano una politica contraria a quella di molti altri...

per esempio nel campo del rendering maya è stato lanciato ad un prezzo molto competitivo (si parla addirittura di circa 2000$) questo lo mette a disposizione di un pubblico molto ampio...

autocad non solo "non" si rinnova più di tanto ... rispetto ad altri ma addirittura mantiene il prezzo già altino per il pubblico medio.

io ho sempre difeso (ed acquistato) finchè ho potuto autocad ma come utente non mi sento per niente soddisfatto del trattamento.. anche se continuerò ad usarlo visto che oramai ce l'ho nelle ossa tra un po...

scusate della chiaccherata.... torno al mio lavoro.. (ma resto collegato) a presto
marcog



arklisp
26-07-2002, 11.22.00

mi è piaciuto molto il pig-pong nato dall'apertura del mio intervento sul calcolo delle aree di figure chiuse. e devo rimarcare che tutti hanno ragione dal proprio punto di vista.
la ragione stà in mezzo, o per dirla come i latini: "in medio stat virtus".
intevengo di nuovo per mettervi a conoscenza che anche il sottoscritto concorda con quanto scaturito dal dibattito e tornando al calcolo delle aree conoscevo già l'opzione
"object", che ahimè non calcola qualunque figura chiusa. vi informo che il mio software arklisp stà lentamente trasformandosi ed ha introdotto alcune novità.
in particolare ora permette di caricare macro e plug-in persoanli , anche esterni alla sua installazione. sicuramente molto più flessibile che in passato.
a voi rimetto comunque l'ardua sentenza.

sul discorso della politica autodesk potremmo parlarne per giorni e anch'io stento a comprenderne in toto gli obiettivi finali.
tuttavia meglio non sputare nel piatto in cui si mangia...quindi torniamo al lavoro!

ciao a tutti
fabrizio
http://webspace.omniway.sm/fbattistini/



piero
31-07-2002, 22.54.15

ciao a tutti, volevo dirvi che emilisp ha inserito, oltre ai suoi numerosi comandi, anche molti comandi del vecchio bonus della r14.
emilisp si trova al sit www.emicad.it
ciao piero



fasans
31-07-2002, 23.01.23

le "express toolbars" di autocad 2000 funzionano parzialmente sul 2002!
caricate i file .arx! da me funziona!
ciao!
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top