RUGGIUNO
Guest
d2f
23-01-2004, 16.00.25
volevo sapere come calcolare la normale in un punto ad una superficie individuata da 4 punti non coincidenti
d2f
23-01-2004, 17.52.07
ho dimenticato di dire che il punto dove calcolare la normale coincide con uno de quattro che individuano la superficie
gjiom
24-01-2004, 15.30.39
per normale intendi il punto da cui vedi la "superficie" i cui vertici risulteranno disegnati in senso orario?
d2f
26-01-2004, 18.12.01
no, per normale intendo la linea "perpendicolare" alla sup.
pgrigio
26-01-2004, 20.14.17
ciao d2f,
innanzitutto una superficie viene individuata da 3 pti linearmente indipendenti e nn da 4...
secondo, ci sono vari metodi, per calcolare la normale... penso tu voglia calcolarla con autolisp, in questo caso il metodo + veloce consiste nell'utilizzare il comando "cal" di autocad, altro nn e' che una routine arx esterna, che puoi richiamare come funzione... con il passaggio dei vari parametri.
guardati l'help, c'e' scritto tutto!!!
gjiom
27-01-2004, 01.25.28
mi era scappato il "perpendicolare" dopo "...il punto..." e orario con antiorario !!! scusa!!!
mi associo a pgrigio, una volta tanto, il comando "cal" è ok per questi giochini...
comunque un punto perpendicolare ad una superficie non basta a definire una "normale" è solo associando anche la disposizione antioraria dei punti che ciò avviene... infatti ci potrebbe anche essere un punto esattamente dall'altra parte della stessa faccia perfettamente perpendicolare ad essa ma "deficente", opsss "non normale".
se converti una polilinea in faccia, penso con qualsiasi programma di rendering, e scarta facce posteriori è attivo, vedrai quella superficie "solo" se ti posizioni in modo tale che i suoi vertici risultino disegnati in senso antiorario, rispetto alla vista, quindi normali...
era uno dei trucchetti maggiormente utilizzati per dare velocemente in pasto un 3d leggero ai vari 3dstudio qualche anno fà... bastava costruire in acad un 3d composto da polilinee chiuse, veloce e leggero rispetto ai solidi, e poi il fare una conversione totale nel renderizzatore... le polilinee o 3dface doveveno essere "normali" rispetto alla direzione della vista che si desiderava ottenere, le facce posteriori erano un carico di lavoro eccessivo in rendering per i pc di qualche anno fà...
d2f
27-01-2004, 14.23.52
ringrazio tutti per le risposte,
guarderò l' help di cal.
non sono però convinto del fatto che una superficie sia individuata da soli tre punti, a meno che non si considerino solo le superfici piane.
ad esempio la superficie racchiusa dal quadrilatero con vertici 0,0,0 0,50,0 50,50,0 0,50,50 non viene individuata da tre punti, non essendo una superficie piana, neanche un cono o un cilindro possono, se non aprossimati essere individuati da solo tre punti.
pgrigio
27-01-2004, 16.07.21
pensavo intendessi la superficie piana, guarda cmq il comando "cal" che forse ti aiuta...
dovrei rivedere un po' di teoria per la questione dei 3 pti o 4... ma nn credo che questo serva per i tuoi scopi...
per il momenrto e' tutto...
pgrigio
27-01-2004, 19.42.37
esprimo un piccolo rispolvero matematico… per capire quanti pti occorrono per definire una superficie.
f(x,y,z)=0 rappresenta una generica superficie, pertanto il numero di pti necessari a individuarla dipende dai parametri che la caratterizzano.
sicuramente fissata la funzione, il max numero di parametri per definirla nello spazio e’ pari a 6 (ovvero i 3 parametri angolari + le 3 coordinate del pto di riferimento).
pertanto i parametri totali per individuarla sono 6+n. pertanto i pti necessari a individuarla sono 3 o + nel caso generale.
detto questo prendiamo superfici particolari regolari come ad esempio:
1) cilindri indefiniti (nn un cilindro limitato)
2) doppio cono indefinito (nn un cono limitato)
3) toro
4) piano
(nn possiamo prendere un cono o un cubo, perche’ nn sono definiti da una funzione regolare, in tal caso un cubo e’ formato da + piani, un cono da un piano e da un cono indefinito, volgarmente parlando...)
in questi casi particolari (1) (2) (3) e (4), analizzando le loro funzioni parametriche si vede facilmente che i pti sufficienti a definirli sono 3.
in altri casi cio’ potrebbe nn essere vero ma sicuramente nn possono essere inferiori ai 3.
pgrigio
27-01-2004, 19.45.10
purtroppo la funzione “cal” nn e’ in grado di determinare un vettore normale a una superficie generica come una sfera, cono, ecc.
in questo caso, d2f, ti suggerisco di esplodere la superficie e di determinarne il vettore normale tramite le faccie 3d che risultano dall’esplosione.
nn sara’ un risultato esatto ma infittendo la precisione delle mesh tramite le variabili “surftab1-2” potrai senz’altro arrivare un valore pressoché uguale a quello vero.
ciaoo
p.s. del resto tutti i metodi numerici giungono al risultato mediante approssimazioni…
folini
03-02-2004, 04.33.57
salve,
supponiamo che la tua superficie sa individuata dai punti a,b,c e d e che tu voglia calcolare la normale in a. la piu' semplice superficie per quattro punti e' una superficie ruled (bilineare).
la normale e' semplicemente calcolabile con i seguenti passi:
1. determina il vettore ab = puntob - punto a
2. normalizza il vettore ab
3. determina il vettore ad = punto d - punto a
4. normalizza ad
5. calcola la normale n = ab x ad (prodotto vettoriale)
qualunque sia il linguaggio con cui stai lavorando, sono poche linee di codice.
d2f
03-02-2004, 14.33.39
esattamente ciò che stavo cercando.
ringrazio tutti e in particolare folini
pgrigio
03-02-2004, 19.47.30
ciao,
sono contento per te...
cmq la guida in linea di autocad recita quanto segue:
“poiché le facce della mesh sono piane, la mesh può fornire solo una rappresentazione approssimativa delle superfici curve. mediante il programma mechanical desktop, è possibile creare superfici curve reali. per distinguere i due tipi di superfici, in autocad le superfici sfaccettate vengono chiamate mesh”
pertanto ci potrebbero essere utenti che utilizzano mechanical desktop... con esso le superfici primitive (di una generica superficie) nn sono semplici piani, bensi’ superfici curve!!!
in questo caso il semplice prodotto vettoriale (o la funzione “cal”, e’ la stessa cosa, perche’ semplifica il calcolo del prodotto vettoriale…) nn basta. occorrono altri accorgimenti matematici.
nn possedendo mechanical desktop nn posso aggiungere altro, perche’ la teoria va anche messa in pratica… e ulteriori miei ragionamenti teorici nn avrebbero senso. probabilmente in questa situazione e’ obbligatorio (di sicuro e’ conveniente) esplodere la superficie…
in ogni caso solo esplodendo si puo’ trovare la normale fornendo 1 solo pto anziche’ 4 (ripeto che ne bastano 3 e non 4 escludendo il pto in cui si vuole la normale). questo pto sara’ il pto in cui deve passare la normale cercata.
jameshetfield
14-01-2005, 15.35.12
ciao, penso di avere un problemino analogo a quello della normale ad una superficie.
ho realizzato in autolisp una routine che esplode le mesh poligonali, e realizza una trama di tanti triangolini (per mezzo di 3dpoly) che vanno a sostituire le facce 3d risultanti dall'esplosione.
ora, estrudendo il tutto, succede che alcuni triangolini assumono un verso di estrusione altri, il verso opposto. io chiaramente vorrei che l'estrusione dei triangolini avvenisse tutta in un verso (a prescindere dalla direzione che è ovviamente normale al piano individuato dal triangolino).
ho provato a controllare il codice dxf 210, per il vettore di estrusione, ma non c'è alcuna differenza tra il data base (polilinea 3d) dei triangolini dritti e di quelli rovesci.
come potrei fare per rintracciare i rovesci?
grazie dell'aiuto
23-01-2004, 16.00.25
volevo sapere come calcolare la normale in un punto ad una superficie individuata da 4 punti non coincidenti
d2f
23-01-2004, 17.52.07
ho dimenticato di dire che il punto dove calcolare la normale coincide con uno de quattro che individuano la superficie
gjiom
24-01-2004, 15.30.39
per normale intendi il punto da cui vedi la "superficie" i cui vertici risulteranno disegnati in senso orario?
d2f
26-01-2004, 18.12.01
no, per normale intendo la linea "perpendicolare" alla sup.
pgrigio
26-01-2004, 20.14.17
ciao d2f,
innanzitutto una superficie viene individuata da 3 pti linearmente indipendenti e nn da 4...
secondo, ci sono vari metodi, per calcolare la normale... penso tu voglia calcolarla con autolisp, in questo caso il metodo + veloce consiste nell'utilizzare il comando "cal" di autocad, altro nn e' che una routine arx esterna, che puoi richiamare come funzione... con il passaggio dei vari parametri.
guardati l'help, c'e' scritto tutto!!!
gjiom
27-01-2004, 01.25.28
mi era scappato il "perpendicolare" dopo "...il punto..." e orario con antiorario !!! scusa!!!
mi associo a pgrigio, una volta tanto, il comando "cal" è ok per questi giochini...
comunque un punto perpendicolare ad una superficie non basta a definire una "normale" è solo associando anche la disposizione antioraria dei punti che ciò avviene... infatti ci potrebbe anche essere un punto esattamente dall'altra parte della stessa faccia perfettamente perpendicolare ad essa ma "deficente", opsss "non normale".
se converti una polilinea in faccia, penso con qualsiasi programma di rendering, e scarta facce posteriori è attivo, vedrai quella superficie "solo" se ti posizioni in modo tale che i suoi vertici risultino disegnati in senso antiorario, rispetto alla vista, quindi normali...
era uno dei trucchetti maggiormente utilizzati per dare velocemente in pasto un 3d leggero ai vari 3dstudio qualche anno fà... bastava costruire in acad un 3d composto da polilinee chiuse, veloce e leggero rispetto ai solidi, e poi il fare una conversione totale nel renderizzatore... le polilinee o 3dface doveveno essere "normali" rispetto alla direzione della vista che si desiderava ottenere, le facce posteriori erano un carico di lavoro eccessivo in rendering per i pc di qualche anno fà...
d2f
27-01-2004, 14.23.52
ringrazio tutti per le risposte,
guarderò l' help di cal.
non sono però convinto del fatto che una superficie sia individuata da soli tre punti, a meno che non si considerino solo le superfici piane.
ad esempio la superficie racchiusa dal quadrilatero con vertici 0,0,0 0,50,0 50,50,0 0,50,50 non viene individuata da tre punti, non essendo una superficie piana, neanche un cono o un cilindro possono, se non aprossimati essere individuati da solo tre punti.
pgrigio
27-01-2004, 16.07.21
pensavo intendessi la superficie piana, guarda cmq il comando "cal" che forse ti aiuta...
dovrei rivedere un po' di teoria per la questione dei 3 pti o 4... ma nn credo che questo serva per i tuoi scopi...
per il momenrto e' tutto...
pgrigio
27-01-2004, 19.42.37
esprimo un piccolo rispolvero matematico… per capire quanti pti occorrono per definire una superficie.
f(x,y,z)=0 rappresenta una generica superficie, pertanto il numero di pti necessari a individuarla dipende dai parametri che la caratterizzano.
sicuramente fissata la funzione, il max numero di parametri per definirla nello spazio e’ pari a 6 (ovvero i 3 parametri angolari + le 3 coordinate del pto di riferimento).
pertanto i parametri totali per individuarla sono 6+n. pertanto i pti necessari a individuarla sono 3 o + nel caso generale.
detto questo prendiamo superfici particolari regolari come ad esempio:
1) cilindri indefiniti (nn un cilindro limitato)
2) doppio cono indefinito (nn un cono limitato)
3) toro
4) piano
(nn possiamo prendere un cono o un cubo, perche’ nn sono definiti da una funzione regolare, in tal caso un cubo e’ formato da + piani, un cono da un piano e da un cono indefinito, volgarmente parlando...)
in questi casi particolari (1) (2) (3) e (4), analizzando le loro funzioni parametriche si vede facilmente che i pti sufficienti a definirli sono 3.
in altri casi cio’ potrebbe nn essere vero ma sicuramente nn possono essere inferiori ai 3.
pgrigio
27-01-2004, 19.45.10
purtroppo la funzione “cal” nn e’ in grado di determinare un vettore normale a una superficie generica come una sfera, cono, ecc.
in questo caso, d2f, ti suggerisco di esplodere la superficie e di determinarne il vettore normale tramite le faccie 3d che risultano dall’esplosione.
nn sara’ un risultato esatto ma infittendo la precisione delle mesh tramite le variabili “surftab1-2” potrai senz’altro arrivare un valore pressoché uguale a quello vero.
ciaoo
p.s. del resto tutti i metodi numerici giungono al risultato mediante approssimazioni…
folini
03-02-2004, 04.33.57
salve,
supponiamo che la tua superficie sa individuata dai punti a,b,c e d e che tu voglia calcolare la normale in a. la piu' semplice superficie per quattro punti e' una superficie ruled (bilineare).
la normale e' semplicemente calcolabile con i seguenti passi:
1. determina il vettore ab = puntob - punto a
2. normalizza il vettore ab
3. determina il vettore ad = punto d - punto a
4. normalizza ad
5. calcola la normale n = ab x ad (prodotto vettoriale)
qualunque sia il linguaggio con cui stai lavorando, sono poche linee di codice.
d2f
03-02-2004, 14.33.39
esattamente ciò che stavo cercando.
ringrazio tutti e in particolare folini
pgrigio
03-02-2004, 19.47.30
ciao,
sono contento per te...
cmq la guida in linea di autocad recita quanto segue:
“poiché le facce della mesh sono piane, la mesh può fornire solo una rappresentazione approssimativa delle superfici curve. mediante il programma mechanical desktop, è possibile creare superfici curve reali. per distinguere i due tipi di superfici, in autocad le superfici sfaccettate vengono chiamate mesh”
pertanto ci potrebbero essere utenti che utilizzano mechanical desktop... con esso le superfici primitive (di una generica superficie) nn sono semplici piani, bensi’ superfici curve!!!
in questo caso il semplice prodotto vettoriale (o la funzione “cal”, e’ la stessa cosa, perche’ semplifica il calcolo del prodotto vettoriale…) nn basta. occorrono altri accorgimenti matematici.
nn possedendo mechanical desktop nn posso aggiungere altro, perche’ la teoria va anche messa in pratica… e ulteriori miei ragionamenti teorici nn avrebbero senso. probabilmente in questa situazione e’ obbligatorio (di sicuro e’ conveniente) esplodere la superficie…
in ogni caso solo esplodendo si puo’ trovare la normale fornendo 1 solo pto anziche’ 4 (ripeto che ne bastano 3 e non 4 escludendo il pto in cui si vuole la normale). questo pto sara’ il pto in cui deve passare la normale cercata.
jameshetfield
14-01-2005, 15.35.12
ciao, penso di avere un problemino analogo a quello della normale ad una superficie.
ho realizzato in autolisp una routine che esplode le mesh poligonali, e realizza una trama di tanti triangolini (per mezzo di 3dpoly) che vanno a sostituire le facce 3d risultanti dall'esplosione.
ora, estrudendo il tutto, succede che alcuni triangolini assumono un verso di estrusione altri, il verso opposto. io chiaramente vorrei che l'estrusione dei triangolini avvenisse tutta in un verso (a prescindere dalla direzione che è ovviamente normale al piano individuato dal triangolino).
ho provato a controllare il codice dxf 210, per il vettore di estrusione, ma non c'è alcuna differenza tra il data base (polilinea 3d) dei triangolini dritti e di quelli rovesci.
come potrei fare per rintracciare i rovesci?
grazie dell'aiuto
Last edited by a moderator: