Você está na página 1de 15

ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO

Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP


Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
86
1a. Lista de Exerccios PMR2520
Grupos Definidos at 10 de maro de 2008 (secretaria) - Prazo para entrega: 23 de abril de 2008.
Prof. Dr. Marcos Tsuzuki
O objetivo deste exerccio implementar rotinas que determinam o valor das seguintes
propriedades integrais de slidos poliedrais:
rea
volume (para clculo do volume utilize o ponto mdio do slido)
centro de gravidade
criao de primitivo barra T
Para isto voc dever utilizar o software USPDesigner. Tudo dever ser implementado em
linguagem C. Temos trs opes de compilao:
1. Compilador Borland C++ 3.0 - modo Large de memria.
2. Compilador Visual C++ 6.0
3. Visual Studio 2003
O USPDesigner possui uma linguagem de programao prpria, atravs desta linguagem possvel
definir os modelos slidos que sero estudados. No conjunto de arquivos fornecido, os arquivos
com a terminao *.cad so exemplos desta linguagem.
Para executar a rotina que voc est programando, criamos o comando PROP. Para interfacear as
suas rotinas com o USPDesigner, voc dever criar uma rotina semelhante a seguinte:
#include <stdio.h>
#define __ROV__
#include "mensagem.h"
#include "memvirtu.h"
#include "lowparam.h"
#include "lowmacro.h"
#include "lowsolid.h"
#include "eulerops.h"
#include "vectorop.h"
#include "genfunc_.h"
#include "analise_.h"
#include "mancommd.h"
Acima, esto declarados os arquivos de include onde todas as funes esto definidas. Os defines
acima tambm estar presente para configurar a memria virtual.
A rotina de interface deve ser algo semelhante ao seguinte algoritmo:
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
87
void MSD_execManipulatePropriedade(void)
{
int ip ;
char onam[30] ;
matrix mat ;
float area, volume. cx, cy, cz ; // definio das variveis locais
for (ip = 0 ; ip == 0 ; ) {
switch(optin()) { // recupera as oes do comando
// - Comando que calcula a area - recupera o nome do solido
case 'a':
if (1 == sscanf(restbuf, "%s", onam)) {
area = MSD_highNamePropriedadeArea(onam) ;
ip = 1 ;
< imprime o valor da area >
}
break ;
// - Comando que calcula o volume - recupera o nome do solido
case 'v':
if (1 == sscanf(restbuf, "%s", onam)) {
volume = MSD_highNamePropriedadeVolume(onam) ;
ip = 1 ;
< imprime o valor do volume >
}
break ;
// - Comando que calcula o centro de gravidade - recupera o nome do solido
case 'c':
if (1 == sscanf(restbuf, "%s", onam)) {
MSD_highNamePropriedadeCGravidade(onam, &cx, &cy, &cz) ;
ip = 1 ;
< imprime o valor do centro de gravidade >
}
break ;
// - Comando que calcula a matriz de inrcia - recupera o nome do solido
case 'i':
if (1 == sscanf(restbuf, "%s", onam)) {
MSD_ highNamePropriedadeMInercia(onam, mat) ;
ip = 1 ;
< imprime a matriz de inrcia >
}
break ;
// - Comando para criar o primitivo barra T
case 't':
if (1 == sscanf(restbuf, "%s", %f, %f, %f, %f, %f,
onam, &d1, $d2, &d3, &d4, &d5)) {
MSD_ highCreatePrimitivoT(onam, d1, d2, d3, d4, d5) ;
ip = 1 ;
}
break ;
}
if (ip == 0) {
printf("-avcit nome do slido\n") ;
if (!lineins("? "))
return ;
}
}
}
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
88
A rotina de interface permitir que o acionamento das rotinas que voc implementar sejam feitos
atravs dos comandos da linguagem do USPDesigner listados abaixo:
prop -a casa # determina a rea do slido casa
prop -v casa # determina o volume do slido casa
prop -c casa # determina o centro de gravidade do slido casa
prop t casa 10 3 2 5 3 # cria um primitivo T com as dimensoes especificadas
Para implementar o seu programa necessrio que voc tenha acesso aos ponteiros da estrutura
interna do slido. Para, a partir do nome do slido, obter o ponteiro de sua estrutura, isto os
seguintes passos so necessrios:
float MSD_highNamePropriedadeArea(char *name)
{
int sn ; // identificador do slido
if ((sn = MSD_getSolidIdFromName(name)) == -1) {
fprintf(stderr, "area: nao encontrou o slido %s!\n", name) ;
return(ERROR) ;
}
return(MSD_highPropriedadeArea(sn)) ;
}
float MSD_highPropriedadeArea(Id sn)
{
SPTYPE s ; // ponteiro para o slido
if ((s = MSD_getSolid(sn)) == SNIL) {
fprintf(stderr, "area: nao encontrou o slido %d!\n", sn) ;
return(0.0) ;
}
return(MSD_lowPropriedadeArea(s)) ;
}
Estes passos so necessrios, pois o USPDesigner est estruturado de maneira a possuir trs nveis
de programao:
1. nvel superior, onde os slidos so acessados por nomes
2. nvel intermedirio, onde os slidos so acessados por identificadores
3. nvel inferior, onde os slidos so acessados pelos seus ponteiros.
No aconselhamos acessar informaes do nvel 3 diretamente, a partir do nvel 1.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
89
S h e l l
S l i d o
L a o
F a c e
M e i a - a r e s t a
V r t i c e
S u p e r f c i e
C u r v a
P o n t o
I n f o r m a o
T o p o l g i c a
I n f o r m a o
G e o m t r i c a
Figure 1. Estrutura de Dados do USPDesigner
Os seguintes tipos podem ser utilizados:
SPTYPE // ponteiro para um slido
DPTYPE // ponteiro para um shell
FPTYPE // ponteiro para uma face
LPTYPE // ponteiro para um lao
HPTYPE // ponteiro para uma half-edge
VPTYPE // ponteiro para um vrtice
As seguintes funes para manipulao de slidos esto disponveis:
SolNxt(p): Recupera o prximo slido relativo ao slido p, na lista ligada.
SolSShells(p) Recupera o primeiro shell da lista ligada ligada de shells do slido p.
As seguintes funes para manipulao de shells esto disponveis:
SheNextD(p): Recupera o prximo shell relativo ao shell p, na lista ligada.
SheSFaces(p) Recupera a primeira face da lista ligada ligada de faces do shell p.
As seguintes funes para manipulao de faces esto disponveis:
FacNextF(p): Recupera a prxima face relativa a face p, na lista ligada.
FacFLOut(p): Recupera o lao externo da face p.
FacFLoops(p) Recupera o primeiro lao da lista ligada ligada de laos da face p.
FacFeq(p)[0]: coordenada x da equao da face p - a x b y c z d + + + = 0 .
FacFeq(p)[1]: coordenada y da equao da face p.
FacFeq(p)[2]: coordenada z da equao da face p.
FacFeq(p)[3]: coordenada homognea da equao da face p.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
90
Para as faces, importante observar a diferena entre lao interno e lao externo. A equao da face
pode ser tratada como um vetor de quatro elementos - a funo FacFeq(p) retorna um ponteiro para
o vetor que contm a equao da face. As seguintes funes para manipulao de laos esto
disponveis:
LooNextL(p): Recupera o prximo lao relativo ao lao p, na lista ligada.
LooLEdg(p): Recupera a primeira halfedge do circuito de arestas do lao p.
As seguintes funes para manipulao de halfedges esto disponveis:
HalWLoop(p): Recupera o lao associado a halfedge p.
HalEdg(p): Recupera a areasta associada a halfedge p.
HalNxt(p): Recupera a prxima halfedge relativa a halfedge p, no lao associado.
HalPrv(p): Recupera a halfedge anterior relativa a halfedge p, no lao associado.
HalVtx(p): Recupera o vrtice associado a halfedge p.
As seguintes funes para manipulao de vrtices esto disponveis:
VerVCoord(p)[0]: coordenada x do vrtice p.
VerVCoord(p)[1]: coordenada y do vrtice p.
VerVCoord(p)[2]: coordenada z do vrtice p.
VerVCoord(p)[3]: coordenada homognea do vrtice p.
As coordenadas do vrtice podem ser tratadas como um vetor de quatro elementos - a funo
VerVCoord(p) retorna um ponteiro para o vetor que contm as coordenadas do vrtice. Esto
disponveis as seguintes rotinas para manipulao de vetores:
void vecmult(vector v1, vector v2, matrix m): v v m
1 2
=
void vecminus(vector v1, vector v2, vector v3): v v v
1 2 3
=
void vecplus(vector v1, vector v2, vector v3): v v v
1 2 3
= +
void cross(vector v1, vector v2, vector v3): v v v
1 2 3
=
float dot(vector v1, vector v2): v v
1 2

void veccopy(vector v1, vector v2): v v


1 2
=
void matzer(matrix m): zera a matriz m.
void veczer(vector v): zera o vetor v.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
91
Considere a rotina para clculo de rea como exemplo para o seu desenvolvimento.
/*** Calculo da area do laco ***/
double MSD_ lowPropriedadeAreaLaco(LPTYPE l)
{
HPTYPE he ;
VPTYPE v1 ;
vector aa, bb, cc, dd, vv1 ;
veczer(dd) ;
he = LooLEdg(l) ;
v1 = HalVtx(he) ;
he = HalNxt(he) ;
do {
veccopy(vv1, VerVCoord(v1)) ;
vecminus(aa, VerVCoord(HalVtx(he)), vv1) ;
vecminus(bb, VerVCoord(HalVtx(HalNxt(he))), vv1) ;
cross(cc, aa, bb) ;
vecplus(dd, dd, cc) ;
} while ((he = HalNxt(he)) != LooLEdg(l)) ;
return(-0.5 * dot(FacFeq(LooLFace(l)), dd)) ;
}
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
92
Como compilar o seu sistema.
Visual Studio 2003
Neste caso voc deve executar o Visual Studio 2003 e abrir o projeto USPDesigner. necessrio
tambm incluir o diretrio de arquivos de include. Selecione Tools -> Options, nesta tela selecione
Projects -> VC++ Directories e inclua o diretrio INC do pacote fornecido.
VC++ 6.0
Neste caso voc deve executar o VC++ 6.0 e abrir o projeto USPDesigVC6. necessrio tambm
incluir o diretrio de arquivos de include. Selecione Tools -> Options, nesta tela selecione
Directories e inclua o diretrio INC do pacote fornecido.
Borland C++ 3.0
Se voc no possuir nenhum dos dois ambientes acima, poder utilizar o Borland C++ 3.0. Execute
o compilador BC.EXE e abra o projeto USPDESIGN.
Em seguida vrios arquivos sero abertos, mas voc dever utilizar em maior detalhe apenas os
arquivos listados abaixo:
ex16bit.cpp arquivo fonte com o esqueleto de programa ilustrado no exerccio.
Teste o seu programa com vrios modelos de slidos, coloque as respostas no relatrio a ser
entregue.
Os arquivos *.cad contm exemplos de programas prontos, feitos na linguagem do USPDesigner.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
93
Anexo 1 - Determinando propriedades integrais em slidos poliedrais
As propriedades integrais de um slido Q definido como a integral de volume de uma funo f
sobre um slido:

=
Q
dv z y x f I ) , , (
( 1 )
A maioria dos estudos computacionais de integrais mltiplas tratam o problema em que o domnio
Q geometricamente simples mas o integrando f complexo. Entretanto, na determinao da
massa, momento de inrcia, etc., ns estamos diante de um problema inverso: a funo f
geralmente simples mas o domnio Q geralmente complexo.
Neste exerccio utilizaremos o teorema do divergente que fornece um mtodo alternativo para
determinar as propriedades integrais dos slidos pela integrao de seus contornos:

= =
Q Q Q
ds dv div dv z y x f n g g) ( ) , , (
( 2 )
onde g uma funo vetorial que satisfaz a condio ) (g div f = , Q o contorno de Q, n
vetor normal unitrio ao contorno, e ds o diferencial de superfcie.
Determinando a rea do tringulo
A rea de um tringulo T com vrtices ( )
2 1 0
, , v v v igual ao produto vetorial dos dois vetores
( )
1 0 1
, v v = r e ( )
2 0 2
, v v = r :
2 1
5 . 0 ) ( r r = T Area ( 3 )
onde o smbolo representa o produto vetorial de dois vetores. Desta maneira a rea definida
como um vetor que possui uma quantidade e tambm um orientao. A rea de uma regio plana
fechada arbitrria R dada por:

=
R
R Area dl r 5 . 0 ) (
( 4 )
onde R o contorno da regio R e dl o diferencial do vetor tangente do contorno a rea do
polgono planar { }
n
v v v R , , ,
2 1
= com n vrtices ( )
i i i i
z y x v , , = dada por:
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
94

=
+ +

=
=
2
1
2 1 1 1
) , ( ) , ( 5 . 0
5 . 0 ) (
n
i
i i
R
v v v v
R Area dl r
( 5 )
Utilizando
1
v como um centro de projeo, o polgono plano foi dividido seqencialmente em
vrios tringulos formados por
1
v e cada uma das diferentes arestas do polgono em seqncia. A
rea do polgono a soma vetorial das reas de todos os tringulos como definido na equao ( 3 ).
A equao ( 5 ) vale tanto para polgonos convexos e para polgonos concvos.
A propriedade integral de um poliedro Q pode ser descrita por

=
Q
dv z y x f I ) , , (
( 6 )
Onde a funo f um polinmio. Com uma transformao linear definida como
) , , (
) , , (
) , , (
w v u g z
w v u g y
w v u g x
z
y
x
=
=
=
( 7 )
A equao ( 6 ) ficar

=
Q
z y x
dw dv du J g g g f I ) , , (
( 8 )
Onde o Jacobiano J vale
w
g
v
g
u
g
w
g
v
g
u
g
w
g
v
g
u
g
J
z z z
y y y
x x x

=
( 9 )
O integrando f na equao ( 6 ) um polinmio que pode ser genericamente representado por
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
95

=
3 2 2
3 2 1
, ,
) , , (
n n n
n n n
z y x z y x f
( 10 )
onde
1
n ,
2
n e
3
n so inteiros. Para calcular a integral descrita na equao ( 6 ), podemos focar a
nossa ateno apenas em um termo

=
Q
n n n
dz dy dx z y x I
3 2 1
( 11 )
Vamos apenas analisar o caso em que Q um 3D simplex, i.e., um tetraedro, com quatro vrtices
( )
3 2 1 0
, , , v v v v com o vrtice
0
v localizado na origem. As coordenadas dos vrtices so
( )
( )
( )
3 3 3 3
2 2 2 2
1 1 1 1
0
, ,
, ,
, ,
) 0 , 0 , 0 (
z y x v
z y x v
z y x v
v
=
=
=
=
( 12 )
Define-se a transformao linear T como

=
3 2 1
3 2 1
3 2 1
z z z
y y y
x x x
T
( 13 )
que relaciona o antigo sistema de coordenadas ( ) z y x , , com o novo sistema de coordenadas
( ) Z Y X , , por

Z
Y
X
z z z
y y y
x x x
z
y
x
3 2 1
3 2 1
3 2 1
( 14 )
Com esta transformao, o tetraedro ( )
3 2 1 0
, , , v v v v Q = da equao ( 12 ) transformado em um
tetraedro unitrio ortogonal ( )
3 2 1 0
, , , v v v v W = com coordenadas
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
96
( )
( )
( )
( ) 1 , 0 , 0
0 , 1 , 0
0 , 0 , 1
0 , 0 , 0
3
2
1
0
=
=
=
=
v
v
v
v
( 15 )
Baseando-se na transformao exibida na equao ( 14 ), a integral na equao ( 8 ) ficar
( ) ( ) ( )
3
2 1
3 2 1
3 2 1 3 2 1 3 2 1
n
W
n n
Q
n n n
Z z Y z X z Z y Y y X y Z x Y x X x T
dz dy dx z y x I

+ + + + + + =
=
( 16 )
Onde o Jacobiano T igual ao valor absoluto do determinante da matriz T. A seguir
descrevemos a frmula para calcular a integral do polinmio
3 2 1
n n n
z y x sobre um tetraedro W
ortogonal unitrio como descrito na equao ( 15 ).
( )! 3
! ! !
3 2 1
3 2 1
1
0
1
0
1
0
3 2 1 3 2 1
+ + +

=
=


n n n
n n n
dz dy dx z y x dv z y x
z y z
n n n
W
n n n
( 17 )
possvel observar que o tetraedro arbitrrio pode ser sempre transformado em um tetraedro
unitrio ortogonal por meio da matriz de transformao T como na equao ( 14 ). Portanto, a
integral de um polinmio sobre um tetraedro pode ser calculada simbolicamente pelas equaes
( 16 ) e ( 17 ). Para calcular a integral envolvida na equao ( 16 ), primeiro devemos decompor o
integrando
( ) ( ) ( )

+ + +

=
=
+ + + + + + =
i j k
i j k
W
k j i
n
W
n n
k j i
k j i
k j i c T
Z Y X k j i c T
Z z Y z X z Z y Y y X y Z x Y x X x T I
)! 3 (
! ! !
) , , (
) , , (
3
2 1
3 2 1 3 2 1 3 2 1
( 18 )
Onde a funo ) , , ( k j i c representa o coeficiente do termo
k j i
Z Y X na expao do integrando, que
pode ser descrito como
( ) ( ) ( )

+ + = + +
= + + + + + +
3 2 1
3 2 1
) , , (
3 2 1 3 2 1 3 2 1
n n n k j i
k j i n n n
z y x k j i c Z z Y z X z Z y Y y X y Z x Y x X x
( 19 )
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
97
Os seguintes exemplos exibem como devemos calcular o volume e o centro de massa de um 3D-
simplex. O volume do tetraedro dado por:
6 ! 3
! 0
T
T dV T dv V
w Q
= = = =

( 20 )
O baricentro ( )
0 0 0
, , z y x de um tetraedro dado por
( )

+ + =
=
W
Q
dZ dY dX Z x Y x X x
V
T
dv x
V
x
3 2 1
0
1
( 21 )
( )
( )
( )
3 2 1 0
3 2 1 0
3 2 1 0
4
1
4
1
4
1
z z z z
y y y y
x x x x
+ + =
+ + =
+ + =
( 22 )
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
98
Anexo 2 Criando o slido primitivo T
O slido primitivo T definido pelo desenho abaixo:
A Figura acima define um polgono, e para criarmos o slido com volume temos a largura D5 que
define de quanto este polgono ser extrudado.
Voc dever utilizar os seguintes operadores de Euler:
MVSF (Make Vertex Solid Face): este operador cria um slido inicial com apenas uma face e um
vrtice; o acionamento do operador feito pela rotina:
SPTYPE MSD_lowMVSF(Id sn, Id fn, Id vn, Id dn, float xx, float yy, float zz)
sn: identificador do slido a ser criado
fn: identificador da face a ser criada
dn: identificador do shell a ser criado
vn: identificador do vrtice a ser criado
xx, yy, zz: coordenadas do vrtice criado
D1
D2
D4
D3
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
99
MEV (Make Edge Vertex): este operador adiciona a um slido uma aresta e um vrtice. A aresta
criada conectando-se um vrtice j existente ao novo vrtice criado; o acionamento deste operador
feito pela rotina:
int MSD_highSVME3(Id sn, Id v1, Id v2, Id v3, Id v4, Id f1, Id f2, Id f3, Id f4,
float x, float y, float z)
sn: identificador do slido a ser modificado
a aresta e1 definida por f1, f3, v1 e v2 e a aresta e2 definida por f2, f4, v1 e v3
x, y, z: coordenadas do vrtice a ser criado
v4: identificador do novo vrtice a ser criado.
O operador MEV possui a seguinte semntica:
V1
V2
V3
F1
F3
F2
F4
V1
V2
V3
F1
F3
F2
F4
V4
nova
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
100
MEF (Make Edge Face): este operador adiciona ao slido uma aresta e uma face. A face criada
pela diviso de uma face j existente acrescentando-se a nova aresta; o acionamento deste operador
feito pela rotina:
int MSD_highMEF2(Id sn, Id v1, Id v2, Id v3, Id v4, Id f1, Id f2, Id f3, Id f4)
sn: identificador do slido a ser modificado
a aresta e1 definida por f1, f2, v1 e v3 e a aresta e2 definida por f1, f3, v2 e v4
f4: identificador da nova face a ser criada.
O operador MEF possui a seguinte semntica:
V1
V2
V3
F1
F3
F2
V4
V1
V2
V3
F1
F3
F2
V4
F4

Você também pode gostar