scieee Science in your language
[sp] (orig)

Procedimiento para la generación de modelos geométricos con topologías de “Infill” óptimas en fabricación aditiva

Author: Postigo Martín, José Antonio
Year: 2022
Source: https://addi.ehu.eus/bitstream/10810/57129/1/TFM_JoseAntonioPostigoMartin.pdf
MÁSTER UNIVERSITARIO EN
INGENIERÍA MECÁNICA
TRABAJO FIN DE MÁSTER
P ocedimien o Pa a
La Gene ación De Modelos
Geomé icos Con Topologías De
“In ill” Óp imas
En Fab icación Adi i a
Es udian e José An onio Pos igo Ma ín
Di ec o D . Rubén Ansola Loyola
Depa amen o Ingenie ía Mecánica
Cu so académico 2021/2022
Bilbao, 5 de julio de 2022
ii
Resumen
En es e abajo se desc ibi á el p oceso de de ección, azado de con o nos y
expo ación, au oma izados, de un modelo ob enido median e una op imización
opológica a un a chi o CAD, con el obje i o de usa lo pa a ab ica las piezas
median e ab icación adi i a.
Es e p oceso consis e en idea un mé odo capaz de in e p e a los esul ados
de op imización opológica median e un conjun o de algo i mos p og amados en
lenguaje Py hon, y omando como e e encia mé odos adicionales de p ocesamien o
de imágenes. Los algo i mos se di idi án en una se ie de p ocesos que comenza án
po il a los da os pa a ob ene una imagen bina ia, dis ingui cada uno de los
aguje os o dominios acíos, ex ae los lími es de cada con o no y aplica las écnicas
necesa ias de sua izado y simpli icación de los con o nos. Es os algo i mos, aunque
omando su base en o os de dis in a inalidad, es un mé odo p opio y especí ico pa a
soluciones de op imización opológica, bidimensional y con elemen os cuad ados.
Po úl imo, ap o echando que el so wa e F eeCAD in eg a el lenguaje Py hon
po de ec o pa a c ea piezas median e código, se emplea án los da os ob enidos de
los p ocesos an e io es pa a gene a el modelo CAD co espondien e.
Palab as cla es
Op imización Topológica, MEF (Mé odo de los elemen os ini os), “In ill”, CAD
(compu e -aided design), Vec o ización, FA (Fab icación Adi i a), Píxel.
iii
Abs ac
In his wo k, he p ocess o au oma ed de ec ion, con ou acing and expo o
a model ob ained by opology op imiza ion o a CAD ile, will be desc ibe wi h he
objec i e o using i o manu ac u e pa s h ough addi i e manu ac u ing.
This p ocess consis s o de ising a me hod able o in e p e he esul s o opology
op imiza ion using a se o algo i hms p og ammed in Py hon language, and aking
adi ional image p ocessing me hods as a e e ence. The algo i hms will be di ided
in o a se ies o p ocesses ha will begin by il e ing he da a o ob ain a bina y
image, dis inguishing each o he holes o emp y domains, ex ac ing he limi s o
each con ou and applying he necessa y echniques o smoo hing and simpli ying
he con ou s. These algo i hms, al hough based on o he algo i hms wi h di e en
pu poses, is a speci ic me hod o wo-dimensional opology op imiza ion solu ions
wi h squa e elemen s.
Finally, aking ad an age o he ac ha he F eeCAD so wa e in eg a es he
Py hon language by de aul o c ea e pa s using code, he da a ob ained om he
p e ious p ocesses will be used o gene a e he co esponding CAD model.
Key Wo ds
Topology op imiza ion, FEM (Fini e elemen me hod), “In ill”, CAD (compu e -
aided design), Vec o iza ion, AD (Addi i e manu ac u ing), Pixel.

Labu pena
Lan hone an, CAD i xa egi ba e a op imizazio opologikoa en bidez lo u ako
modelo ba de ek a zeko, ingu uak aza zeko e a espo a zeko p ozesu au oma iza ua
desk iba uko da. Piezak ab ikazio gehiga ia en bidez ab ika zeko helbu ua ekin.
P ozesu hau op imizazio opologikoa en emai zak Py hon lengoaian p og ama u-
ako algo i mo-mul zo ba en bidez in e p e a zeko gai den me odo ba asma zean
da za, e a i udiak p ozesa zeko me odo adizionalak e e e en zia za ha u a. Algo-
i moak hainba p ozesu an bana uko di a. P ozesu ho iek da uak il a zen hasiko
di a, i udi bi a ba lo zeko, zulo edo domeinu hu s bakoi za be eiz eko, ingu u
bakoi za en mugak a e a zeko e a ingu uak leun zeko e a sinpli ika zeko beha ezko
eknikak aplika zeko. Algo i mo ho iek, oina ia helbu u desbe dineko bes e ba zue-
an ha u a e e, op imizazio opologikoko, bidimen sionaleko e a elemen u ka a uko
soluzioe a ako me odo p opio e a espezi ikoa di a.
Azkenik, F eeCAD so wa eak kode bidez piezak so zeko Py hon lengoaia lehe-
ne sia in eg a zen duela ap obe xa uz, au eko p ozesue a ik lo u ako da uak e abi-
liko di a dagokion CAD e edua so zeko.
Gako-hi zak
Op imizazio Topologikoa, EFM (Elemen u ini uen me odoa), “In ill”, CAD
(compu e -aided design), Bek o izazioa, FG (Fab ikazio Gehiga ia), Pixel.
ii
Ac ónimos y Ab e ia u as
AM: Addi i e Manu ac u ing ( ab icación adi i a)
β:Fac o de esca pado
BR:Dominio de un adio R
c:Función obje i o
CAD: Compu e Aided Desing Dieño asis ido po o denado
D:Conjun o de elemen os
De:Fac p de escala OCM
DLP: P ocesamien o digi al de la luz
E:Módulo de Young
FDM: Fused Deposi ion Modelling
FEM: Fini e elemen me hod (Mé odo de los elemen os ini os)
:Vec o de ue zas ex e nas
K:Ma iz de igidez
k:Núcleo del il o de con olución
K :Ma iz de igidez il o PDE
λ:Mul iplicado de Lag ange
MMA: Me hod o mo ing asympo es
Ne:Elemen os den o de una ci cun e encia de adio R
Ne(x):Vec o de unciones de in e polación
ix

Índice de igu as
1.1 Ejemplo de dominio de diseño. . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Ejemplo de iga empo ada - lib e ob enida a a és de OT. . . . . . 6
1.3 Tecnologías de ab icación adi i a [30]. . . . . . . . . . . . . . . . . . 7
1.4 Imp eso asFDM.............................. 8
1.5 Compa a i a en e DLS y SLA . . . . . . . . . . . . . . . . . . . . . 9
1.6 Ejemplos de di e en es ipologías de es uc u as «In ill» [33]. . . . . . 10
1.7 Ejemplo de iga In ill empo ada - lib e. . . . . . . . . . . . . . . . . 10
1.8 Ejemplo de esul ado de op imización. . . . . . . . . . . . . . . . . . 11
1.9 Obje i os de desa ollo sos enible. . . . . . . . . . . . . . . . . . . . . 14
1.10 E apas del algo i mo pa a expo a esul ados a CAD. . . . . . . . . 17
1.1 Dominiodediseño. ............................ 20
1.2
Mues a de la dependencia que los esul ados de op imización pa a
una iga MBB, donde en a) se mues a el p oblema eó ico, en b) el
esul ado con 400 elemen os y en c) con 6400 elemen os [15]. . . . . . 22
1.3
Mues a del The checke boa d p oblem en una iga empo ada - lib e,
en unción de la disc e ización del dominio. Con 2700 elemen os en a),
4800 en b) y 17200 en c) [15]. . . . . . . . . . . . . . . . . . . . . . . 22
1.4 Pa áme os de ajus e de la Ecuación 1.6. . . . . . . . . . . . . . . . . 24
1.5 Diag ama de lujo del algo i mo de op imización opológica. . . . . . 25
1.6
Funcionamien o de la ope ación de con olución aplicado en op imiza-
ción opológica............................... 27
1.7 Ejemplo de il o aplicado a dominio no con exo. . . . . . . . . . . . . 29
1.8 En oques adop ados pa a el posp ocesado. . . . . . . . . . . . . . . . 33
x ii
x iii Ac ónimos y Ab e ia u as
2.1
Ejemplo de imagen sin dis ingui en (a) y dis inguiendo cada aguje o
en(b).................................... 38
2.2 Ejemplo de ipos de conec i idad en e elemen os. . . . . . . . . . . . 39
2.3 Ejemplo de di e enciación de aguje os. . . . . . . . . . . . . . . . . . 39
2.4 Desc ipción del uncionamien o del Algo i mo 1. . . . . . . . . . . . . 40
2.5
Ejemplos de casos complejos en los que se ha aplicado el p oceso
dis inción.................................. 43
3.1 Posibles casos del algo i mo de Pa lidis. . . . . . . . . . . . . . . . . 46
3.2 Ejemplos de in e p e ación del con o no. . . . . . . . . . . . . . . . . 47
3.3 Con o no con inclinaciones de 45◦..................... 48
3.4 Ope ado del algo i mo de azado de con o nos. . . . . . . . . . . . . 48
3.5 Ejemplo g á ico de la unción RELOJ. . . . . . . . . . . . . . . . . . 49
3.6 Pun os cla e del elemen o. . . . . . . . . . . . . . . . . . . . . . . . . 49
3.7 Ejemplodecaso0. ............................ 51
3.8 Ejemplodecaso1. ............................ 52
3.9 Ejemplodecaso2. ............................ 52
3.10Ejemplodecaso3. ............................ 53
3.11Ejemplodecaso4. ............................ 53
3.12Ejemplodecaso5. ............................ 54
3.13Ejemplodecaso6. ............................ 54
3.14Ejemplosdecaso7 ............................ 55
3.15 Ejemplos ípicos de bo des ex e nos. . . . . . . . . . . . . . . . . . . 56
3.16 Rep esen ación de los lími es del dominio. . . . . . . . . . . . . . . . 57
3.17 Mues a de casos eales esuel os po el algo i mo. . . . . . . . . . . . 60
3.18 Mues a de casos eales esuel os po el algo i mo. . . . . . . . . . . . 61
4.1 Mues a de casos eales esuel os po el algo i mo. . . . . . . . . . . . 66
4.2 Mues a de casos eales esuel os po el algo i mo. . . . . . . . . . . . 67
4.3 Ejemplo g á ico del algo i mo de Rame –Douglas–Peucke . . . . . . . 68
4.4 Mues a de casos eales esuel os po el algo i mo. . . . . . . . . . . . 70
4.5 Mues a de casos eales esuel os po el algo i mo. . . . . . . . . . . . 71
x iii
4.6 Á bol de ope aciones de F eeCAD. . . . . . . . . . . . . . . . . . . . 73
4.7 Diag ama de lujo de expo ación a F eeCAD. . . . . . . . . . . . . . 74
4.8 Mues a de casos eales esuel os po el algo i mo. . . . . . . . . . . . 75
4.9 Mues a de casos eales esuel os po el algo i mo. . . . . . . . . . . . 76
5.1 Piezas ab icadas median e FA. . . . . . . . . . . . . . . . . . . . . . 81
Índice de Tablas
3.1 Enume ación de los casos posibles . . . . . . . . . . . . . . . . . . . . 51
xxi

Pa e I
Memo ia
1
Memo ia
Con enido
In oducción.............................. 3
Op imización de opología . . . . . . . . . . . . . . . . . . . . . . 4
Fab icaciónAdi i a.......................... 6
Op imización de Topologías In ill .................. 9
Con ex o................................ 10
Obje i os y alcance del abajo . . . . . . . . . . . . . . . . . . 12
Bene icios que apo a el abajo . . . . . . . . . . . . . . . . . . 12
Selección/Desc ipción de la solución p opues a . . . . . . . . . 15
Análisis de al e na i as . . . . . . . . . . . . . . . . . . . . . . . 16
Mé odo de o denación de pun os del con o no . . . . . . . . . . . 16
Mé odos de sua izado . . . . . . . . . . . . . . . . . . . . . . . . 16
Mé odosde azado.......................... 18
In oducción
Si se obse an las endencias polí icas y económicas de los países desa ollados
en la ac ualidad, cada ez se na u alizan más é minos como e iciencia ene gé ica,
ap o echamien o de ecu sos ma e iales o desa ollo sos enible. Den o de es as
endencias de socioeconómicas, la op imización puede se , y de hecho, empieza a se
una he amien a c ucial. Debido al c ecimien o del olumen de in es igaciones, la
in e conexión en e amas cien í icas di e en es y la eno me e olución de la capacidad
de cálculo de las compu ado as; la op imización comienza a se u ilizada en una
g an a iedad de á eas de conocimien os, ya que es posible esol e p oblemas de un
g an olumen de da os y unas es icciones p eimpues as cumpliendo siemp e con
las ideas de e iciencia y ap o echamien o de ecu sos.
3
10 Memo ia
Figu a 1.6: Ejemplos de di e en es ipologías de es uc u as «In ill» [33].
En el a ículo de Wu e al. [23], se p opone una modi icación del algo i mo
con encional de op imización opológica, cuyo obje i o es calcula el p oblema de
mane a «local», haciendo que la dis ibución de masa adquie a una o ma po osa. Los
de alles de es a modi icación se expond án más adelan e, pe o el esul ado ob enido
po es e mé odo puede e se, po ejemplo en la Figu a 1.7.
Figu a 1.7: Ejemplo de iga In ill empo ada - lib e.
Se obse a como la solución p esen a pa ones de pequeño amaño, que son
más adecuados pa a aplica lo al elleno de una pieza sin cambia po comple o su
dis ibución de ma e ial. Es o, además, iene como en aja que la pieza sigue siendo
acep able si el es ado de las solici aciones mecánicas cambia, como po ejemplo, un
cambio de di ección o de pun o de aplicación.
Con ex o
Si se comp ueban los esul ados que gene an los algo i mos de op imización
opológica ( e Figu a 2.1(b)), se puede obse a que es os o man un ec o o ma iz
de alo es comp endidos en e 0y1. Las imágenes en escala de colo que se mues an,
10

Memo ia 11
no son mas que una o ma isual de simboliza lo que es os esul ados ep esen an,
asociando a cada elemen o un colo de una escala (
→
0;
→
1), dependiendo del
alo asociado a cada elemen o ini o.
Figu a 1.8: Ejemplo de esul ado de op imización.
El p oblema que ocupa a es e p oyec o pa e de la necesidad de ma e ializa
es os esul ados a a és de un p oceso de ab icación. Es o implica que a pa i
de ese « ec o » de esul ados, debe ex ae se un a chi o que pueda se usado pa a
ab ica la pieza. El p oceso a p io i pod ía esul a sencillo, sob e odo si se piensa en
ejemplos como el de la Figu a 2.1(b). Pod ía usa se la imagen a colo del esul ado,
y con un so wa e CAD cualquie a, dibuja las líneas de los con o nos has a c ea
la pieza; pe o es o iene algunos incon enien es. En p ime luga , y es a es la causa
p incipal po la que se p opuso hace es e p oyec o, son los esul ados ipo In ill
como el de la Figu a 1.7, a chi o cuen a con más de 3000 aguje os que si u ie an
que se dibujados po el usua io del so wa e CAD “a mano alzada”, pod ía oma
un iempo inasumible.
Po o o lado hay que p egun a se, ¿cómo de sis emá ico puede llega a se el
usua io a la ho a de “dibuja ” manualmen e es os esul ados? ¿Qué debe se in e p e-
ado como pa e de un aguje o y qué no? ¿Cómo se puede asegu a manualmen e
que dos líneas di e en es sigan el mismo c i e io pa a aza se? Todas es as p egun as
pod ían pa ece a p io i áciles de esponde , pe o como se comp oba á a lo la go del
p oyec o, esponde las puede se complicado. Además, dependiendo de la can idad
de elemen os del p oblema de op imización y de cómo se esponda a cada una de las
cues iones, el esul ado as la in e p e ación de esul ados pod ía se muy di e en e.
Po úl imo, aunque en es e p oyec o los algo i mos de op imización se u ilizan
a ni el in es igación (no se pa e de un algo i mo p ep og amado po una ma ca
come cial). Si se cen a la a ención en un usua io que los usa como diseñado , ene
que dibuja manualmen e los esul ados pod ía se bas an e incómodo, sob e odo si
11
12 Memo ia
se iene que ei e a en un diseño pa a mejo a lo. Su labo en es e caso se ía mucho
más p oduc i a, si se educe su abajo a hace pequeños e oques sob e la pieza. De
ahí la necesidad de dispone de un mé odo eloz, que a pa i de los esul ados de
op imización, cons uya un modelo CAD que el usua io pueda modi ica ácilmen e
si ue a necesa io.
Obje i os y alcance del abajo
Pa a de ini los obje i os de es e p oyec o, es necesa io en p ime luga , obse a
cuales son las limi aciones del mismo. Gene almen e se ha abajado con algunos de
los algo i mos de op imización que se usan en in es igación, los cuales ienen unas
limi aciones impo an es:
1.
T abajan con elemen os ini os bidimensionales, así que la in e p e ación es a á
es ingida a p oblemas planos.
2.
Los elemen os ini os que disc e izan el dominio, son odos del mismo amaño
y de o ma cuad ada. Es o pe mi e in e p e a el ec o de a iables de diseño
como una ma iz de alo es, donde la posición del elemen o ini o asociado,
end á de e minada po la posición del alo en la ma iz.
A endiendo a lo plan eado, se p opond á un mé odo pa a abo da la in e p e ación
de los esul ados, basado en algo i mos de p ocesamien o de imágenes, que ob enga
un conjun o de lis as con las posiciones de los pun os del dominio si uados en los
bo des ma e iales de la pieza. El mé odo debe ob ene una ep esen ación lo más
iel posible a la isualización de la ma iz de pa ida y hace lo de mane a ápida.
Además, es as coo denadas se expo a án a un so wa e CAD pa a au oma iza el
p oceso de gene ación de geome ías, con la idea de pode usa ab icación adi i a
pa a ob ene una pieza ísica.
Bene icios que apo a el abajo
Pa a abo da es a cues ión, es necesa io obse a p ime o, bajo qué con ex o se
desa olla la op imización opológica. Pues debido a la “no edad” de es a me odología
de diseño, pod ía se di ícil ene una isión amplia de los bene icios po enciales que
iene, y po supues o, se ía más di ícil en ende el con ex o en el que se desa olla el
abajo y los bene icios que apo a.
12
Memo ia 13
En p ime luga , la c ecien e aplicación de la op imización de opología en los
di e en es so wa e CAD/CAM, pod ía conside a se coinciden e o adhe ido a un
cambio adical en el modo de p oducción, en lo que se conoce como «cua a e olución
indus ial» o «indus ia 4.0». Au o es como Daaboul e al. [19], Jiang e al. [22] o
Bianchi [25], desc iben cómo, bajo es a nue a “ e olución”, el modo de p oducción
es á cambiando de un sis ema llamado “de p oducción lexible”, a un modelo de
“pe sonalización en masa”. Es o indica que la endencia de las indus ias desa olladas
es de man ene una p oducción a g an escala, como enía haciéndose adicionalmen e,
pe o a su ez, que es a sea pe sonalizada a los gus os y p e e encias del consumido .
Es en es a línea donde la op imización opológica pod ía encon a su luga en la
indus ia, ya que puede educi d ás icamen e los plazos de desa ollo del p oduc o,
lo que se aduce en una educción de los cos es. El p oceso au oma izado suele da
luga a piezas de mejo endimien o en mucho menos iempo del que se necesi a ía con
los mé odos de diseño adicionales. La op imización opológica pod ía en ende se, no
como un sus i u o del diseñado , si no como una ex ensión de su capacidad c ea i a,
que le ayuda a elabo a diseños muy complejos de mane a muy ápida y e icien e.
Po o a pa e, en sep iemb e de 2015 la Asamblea Gene al de las Naciones Unidas,
es ablece un comp omiso hacia la sos enibilidad económica, social y ambien al de
los 193 Es ados miemb os, conocida como «Agenda 2030». La Agenda plan ea 17
Obje i os con 169 me as que aba can las es e as económica, social y ambien al ( e
Figu a 1.9).
De en e los 17 obje i os, pa a la inalidad de es e apa ado se pueden des aca dos
de ellos, el 9: Indus ia, inno ación e in aes uc u a y el 12: P oducción y consumo
esponsables; de los cuales, es as me as pod ían se las más ele an es en lo que
concie ne a la OT:
9.4
De aquí a 2030, mode niza la in aes uc u a y econ e i las indus ias pa a
que sean sos enibles, u ilizando los ecu sos con mayo e icacia y p omo iendo
la adopción de ecnologías y p ocesos indus iales limpios y ambien al-
men e acionales, y log ando que odos los países omen medidas de acue do
con sus capacidades espec i as
12.2
De aquí a 2030, log a la ges ión sos enible y el uso e icien e de los ecu sos
na u ales
12.5
De aquí a 2030, educi conside ablemen e la gene ación de desechos
median e ac i idades de p e ención, educción, eciclado y eu ilización
Median e op imización opológica se puede de e mina la mejo dis ibución de
ma e ial posible, pa a una pieza bajo un es ado de ca ga conc e o. Es o encaja muy
bien con algunos de los obje i os plan eados po la Agenda 2030, ya que “de e mina
13
14 Memo ia
h ps://www.un.o g/sus ainablede elopmen /es/
Figu a 1.9: Obje i os de desa ollo sos enible.
la mejo dis ibución de ma e ial” es equi alen e a “hace un ap o echamien o más
e icien e del mismo”, con sus co espondien es bene icios en ma e ia económica y de
sos enibilidad. En neg i a se esal an las ideas que mejo pod ían combina con la
adopción de la op imización opológica como me odología de diseño. Además, la
op imización opológica en cie o modo, iene muy buena sine gia con la ab icación
adi i a, pe mi iendo así ab ica piezas con unos desechos muy mode ados o incluso
nulos. Es a elación simbió ica se debe a que po un lado, la AM es muy lexible
en cuan o a la complejidad geomé ica que admi e, mien as que la OT, median e
es icciones, puede gene a piezas que se adap en a las limi aciones de ab icación que
la AM pudie a ene ; eliminando po comple o el uso de sopo es y en consecuencia,
la gene ación de desechos. A es o se le debe añadi que la op imización opológica
en esencia es á llamada a con e i se en una he amien a complemen a ia a la
c ea i idad del diseñado , haciendo que es e no equie a epe i de mane a ei e a i a
p uebas de diseño pa a e i ica que se cumplan los equisi os es uc u ales, y además,
es ando peso a la necesidad de posee un conocimien o in ui i o, esul ado de una
amplia expe iencia p ác ica. Es o no solo implica una mejo a de la p oduc i idad del
diseñado , si no que acili a la posibilidad de c ea diseños mucho más complejos e
inno ado es con un mayo alo añadido (ODS 8).
Po úl imo, una ez p esen ados de mane a esumida, la impo ancia que pod ía
14
Memo ia 15
ene la op imización opológica en gene al, cabe p egun a se qué apo a el p esen e
abajo. Como bien se ha explicado a la ho a de con ex ualiza es e p oyec o, una
di icul ad que pod ía conside a se en cie o modo un de ec o de es a me odología de
diseño, es que los esul ados de op imización opológica no se exp esan de un modo
“comp ensible” po un so wa e CAD, y en consecuencia, deben se “ aducidos” a un
o ma o “comp ensible”. Po an o, la in ención aquí es au oma iza la gene ación
de a chi os CAD a pa i de la solución del p oceso de op imización, cosa que
no es ni mucho menos inmedia a. El algo i mo p opues o pa a hace es o, educe
conside ablemen e el iempo de in e p e ación de esul ados y acili a el p oceso
de diseño y/o ab icación. Po o o lado, limi a la in e acción del diseñado con
el esul ado de op imización a la ho a de ealiza la in e p e ación, haciendo que
los a chi os CAD gene ados sean una exégesis comple amen e sis emá ica de los
esul ados. Además, el modelo CAD puede usa se en el so wa e co espondien e,
pa a modi ica lo o inco po a lo jun o a o os diseños, cosa que no se ía posible de
o o modo.
Selección/Desc ipción de la solución p opues a
El algo i mo p opues o como solución de es e abajo, es á basado en el p ocesa-
mien o de imágenes en mapa de bi s. Es e se di ide en las e apas mos adas en la
Figu a 1.10. Se comienza con el esul ado de la op imización opológica, el cual es
un ec o que con iene las a iables de diseño con alo es con enidos en e 0y1.
P ime o, se aplica un il ado pa a con e i esos alo es a é minos bina ios
2
,
pa a ello simplemen e los elemen os cuyo alo sea mayo a 0
,
5se cambia a alo 1.
A con inuación, se aplica un segundo il o que ayuda a dis ingui cada aguje o, pa a
ello, los alo es asociados a los elemen os de un aguje o, se cambian po un alo
n= 10,20,30,40, ....
Ubicado cada aguje o, se ex aen los pun os lími e de cada uno de ellos, y se
gua dan po sepa ado. Como es os pun os p esen an muchas i egula idades, se aplica
un p omediado pa a sua iza las líneas y edondea las esquinas.
T as es o, los con o nos p esen an un núme o de da os innecesa io, que solo
hace complica la pos e io ep esen ación en o ma o CAD. Po es o, se aplica
un algo i mo de simpli icación, que ayude a ep esen a únicamen e la in o mación
necesa ia.
Po úl imo, es os pun os ex aídos, se expo an a F eeCAD pa a ep esen a la
2
Bina io en es e con ex o quie e deci que un alo que es con inuo [0
,
1], se a a cambia po un
alo disc e o que puede se {0,1}
15

16 Memo ia
pieza inal.
Análisis de al e na i as
En el desa ollo de es e p oyec o se han conside ado di e sos mé odos al e na i os
pa a a on a el p oblema que lo ocupa. Muchos de es os mé odos se han lle ado a la
p ác ica, solo con el obje i o de compa a los con la solución adop ada.
Mé odo de o denación de pun os del con o no
Pa a gene a el azado de los con o nos, se ha usado un algo i mo que se “au oguía”
sob e los lími es en e los dominios sólidos y acíos; colocando los pun os de mane a
o denada con o me a anza. Pe o es a no ue la p ime a idea conside ada pa a hace
es o.
La p ime a idea pa a gene a los con o nos, ue gua da de mane a deso denada
las coo denadas de los elemen os lími e. Es o se puede hace de mane a bas an e
sencilla con un il o, que sume a cada elemen o, el alo de los elemen os que le
odean. Los elemen os de egiones sólidas end án un alo de 9 as el il ado,
po que odos los elemen os que le odean ienen alo 1; mien as que las egiones
acías end án alo 0. Aquellos elemen os con alo 0
< <
9, o ma ían pa e del
con o no.
Ob enidas esas coo denadas, se calcula el cen o de masas de ese conjun o de
pun os, que se u iliza pa a hace un cambio a coo denadas pola es de cada uno de
ellos. O denando los ángulos de meno a mayo , se ob end ía un conjun o más o
menos o denado de da os.
Es e conjun o de da os no es un azo en si, mas bien, es una nube de los pun os
que odean el con o no. Pa a con e i es a ”nube de pun os” a un azado único,
se usó una ap oximación po mínimos cuad ados, pa a adap a una sucesión de
polinomios cúbicos a ese conjun o de coo denadas.
Aunque es a al e na i a ue p og amada de di e en es mane as, esul a muy poco
obus a como pa a adop a la como mé odo inal. Es o es debido a que usa las
coo denadas pola es pa a o dena los pun os del con o no, puede causa e o es en
aguje os muy ala gados. Además de que en gene al, los esul ados e an bas an e
ines ables.
16
Memo ia 17
Resul ado de op imización
Fil ado
Dis inción
Ex acción
Sua izado
Simpli icación
Pieza CAD
Figu a 1.10: E apas del algo i mo pa a expo a esul ados a CAD.
17
Mé odos de sua izado
El mé odo de sua izado elegido es á basado en una media mó il. Pe o ambién
se conside ó u iliza cu as de spline cúbicas pa a gene a los con o nos.
Es as se desca a on po a ios mo i os:
F en e a un algo i mo basado en p omedia la línea, gene a un mé odo obus o
que ap oxime el con o no median e cu as de spline, pod ía se una a ea muy
compleja. Insis i en el uso de es e mé odo no se ía en able si se iene o o,
que esul a igualmen e e ec i o, y con una p og amación mucho más sencilla.
Expo a las cu as de spline a F eeCAD pod ía hace se de dos mane as
di e en es:
1.
Expo ando di ec amen e los pun os de la cu a, siendo equi alen e a lo
conseguido median e el p omediado de la línea.
2.
Expo ando los nudos del spline. Es a opción puede se in e esan e, pe o
se end ía que e isa en p o undidad la documen ación de F eeCAD pa a
hace es o adecuadamen e, ya que dependiendo del so wa e, la mane a
de de ini es os nudos po pa e del usua io puede a ia .
Mé odos de azado
Los mé odo de azado de con o nos, se explican en p o undidad en el Capí ulo 3.
Ahí se expone que es os u ilizan un ope ado que e alúa los elemen os ci cundan es.
En base a los alo es de los elemen os sob e los que se si úa el ope ado , se oman
unas decisiones de a ance u o as.
En el p oyec o se ha c eado un ope ado p opio pa a hace es o, pe o ambién se
ha p og amado el mismo algo i mo usando el clásico ope ado del mé odo de Theo
Pa lidis. Aunque ambos mé odos esul an igual de ápidos, median e el ope ado
usado en es e p oyec o, esul a más sencillo da un a amien o adecuado a con o nos
pequeños.
Capí ulo 1
Análisis del es ado del a e
Con enido
1.1 Fo mulación del p oblema de op imización . . . . . . . . 19
1.1.1 Mé odo SIMP (Ma e ial Sólido Isó opo con Penalización) 23
1.1.2 Implemen ación del algo i mo de op imización opológica 24
1.1.3 Op imización opológica de geome ías in ill . . . . . . . . 31
1.2 Posp ocesado de esul ados . . . . . . . . . . . . . . . . . 32
1.1. Fo mulación del p oblema de op imización
Como ya se ha mencionado, la op imización opológica a a de encon a la
mejo dis ibución de ma e ial en un dominio Ω, pa a unas condiciones de con o no
de e minadas ( e Figu a 1.1). Pa a ello, se disc e iza el dominio Ωmedian e elemen os
ini os y a cada elemen o, se le asigna una a iable de diseño
ρi
que oma alo es
bina ios (0o1). Con es o se p e ende desc ibi las egiones del dominio que son
sólidas Ωmy las egiones acías Ω .
Pa a de e mina las zonas con y sin ma e ial, se de ine la unción ρ(x):
ρ(x) = 1 ∀x∈Ωm,
ρ(x) = 0 ∀x∈Ω .(1.1)
Conside ando que el ma e ial es iso ópico, lineal y que el sólido se e solici ado
bajo un único es ado de ca gas; el p oblema de op imización se o mula en base a
19
26 1.1. Fo mulación del p oblema de op imización
Según Choi y Kim [32], el análisis de sensibilidad puede clasi ica se según es
en oques di e en es: En oque de ap oximación, disc e o y con inuo.
En el en oque de ap oximación, las sensibilidades se ob ienen median e el
mé odo de las di e encias ini as cen ales o p og esi as.
El en oque disc e o oma como a iables de diseño los é minos de la ma iz
que gobie ne el p oblema (si es un p oblema elás ico, oma á los alo es de la
ma iz de igidez).
•
Si los é minos de las ma ices se de i an de mane a explíci a con espec o
a las a iables de diseño, se clasi ica como mé odo analí ico.
•
Si lo an e io se ealizan usando el mé odo de las di e encias ini as, se le
ca ego iza como mé odo semianalí ico.
El en oque con inuo es aquel en el que la sensibilidad se esuel e en a iable
con inua.
•
Si el dominio es con inuo y las ecuaciones de sensibilidad se modelizan
como p oblema con inuo, se le denomina en oque con inuo - con inuo.
•
Si la di e enciación se esuel e en el dominio con inuo, pe o se disc e iza,
se le clasi ica como en oque con inuo-disc e o
En los algo i mos de op imización opológica u ilizados pa a ealiza el p esen e
abajo, se u iliza un en oque disc e o analí ico. El p oblema se disc e iza p ime o
median e elemen os ini os y en base a dicha disc e ización se es udia la sensibilidad
con espec o a las a iables de diseño.
Fil ado
Median e es e p oceso se esuel en dos p oblemá icas de los algo i mos de op-
imización opológica: El llamado The checke boa d p oblem y la dependencia del
mallado.
Los p ime os algo i mos de op imización opológica como po ejemplo Sigmund
[13], u ilizaban un en oque basado en el p ocesamien o de imágenes. Es e en oque
a a de u iliza la con olución pa a il a las a iables de diseño:
˜ρ(x) = (F∗ρ)(x) = ZBR
F(x−y)ρ(y)dy,(1.7)
26

Capí ulo 1. Análisis del es ado del a e 27
donde
BR
es una es e a en 3
D
o un cí culo en 2
D
, con cen o en
x
y adio
R
. Es a
ope ación se hace de mane a disc e a a a és de un ope ado ma icial llamado
ke nel:
k=1
n2




1 1 · · · 1
1 1 · · · 1
.
.
..
.
.....
.
.
1 1 · · · 1




.(1.8)
De iniendo la ma iz
P∈ Mn×n
(
BR
), donde cada posición de
P
, con iene el alo
de la a iable a il a co espondien e a un elemen o incluido en BR:
˜ρ(x) =
n
X
i=1
n
X
j=1
Pij ·kij.(1.9)
Es a ope ación se en iende de mane a más cla a jun o a la Figu a 1.6, donde se
obse a que dependiendo del adio R, se escogen un conjun o de elemen os BR.
R
R′
x
BR
BR′
Figu a 1.6: Funcionamien o de la ope ación de con olución aplicado en op imización
opológica.
La ma iz (1.8) puede de ini se de muchas mane a di e en es dependiendo del ipo
de ope ación
1
. La opción mos ada es la que usualmen e se emplea pa a los algo i mos
de op imización opológica, conocido como il o lineal, aunque en ocasiones se
empleen il os gausianos.
Sob e la base de lo explicado an e io men e, se asien an las di e en es ope aciones
de il ado usadas en op imización opológica. De en e es as se pueden des aca dos
1
En Kinse [27] se de allan los di e en es ope ado es y aplicaciones pa a p ocesamien o de
imágenes.
27
28 1.1. Fo mulación del p oblema de op imización
po su amplio uso; il os de densidad, p opues os po B uns y To o elli [12] y il os
de sensibilidad, p opues os po Sigmund [9].
Los il os de densidad abajan di ec amen e modi icando la densidad del
elemen o, de iniendo la a iable de diseño il ada, que sus i uye a la a iable o iginal
en el p oceso de op imización. Es a densidad il ada se de ine como;
˜ρe=Pi∈Neω(xi)νiρi
Pi∈Neω(xi)νi
,(1.10)
donde:
Ne={i| ||xi−xe|| ≤ R},
ω(xi) = R − ||xi−xe|| ( il o lineal),
ω(xi) = e−1
2∥xi−xe∥
R/32
( il o gausiano),
edesigna el elemen o sob e el que se aplica el il o,
νies el olumen del elemen o.
Cuando es e il o se aplica, a las densidades o iginales
ρi
se les llama a iables
de diseño, y a la densidad il ada ˜ρi, densidades ísicas, esal ando el hecho de que
ρi
deja de ene sen ido ísico. En consecuencia, cuando se p esen e el esul ado del
p oceso de op imización, la solución se á
˜ρi
, las densidades ísicas. Po o o lado, es a
ede inición de las densidades del elemen o, complica le emen e el p oceso de análisis
de sensibilidad, debido a que las de i adas ya no solo dependen de las a iables de
diseño, si no ambién del p oceso de il ado. En onces, eniendo en cuen a (1.10), el
p oceso de de i ación se esc ibi á de la siguien e mane a, de acue do a la egla de la
cadena: ∂ψ
∂ρj
=X
e∈Nj
∂ψ
∂˜ρe
∂˜ρe
∂ρj
=X
e∈Nj
ω(xi)νi
Pi∈Neω(xj)νj
∂ψ
∂˜ρe
,(1.11)
donde ψ ep esen a: la unción obje i o co el olumen de ma e ial V.
Los Fil os de sensibilidad abajan de mane a algo di e en e, pues en ez de
de ini una nue a a iable de diseño, op a po modi ica la sensibilidad di ec amen e:
d
∂c
∂ρe
=1
m´ax(γ, ρe)Pi∈Neω(xi)νiX
i∈Ne
ω(xi)νiρi
∂c
∂ρi
,(1.12)
donde el é mino
γ
no malmen e iene alo 10
−3
y se u iliza pa a de ini un alo
mínimo que impida la di isión po ce o.
28
Capí ulo 1. Análisis del es ado del a e 29
Fil os PDE
Además del en oque basado en con olución, exis e una al e na i a p opues a
po Laza o y Sigmund [20], que cambia po comple o la concepción del p oceso de
il ado y iene a sol en a algunos de ec os del il o de con olución. Es os de ec os
son la dis inción de dominios y la p oblema ica con dominios no con exos. Pa a
ejempli ica es o debe mi a se la Figu a 1.7, donde se obse ca como al aplica el il o
de con olución, es e a ibui ía al elemen o, el alo de los elemen os del conjun o de
elemen os
Da
y
Db
, pe o es e úl imo conjun o no cumple ealmen e las condiciones
conec i as con el elemen o al que se le aplica al il o, y no debe ían ene se en cuen a.
R
Da
Db
Figu a 1.7: Ejemplo de il o aplicado a dominio no con exo.
Debido a lo an e io y ambién debido al al o cos e compu acional que iene
inicialmen e el mé odo a medida que c ece el adio, se plan ea una al e na i a basada
en un concep o di e en e, los il os PDE. Se pa e de que el alo de la a iable
il ada, es solución de una ecuación di e encial de Helmhol z:
− 2∇2˜ρ(x) + ˜ρ(x) = ρ(x),(1.13)
con condiciones de on e a de Neumann homogéneas,
∂˜ρ(x)
∂n,(1.14)
siendo nun ec o uni a io no mal al dominio. Es e en oque acep a una esolución
median e el mé odo de los elemen os ini os, haciendo:
˜ρ(x) = Ne(x)˜ρe,(1.15)
29
30 1.1. Fo mulación del p oblema de op imización
donde
Ne
(
x
)es el ec o de unciones de in e polación y
˜ρe
, el ec o de densidades
il adas en los nudos del elemen o. Aplicando el mé odo de los esiduos ponde ados
sob e (1.13):
K ˜ρ=p ,(1.16)
donde
K
=
Pi∈NeK ,i
,
p
=
Pi∈Nep ,i
y
P
deno a la ope ación de expansión y
ensamblaje. Las ma ices y ec o es de cada elemen o ienen dados po :
K ,i =ZΩi∇NT
eKd∇Ne+NT
eNedΩ,(1.17)
p ,i =ZΩi
NT
eρ dΩ = ρeZΩi
NT
edΩ.(1.18)
Es e sis ema de ecuaciones iene unas ca ac e ís icas impo an es. La ma iz
K
es siemp e simé ica y de inida posi i a, admi iendo ac o ización de Cholesky y
siendo el mé odo del g adien e conjugado, el algo i mo i e a i o más e ec i o pa a
esol e el sis ema de ecuaciones. Po lo an o, el mé odo del g adien e conjugado
pod á usa se pa a p oblemas con un g an núme o de g ados de libe ad, mien as
que la ac o ización de la ma iz, puede se más con enien e en p oblemas con meno
núme o de g ados de libe ad, pues solamen e debe ac o iza se una ez (
K
no
depende de la dis ibución de ma e ial).
Es a écnica de il ado, al y como se discu e en [20], p esen a algunas en ajas
espec o a los il os basados en con olución. En p ime luga , esuel en algunos
p oblemas de es os úl imos, como la dis inción en e dominios di e en es, la dis ancia
en e elemen os en dominios con exos y el al o cos e pa a implemen a compu ación
pa alela en el p oceso de il ado. Po o a pa e, pe mi e una implemen ación muy
sencilla en los códigos de op imización, debido a que puede emplea se el código de
esolución del p oblema de elemen os ini os. Po úl imo, se puede emplea un il o
aniso ópico de mane a sencilla, añadiendo solamen e algunos pa áme os ex a de
con ol, sin inc emen a de mane a signi ica i a el cos e compu acional.
Ac ualización de las a iables de diseño
T as esol e las sensibilidades y il a las a iables de diseño, se equie e un
p oceso ma emá ico o compu acional capaz de da nue os alo es a las a iables de
diseño. Exis en di e en es algo i mos pa a esol e es o, pudiendo se ca ego izados
en mé odos di ec os ymé odos indi ec os, o p ocedimien os basados en c i e ios
de op imalidad yalgo i mos de p og amación ma emá ica., pe o de en e odos
los algo i mos, hay es que suelen se los más comunes: c i e ios de op imalidad
(OCM)Bendsøe [6], me hod o mo ing asympo es (MMA) S anbe g [2] y mé odos
30
Capí ulo 1. Análisis del es ado del a e 31
secuenciales de p og amación lineal Dunning y Kim [21]. Los dos p ime os se án los
que se u iliza án en el p esen e abajo.
Los c i e ios de op imalidad pa en de con e i el p oblema de op imización
es ingida de la Ecuación (1.4), en uno no es ingido, de iniendo la siguien e unción
de Lag ange:
L(ρ, λ) = c(ρ) + λ(V(ρ)−αVo),(1.19)
aplicando las condiciones de p ime o den de Ka ush - Kuhn - Tucke ,









∂L
∂ρ=∂c(ρ)
∂ρ+λ∂V (ρ)
∂ρ= 0,
∂L
∂λ =V(ρ)−αVo= 0.
(1.20)
El OCM se compone de dos ni eles ei e a i os. En el ni el in e no, las a iables
de diseño se ac ualizan buscando cumpli la p ime a es icción de (1.20), pa a un
λ
conc e o. En el ni el ex e no, se ac ualiza el mul iplicado de Lag ange λcon el in
de cumpli la es icción de olumen. Pa a ello se u iliza el algo i mo de la bisección,
donde en cada i e ación se ejecu a el ni el in e no con un nue o alo de
λ
. Pa a
es o se de ine un « ac o de escala» Deen cada elemen o:
De=−
∂c(ρ)
∂ρe
λ∂V (ρ)
∂ρe
,(1.21)
cuando
De
= 1, se sa is ace la p ime a es icción de (1.20). La idea es que median e
es e ac o de escala, se es ablezcan los alo es de cada a iable de diseño median e
el siguien e esquema condicional:



m´ax(0, ρe−m)Si ρeDη
e≤m´ax(0, ρe−m)
m´ın(1, ρe+m)Si ρeDη
e≤m´ın(1, ρe+m)
ρeDη
eEn caso con a io
,(1.22)
donde
m
es un ac o que limi a el mo imien o de las a iables de diseño, y
η
(= 1
/
2)
es un ac o de amo iguamien o.
1.1.3. Op imización opológica de geome ías in ill
La gene ación de geome ías in ill pod ía conside a se un caso pa icula de op i-
mización opológica, donde se oman algunas pequeñas modi icaciones al algo i mo
31

32 1.2. Posp ocesado de esul ados
gene al. El pun o cla e del que se pa e pa a es e nue o algo i mo es la modi icación
de la es icción olumé ica. Mien as que en la OT adicional, se es inge la
dis ibución de ma e ial a ni el global, pa a gene a geome ías in ill debe es ingi se
de mane a local. Los p incipios básicos de es e mé odo ue on p opues os po Wu
e al. [26], pe o pos e io men e se han hecho modi icaciones, con di e en es obje i os,
como las es uc u as Shell In ill, Wu e al. [24].
El algo i mo en gene al, es muy simila al clásico algo i mo SIMP, únicamen e
cambiando la es icción olumé ica. Pa a ello, siendo
ρ
la densidad de un elemen o y
¯ρ
la densidad p omedio pa a un adio de in luencia
R
, se busca que en odo momen o,
ese olumen p omedio sea in e io a un alo p ees ablecido α, es deci :
m´ax
∀e( ¯ρe)≤α. (1.23)
Po supues o, es a ecuación no puede aplica se al cual. Como se busca emplea un
mé odo basado en g adien e, se debe busca una exp esión di e enciable. Pa a ello se
ecu e a la no ma
p
, la cual cuando
p→ ∞
, la unción sea equi alen e a la o iginal:
1
nX
e
¯ρep!1
p
≤α, (1.24)
donde nes el núme o de elemen os, y pno malmen e se oma (= 16).
1.2. Posp ocesado de esul ados
El posp oceso es una e apa que pod ía conside a se apa e del p oceso de op imi-
zación. El obje i o es una ez ob enido los esul ados de op imización, aduci los a
unos pa áme os in e p e ables po el so wa e de diseño o la máquina de ab icación.
Es a a ea iene cie a complejidad, po es o exis en di e sos en oques de esolución.
Es os en oques pueden di idi se en 3 ca ego ías ( e Figu a 1.8):
Iso-densi y con ou s me hods,
Mé odos de econs ucción,
Mé odos de p ocesamien o de imágenes
Los Iso-densi y con ou s me hods, se basan en pasa las densidades de cada
elemen o a una dis ibución de densidades en los nudos. A pa i de aquí, se busca
gene a cu as de ni el de dicha solución, a a és de cu as de Bézie . Es a e-
p esen ación con cu as de Bézie pe mi e aplica una op imización de o ma a la
32
Capí ulo 1. Análisis del es ado del a e 33
Figu a 1.8: En oques adop ados pa a el posp ocesado.
es uc u a pa a ob ene una mayo de inición de la misma. Una p ime a p opues a
de es e mé odo ue la desa ollada po Mau e y Ramm [8].
Po su pa e, los mé odos de econs ucción, il an las a iables de diseño con el
obje i o de ob ene una ep esen ación bina ia de la misma. Usando es a úl ima, se
ex aen los lími es de los con o nos. A pa i de es os pun os ex aídos, se u iliza una
ap oximación de mínimos cuad ados sob e los nudos de un B-Spline. Es a al e na i a
se explica en mayo de alle en Tang y Chang [14]. Además, en Xia e al. [28], se
p opone una a ian e que busca median e p ocesamien o de las a iables de diseño,
ex ae una imagen esquelé ica de la es uc u a, en base a la cual iden i ica los
elemen os e inicia una op imización de o ma, pa a da el amaño necesa io a dichos
elemen os.
Los mé odos basados en p ocesamien o de imágenes, u ilizan las écnicas adicio-
nales de ec o ización de imágenes en mapa de bi s, pa a in e p e a los esul ados de
op imización opológica. Una de las p ime as e e encias de es a al e na i a pod ía
encon a se en Papalamb os y Chi ehdas [5], que desa olló un mé odo de es
e apas:
1. Con e i a iables de diseño a imagen bina ia,
2. Ex ae con o nos,
3. Sua iza con o nos usando B-splines y segmen os lineales.
33
Pa e II
Me odología
35
42 2.5. Ejemplos
2.5. Ejemplos
En la Figu a 2.5 se mues an algunos ejemplos en los que se ha aplicado el
algo i mo explicado p e iamen e. Si se obse a en p ime luga la leyenda de colo
(Figu a 2.5(e)), y a con inuación cualquie a de los ejemplos; los colo es gua dan
sime ía espec o al eje neu o de la pieza, siemp e que es a enga un eje de sime ía
ho izon al. El mo i o de es o es que pa a que se gua den los pun os de pa ida de
mane a que la pieza in e p e ada sea simé ica, en ez de hace búsquedas en o den
ascenden e en el eje de o denadas, se hacen de mane a al e na i a desde los ex emos
has a el eje de sime ía.
42

Capí ulo 2. Dis inción 43
(a)
(b)
(c)
(d)
1 10 10n
(e)
Figu a 2.5: Ejemplos de casos complejos en los que se ha aplicado el p oceso dis inción.
43
44 2.5. Ejemplos
44
Capí ulo 3
Ex acción de con o nos
Con enido
3.1 In oducción .......................... 45
3.2 Algo i mo de Theo Pa lidis . . . . . . . . . . . . . . . . . 46
3.3 Algo i mo de iden i icación de con o nos . . . . . . . . . 47
3.3.1 Gene alización de di ecciones . . . . . . . . . . . . . . . . 48
3.3.2 De e minación de i e aciones . . . . . . . . . . . . . . . . 50
3.3.3 Elección del sen ido de gi o . . . . . . . . . . . . . . . . . 55
3.3.4 T a amien o de los aguje os ex e nos . . . . . . . . . . . . 55
3.3.5 C i e io de pa ada . . . . . . . . . . . . . . . . . . . . . . 56
3.3.6 Lími es del dominio . . . . . . . . . . . . . . . . . . . . . 57
3.4 Sob e la necesidad de dis ingui los aguje os . . . . . . . 58
3.5 Ejemplos............................. 59
3.1. In oducción
El algo i mo que se ha p esen ado en el Capí ulo 2 da como esul ado una lis a
con las posiciones de los elemen os que inician el algo i mo ecu si o que cambia el
alo de sus píxeles ecinos. Es o es el pun o de pa ida de la siguien e e apa del
p oceso: La de ección de los con o nos. Es e a a de aplica una se ie de axiomas,
que gene e un conjun o de lis as de coo denadas. Cada una de las lis as se compond á
de la posición de los pun os on e a de cada aguje o o denados de mane a que,
45
46 3.2. Algo i mo de Theo Pa lidis
al ep esen a es os pun os unidos median e líneas, o men la imagen ec o ial del
aguje o de pa ida.
En es e capí ulo se p esen a á el algo i mo usado pa a la gene ación de es as
lis as de coo denadas, el cual se inspi a en el algo i mo de Pa lidis [1].
3.2. Algo i mo de Theo Pa lidis
La mayo di icul ad de aza los con o nos de una imagen en mapa de bi s,
adica en sabe qué in o mación escoge . Es o se debe a que la in e p e ación que
las pe sonas hacen de la imagen, es un conocimien o áci o, basado en obse a el
conjun o de los elemen os de la imagen. Sin emba go, al ealiza el econocimien o
de los con o nos de mane a compu acional, debe usa se un conocimien o explíci o
y limi ado, ya que el núme o de axiomas necesa ios pa a oma las decisiones de
in e p e ación, c ecen de mane a exponencial con el conjun o de da os escogido.
El algo i mo de Theo Pa lidis, u iliza un conjun o de da os muy limi ado pa a
oma decisiones. Es os da os son los alo es de los 3 elemen os que hay en e al
elemen o ac ual, en una di ección y sen ido a de e mina . Así pues, a pa i de es os 3
alo es, se oman 2 decisiones di e en es según lo mos ado en la Figu a 3.1, donde
○
indica el pixel supe io izquie do,
○
el pixel supe io de echo y

el píxel supe io
cen al. Po úl imo,

indica el píxel ac ual y la di ección en la que se escogen los 3
píxeles, dependiendo de la inclinación del símbolo: ,,y.

○ ○

(a)

○ ○

(b)
Figu a 3.1: Posibles casos del algo i mo de Pa lidis.
Es e algo i mo se puede de ini a de echas y a izquie das, según el sen ido de
gi o que quie a da se. En la Figu a 3.1, se indica la e sión a izquie das, la e sión a
de echas se ía la imagen simé ica a la misma.
Se comienza con un píxel den o del aguje o o ue a, pe o que es é si uado en
46
Capí ulo 3. Ex acción de con o nos 47
la on e a en e dos egiones. Se mi an los es elemen os supe io es, in e io es o
la e ales, dependiendo de la di ección y sen ido de búsqueda. Si se encuen a un caso
como el de Figu a 3.1(a), en la siguien e i e ación se ealiza á la ope ación en el píxel
supe io izquie do. En caso de que se encuen e el caso Figu a 3.1(b), se escoge á el
píxel supe io cen al. Si no es ninguno de los an e io es, se gi a á sob e la misma
posición has a encon a uno de es os dos casos. Po úl imo, si se gi a más de 3 eces
sob e el mismo píxel o se llega a la posición de pa ida, se conside a que el algo i mo
ha e minado y se inicia una nue a búsqueda de o o píxel de pa ida.
3.3. Algo i mo de iden i icación de con o nos
El algo i mo p opues o po Pa lidis [1], es un pun o de pa ida in e esan e pa a
abo da el p oblema, aunque es e plan eamien o se al e a á le emen e, pa a adap a se
a los eque imien os es e p oyec o.
En p ime luga , se debe de ini qué in o mación se debe a ibui a cada una
de las lis as que delimi an un con o no. Es o puede hace se de múl iples mane as,
como po ejemplo, gua dando el cen o de cada elemen o po el que se pasa en cada
i e ación (Figu a 3.2(a) y 3.2(b)), o bien, gua dando las coo denadas lími e en e
ambos dominios (Figu a 3.2(c)).
(a) (b) (c)
Figu a 3.2: Ejemplos de in e p e ación del con o no.
Pa a es e p oyec o se op a po in e p e a el con o no de la mane a que apa ece
en la Figu a 3.2(c), pe o con una pequeña modi icación. Se obse a que la sucesión
de dos coo denadas se da en ángulos
{
0
◦,
90
◦}
. Teniendo en cuen a que el mé odo de
sua izado que se comen a á más adelan e, es a á basado en p omediados, cuando se
es é gua dando in o mación de un bo de inclinado, se end á un escalonamien o que
pod ía gene a líneas muy i egula es. Es e e ec o se obse a ía sob e odo en líneas
inclinadas a 45◦.
47

48 3.3. Algo i mo de iden i icación de con o nos
Pa a mejo a un poco es e e ec o, se puede hace que el algo i mo gua de pun os
sucedidos a una inclinación de 45
◦
( e Figu a 3.3). Po supues o, es o no elimina
o almen e la i egula idad de líneas inclinadas, pe o si que es a ue za o g a edad
al escalonamien o que se p oduce en es as.
Figu a 3.3: Con o no con inclinaciones de 45◦.
Todo lo comen ado se ha á u ilizando un ope ado simila al de Pa lidis [1], que
se mues a en la Figu a 3.4, donde los píxeles escogidos pa a oma las decisiones de
azado son, el píxel en e al ac ual y los dos colindan es a es os. Es os dos úl imos
se si ua án al lado de echo (como en la Figu a 3.4), si se p e ende aza el aguje o
en sen ido an iho a io, y a la izquie da si el azado es ho a io.

○
○
Figu a 3.4: Ope ado del algo i mo de azado de con o nos.
3.3.1. Gene alización de di ecciones
El mé odo que se u iliza á, debe oma decisiones en base a la in o mación
p opo cionada po el ope ado , en una di ección y sen idos conc e os (Figu a 3.4).
Pa a simpli ica la p og amación de es os es píxeles, se ha de inido la unción
RELOJ, que se enca ga de gene aliza las 4 di ecciónes de “obse ación”.
En la Figu a 3.5 se mues a g á icamen e cómo unciona el Algo i mo 2. Se a a
de que, dado un alo
0,1,2,3
, se de uel a la posición de los píxeles que o man el
48
Capí ulo 3. Ex acción de con o nos 49
0
1
2
3




Figu a 3.5: Ejemplo g á ico de la unción RELOJ.
ope ado de esa di ección. Pa a cambia de o ien ación, solamen e se end á que
hace
eloj ±
1, y se ealiza á un gi o de
±
90
◦
ela i o a la di ección an e io (en
caso ho a io ∓90◦).
Po o a pa e, es a gene alización de las di ecciones, ambién a ec a á a la
enume ación de los pun os cla e de un elemen o, los cuales end án dados po el
c i e io de la Figu a 3.6. Es os pun os cla e son necesa ios pa a gua da las posiciones
adecuadas de los bo des en e dominios, de acue do a lo expues o en la Figu a 3.3.

0
1
2 3 4
5
67
Figu a 3.6: Pun os cla e del elemen o.
49
50 3.3. Algo i mo de iden i icación de con o nos
Algo i mo 2 Función ecu si a pa a adimensionaliza el p oblema.
1: p ocedu e RELOJ( eloj, i, j, Nelx, Nely)
2: i1= m´ax(i−1,0)
3: i2= m´ın(i+ 1, Nelx−1)
4: j1= m´ax(j−1,0)
5: j2= m´ın(j+ 1, Nely−1)
6: i eloj == 0 hen
7: ik = [i1, i1, i1]▷Lis as pa a acumula las coo denadas de los es píxeles
8: jk = [j1, j, j2]
9: else i eloj == 1 hen
10: ik = [i1, i, i2]
11: jk = [j2, j2, j2]
12: else i eloj == 2 hen
13: ik = [i2, i2, i2]
14: jk = [j2, j, j1]
15: else i eloj == 3 hen
16: ik = [i2, i, i1]
17: jk = [j1, j1, j1]
18: else
19: eloj = eloj m´od 4
20: ik, jk, eloj =RELOJ( eloj, i, j, dim)
21: end i
22: e u n ik, jk, eloj
23: end p ocedu e
3.3.2. De e minación de i e aciones
T as gene aliza las di ecciones a un p oblema unidimensional, simplemen e debe
oma se decisiones en base a los alo es de 3 elemen os. Como los alo es que es os
pueden oma son bina ios, se iene que en o al pueden encon a se 2
3
= 8 casos,
que se enume an en la Tabla 3.1. La a ea en onces se á oma decisiones en base a
qué caso se encuen e en cada i e ación.
El algo i mo se ha p og amado de mane a que odee in e namen e al dominio que
se a a aza . Es e comienza po un elemen o lími e y se di ecciona según
eloj
= 2.
Po o a pa e, aunque lo que se expond á pueda pa ece únicamen e álido pa a
un sen ido de gi o an iho a io, la sime ía del p oblema, admi e el uso del mismo
algo i mo, siemp e y cuando se de inan pa a el sen ido co ec o en lo expues o en las
Figu as 3.4, 3.5 y 3.6.
50
Capí ulo 3. Ex acción de con o nos 51
○○
0
1
2
3
4
5
6
7
Tabla 3.1: Enume ación de los casos posibles
Caso 0
Es un caso en el que odos los elemen os ienen alo ce o. Se conside a un caso
i ele an e o inalcanzable, ya que solo pod ía da se en dos si uaciones:
1.
Debido a un e o en el sen ido de gi o, el ope ado apun a hacia el in e io del
aguje o.
2.
Se ha a anzado a un píxel in e io . Es e caso debe ía se inalcanzable, ya que
la sucesión del es o de si uaciones, se esuel e de mane a que no se llegue a
un caso como es e.

Figu a 3.7: Ejemplo de caso 0.
Po lo an o, la decisión más con enien e es hace
eloj
+ 1, in en ando edi igi
el ope ado hacia el bo de, en busca de un conjun o de alo es di e en e.
Caso 1
Es a si uación es de las más ecu en es, pues median e la misma, se explici a el
a ance diagonal. Es e a ance pe mi e, además de gene a azados inclinados a 45
◦
,
51
58 3.4. Sob e la necesidad de dis ingui los aguje os
T as es o, pa a gene a cada uno de las líneas, solamen e hay que comenza una
búsqueda en los 4 ec o es de coo denadas siguiendo las condiciones:
Si se encuen a un píxel con alo 1, “se ab e” un ec o y se ag ega el pun o 4.
“Abie o” un ec o , es e debe “ce a se” bajo dos condiciones:
1.
Se encuen a un píxel de alo 0, donde se cie a el ec o con el pun o 4.
2.
Se llega a la úl ima coo denada de la pa ed, donde se cie a con el pun o
2.
3.4. Sob e la necesidad de dis ingui los aguje os
Si se analiza de enidamen e el algo i mo que se ha p esen ado, pod ía su gi
la duda de po qué es necesa io el algo i mo de dis inción de aguje os p esen ado
en el Capí ulo 2, ya que el algo i mo de azado po sí mismo es capaz de e alua
la conec i idad, dis inguiendo en e los di e en es aguje os. Es cie o que no es
absolu amen e necesa io inco po a es e paso in e medio pa a hace unciona el
conjun o del algo i mo, pe o al hace lo, su ge un p oblema: La búsqueda del píxel de
pa ida.
Pa a es o se puede pensa en ealiza búsquedas de píxeles que sean po enciales
pun os de pa ida (aquellos elemen os de alo ce o que es én en el bo de). Pa a ello
se hacen consul as elemen o a elemen o en cada ila y cuando un píxel sea álido,
se aza su con o no. Pa a no ei e a sob e un mismo con o no en el u u o, se
gua dan las posiciones po donde se “ha pasado” en una lis a. Con es o, cuando se
einicie la búsqueda de elemen os de pa ida, se comp ueba que si una nue a posición
po encialmen e álida como pun o de pa ida, se encuen a o no en e los elemen os
ya “ isi ados”, y si no es á en la lis a, se inicia en es a posición un nue o azado.
Es a pa ece a p io i, una mane a sencilla de encon a los inicios del azado,
pe o la ealidad es que su cos e ope a i o es bas an e al o. Al añadi los elemen os
isi ados a un ec o , y consul a si la posición ac ual exis e en el mismo ei e adas
eces pa a un mismo aguje o; cuando el conjun o de da os es muy g ande, la a ea
de búsqueda empieza se muy cos osa, y se equie e un en oque al e na i o. Es o se
hace especialmen e impo an e en los esul ados de In ill, donde dependiendo de la
complejidad, se puede ene una densidad de aguje os al ísima, que pa a supe icies
pequeñas pueden se de miles de ellos, haciendo imposible u iliza es e mé odo de
búsqueda de mane a e icien e.
Po es e mo i o, el algo i mo de dis inción de aguje os explicado en el Capí ulo 2
esul a mucho más e ec i o. La elección del píxel solo equie e que se cumpla la
58

Capí ulo 3. Ex acción de con o nos 59
condición de se igual a 0, ya que al encon a lo, los elemen os de ese aguje o
cambia án de alo au omá icamen e. Cuando se uel a a inicia la búsqueda, como
los elemen os del aguje o an e io ya no ienen alo 0, el algo i mo los igno a á,
llegando a o o aguje o di e en e. Es os píxeles se án au omá icamen e álidos, pues
el p ime píxel con alo 0de un aguje o, siemp e es a á en el bo de del mismo.
3.5. Ejemplos
En las Figu as 3.17 y 3.18, se mues an algunos ejemplos p ác icos esuel os po el
algo i mo. Se puede ap ecia como es e mé odo p opo ciona imágenes comple amen e
simé icas, siemp e que los da os de en ada lo sean. El único p oblema es que las
imágenes p esen an líneas muy i egula es.
En es e capí ulo se ha p esen ado la segunda e apa de la in e p e ación de las
soluciones de op imización opológica. Una ez se ha conseguido de ini los con o nos
(aunque sea de mane a i egula ), se aplica án a amien os a los mismos sua iza los
y simpli ica los. Ob eniendo una imagen más p óxima a la in e p e ación in ui i a
que se hace de la misma.
59
60 3.5. Ejemplos
(a)
(b)
(c)
Figu a 3.17: Mues a de casos eales esuel os po el algo i mo.
60
Capí ulo 3. Ex acción de con o nos 61
(a)
(b)
(c)
Figu a 3.18: Mues a de casos eales esuel os po el algo i mo.
61
62 3.5. Ejemplos
62
Capí ulo 4
T a amien o de línea
Con enido
4.1 In oducción .......................... 63
4.2 Sua izado ............................ 63
4.2.1 Ejemplos ........................... 65
4.3 Simpli icación.......................... 68
4.3.1 Ejemplos ........................... 69
4.4 Gene ación de la pieza en o ma o CAD . . . . . . . . . . 72
4.1. In oducción
En los an e io es capí ulos, se ha p opues o un mé odo pa a con e i una
imagen en o ma de ma iz de alo es bina ios a o a imagen ec o ial dada po las
coo denadas de los pun os adsc i os al lími e en e cada dominio. El p oblema de
es a imagen es que las líneas pueden p esen a ue es i egula idades, además de
ene in o mación excesi a. Po es e mo i o, es necesa io inco po a mé odos que
po un lado, sua icen las líneas y po o o las simpli iquen.
4.2. Sua izado
El mé odo de sua izado se basa en un p omediado mó il de los pun os. La idea
es que si se de ine la posición del pun o ac ual, como la media de los
n
alo es
63

64 4.2. Sua izado
an e io es y pos e io es, se pod á elimina las ines abilidades de la línea y edondea
las esquinas.
Algo i mo 3 Algo i mo pa a sua iza los con o nos
p ocedu e Sua izado(x,y,n[ ])
x1[leng h(x)]
y1[leng h(x)]
o i= 0 o leng h( )do
o j= 0 →leng h(x)do
Px←0
Py←0
m←0
o k=j−n( )→j+n( )do
m←m+ 1
i 0≤k < leng h(x) hen
Px←Px+x(k)
Py←Py+y(k)
else i k≥leng h(x) hen
Px←Px+x(k−leng h(x))
Py←Py+y(k−leng h(x))
else
Px←Px+x(k+leng h(x))
Py←Py+y(k+leng h(x))
end i
x1(j)←Px
m
y1(j)←Py
m
end o
end o
end o
e u n x1, y1
end p ocedu e
Pa a hace es o de mane a compu acional se ha usado el Algo i mo 3. Es e se
compone de dos pa áme os de ajus e:
n
: Es e pa áme o con ola el núme o de coo denadas escogidas an es y después
de la ac ual. Es deci , con ola en núme o de pun os a usa pa a hace la media
de coo denadas. No malmen e se usa un alo
∈
[2
,
8], dependiendo del ipo de
p oblema. Pa a alo es muy g andes, iende a edondea en exceso las esquinas.
64
Capí ulo 4. T a amien o de línea 65
: Es e pa áme o con ola el núme o de eces que se aplica el algo i mo de
sua izado. Al epe i a ias eces el p oceso de sua izado sob e la línea, se
ealiza un sua izado mucho menos ag esi o que elimina cie as ines abilidades,
sin edondea las esquinas.
4.2.1. Ejemplos
En las Figu as 4.1 y 4.2 se mues an ejemplos donde se ha aplicado el sua izado de
los con o nos. Se puede obse a que pa a casos con un pequeño núme o de elemen os
o aguje os pequeños, hay que ajus a con cuidado los pa áme os del algo i mo pa a
que no se al e e en exceso la geome ía de los con o nos.
Además, como el algo i mo de azado, edondea las esquinas de con o nos muy
pequeños, se pone una es icción de que si la cu a iene un núme o de pun os
<
20,
no se aplica á el sua izado.
65
66 4.2. Sua izado
(a) = 2, n ={4,5}
(b) = 1, n ={5}
(c) = 2, n ={2,2}
Figu a 4.1: Mues a de casos eales esuel os po el algo i mo.
66
Capí ulo 4. T a amien o de línea 67
(a) = 1, n ={5}
(b) = 1, n ={5}
(c) = 2, n ={2,2}
Figu a 4.2: Mues a de casos eales esuel os po el algo i mo.
67
74 4.4. Gene ación de la pieza en o ma o CAD
Con o no ex e no
Dibuja pun os
Ex usión ex e io
nCon o nos in e nos
i≤n
Dibuja con o no
i
Ex ui con i no
i
i
=
i
+ 1
Combina ex u-
siones in e nas
Res a sólidos in-
e nos a ex e nos
Pieza CAD
yes
no
Figu a 4.7: Diag ama de lujo de expo ación a F eeCAD.
74

Capí ulo 4. T a amien o de línea 75
(a)
(b)
(c)
Figu a 4.8: Mues a de casos eales esuel os po el algo i mo.
75
76 4.4. Gene ación de la pieza en o ma o CAD
(a)
(b)
(c)
Figu a 4.9: Mues a de casos eales esuel os po el algo i mo.
76
Pa e III
Conclusiones y líneas u u as
77
Capí ulo 5
Conclusiones
Con enido
5.1 Conclusiones .......................... 79
5.1.1 Piezas ab icadas . . . . . . . . . . . . . . . . . . . . . . . 81
5.2 Líneas u u as.......................... 82
5.2.1 Expo a esul ados a CAD . . . . . . . . . . . . . . . . . 82
5.2.2 Gene ación de modelos 3D . . . . . . . . . . . . . . . . . . 82
5.2.3 Gene alización de elemen os . . . . . . . . . . . . . . . . . 82
5.1. Conclusiones
En es e p oyec o se ha p opues o un mé odo pa a expo a los esul ados de
op imización opológica a a chi os CAD, con el obje i o de ab ica es os esul ados
median e ab icación adi i a.
Los Capí ulos 2 y 3 se p oponen los algo i mos undamen ales pa a ex ae los
con o nos lími es en e los di e en es dominios. Lo expues o en el Capí ulo 2 pe mi e
ob ene de mane a e icien e los pun os de pa ida pa a aza cada con o no. Mien as
que en el Capí ulo 3 se explican los axiomas necesa ios, pa a ob ene los conjun os
de coo denadas o denadas que dibujan el con o no.
T as habe conseguido los conjun os de coo denadas, se obse an que es os se
componen de un núme o da os muy g ande y que p esen a cie a i egula idad. En
el Capí ulo 4, se explica cómo se a an es os conjun os con el obje i o de que los
azos sean más egula es y simples. Pa a ello se u ilizan dos algo i mos: el p ime o
de ine la posición de cada coo denada, en unción de las
n
coo denadas an e io es
79

80 5.1. Conclusiones
y pos e io es, haciendo que las líneas adquie an un aspec o mucho más egula . El
segundo algo i mo, se a a del “Algo i mo de Rame –Douglas–Peucke ”, que se
a a de un p oceso i e a i o, que elimina la in o mación edundan e de los azados,
usando como c i e io la máxima dis ancia pe pendicula y una ole ancia
ϵ
. Los
da os ex aídos de odo es e p oceso, se lle an a F eeCAD pa a c ea un modelo
idimensional que pueda usa se pa a expo a los esul ados a una imp eso a 3D.
Todo se ha p og amado en el lenguaje de p og amación Py hon, c eando una
lib e ía, donde, dando como en ada la ma iz de esul ados de op imización opoló-
gica, se ob enga como salida un conjun o de lis as de pun os, que pos e io men e,
median e un sc ip de F eeCAD, gene a án la pieza.
Si se obse a la Figu a 4.4 y Figu a 4.5, donde se mues an los esul ados inales
de aplicación del algo i mo, pod ía obje a se que el ajus e de los azados no es
pe ec o a la pieza o iginal. No se debe ol ida que los mé odos p opues os, son
mé odos de in e p e ación de esul ados de mane a sis emá ica, no son la solución
eal. Lo ce ca o lo lejos que es é el azado de pa ece se a la solución eal, depende á
de la de inición de es a misma, o en o as palab as, de la can idad de in o mación que
se posea, ma e ializada en la densidad de elemen os ini os. Así pues, compa ando
las Figu as 4.4(a), 4.5(a) y 4.5(c), con las Figu as 4.4(b), 4.4(c) y 4.5(b), cuando
la densidad de elemen os es muy al a, la solución de op imización opológica y el
azado de los con o nos es p ác icamen e indis inguible.
Respec o a la elocidad de odos es os algo i mos, no se puede a i ma que
sea más o menos e icien e, pues no se ha encon ado un simila con el que hace
compa aciones. Lo que sí se puede a i ma , es que la elocidad de gene ación de
los azados es sa is ac o ia, consiguiendo esc ibi los a chi os de las soluciones más
complejas (como la Figu a 4.5(a)), en al menos 10 segundos, dependiendo de la
po encia de la compu ado a. Además, debe eco da se que se ha usado un lenguaje
de p og amación in e p e ado. Una aducción a un lenguaje compilado, como pod ía
se C+ +, mejo a ía mucho la elocidad de gene ación de las piezas.
Po úl imo, sob e el uso de F eeCAD pa a gene a las piezas (Figu a 4.8 y
Figu a 4.9), aunque en la mayo ía de los casos unciona su icien emen e ápido,
pa a los esul ados de in ill con una g an densidad de aguje os ( e Figu a 4.8(b)),
puede oma un iempo excesi o, siendo muy dependien e de la capacidad de la
compu ado a. Aún así, se ha obse ado que en gene al, odos los so wa es ienen
di icul ades pa a abaja con es a pieza, posiblemen e a la eno me can idad de ca as
que posee.
80
Capí ulo 5. Conclusiones 81
5.1.1. Piezas ab icadas
Pa a conclui los obje i os del abajo, los modelos CAD gene ados, se han
expo ado a STL pa a su pos e io ab icación median e FA. Los esul ados de es o
pueden e se en la Figu a 5.1.
Figu a 5.1: Piezas ab icadas median e FA.
81
5.2. Líneas u u as
5.2.1. Expo a esul ados a CAD
Uno de los mayo es p oblemas encon ados as la ealización de es e p oyec o,
es la gene ación de la pieza CAD, debido a que pa a piezas muy complejas puede
oma un iempo excesi o. Además, los comandos de Sc ip de F eeCAD, no pa ecen
pensados pa a gene a piezas de mane a sencilla, esul ando una p og amación algo
complicada.
Exis en algunas al e na i as a F eeCAD que pod ían esul a in e esan es pa a
u u os desa ollo: OpenSCAD [29] y CADque y [31]; ambos so wa es CAD basados
únicamen e en “sc ip ing”. OpenSCAD u iliza un lenguaje p opio, mien as que
CADque y es á basado en py hon.
5.2.2. Gene ación de modelos 3D
Una de los desa ollos na u ales de es e p oyec o, es amplia el algo i mo pa a
gene a modelos 3D. Es o se ía gene ando los azados de co es a la pieza po
di e en es planos, y uniendo los di e en es con o nos pa a gene a el sólido.
5.2.3. Gene alización de elemen os
Es e p oyec o se ha ealizado bajo la suposición de que los elemen os ini os son
odos cuad ados y del mismo amaño. Es e algo i mo pod ía amplia se ambién pa a
hace lo unciona con cualquie ipo de elemen o ini o bidimensional
Pa e IV
Anexos
83
90 A.1. T azado de con o nos
210 . append (x[jk [i], ik [i ]])
211 caso = 0
212 o jin ange (len( )):
213 caso += [j] * 2 ** (2 - j)
214 e u n caso
215
216 de aza (i , j , x_ , paso , ho a io = False ):
217 in = False
218 dim = (len(x_ [0]) , len(x_))
219 x = []
220 y = []
221 eloj = 2
222
223 ik , jk , eloj , i_ , j_ , bo de = clock (ho a io , eloj , i, j, dim )
224 bc = casosbina ios (ik , jk , x_)
225
226 inicio = (i, j, eloj )
227
228 paso . append ((i , j))
229
230 abie o = False
231 i bo de != 0:
232 abie o = T ue
233 i bo de == 0 o bo de == 9 o bo de == 8:
234 x. append ( i_ [4])
235 y. append ( j_ [4])
236 eli bo de == 1 o bo de == 3:
237 x. append ( i_ [6])
238 y. append ( j_ [6])
239 eloj = 3
240 ik , jk , eloj , i_ , j_ , bo de = clock (ho a io , eloj , i,
j, dim )
241 bc = casosbina ios (ik , jk , x_)
242 eli bo de == 2:
243 x. append ( i_ [0])
244 y. append ( j_ [0])
245 eloj = 0
246 ik , jk , eloj , i_ , j_ , bo de = clock (ho a io , eloj , i,
j, dim )
247 bc = casosbina ios (ik , jk , x_)
248 bca = pila (["p","p"], 2)
249 con ol = pila ([(i , j , eloj ) , "p","p"], 3)
250 while no in :
251 paso . append ((i , j))
252 con ol . ag ega ((i, j, eloj ))
253 i bc == 0:
254 eloj += 1
255 eli bc == 1:
256 eloj += 1
90

Capí ulo A. Código 91
257 i = ik [1]
258 j = jk [1]
259 x. append ( i_ [3])
260 y. append ( j_ [3])
261 eli bc == 2:
262 eloj += 1
263 i = ik [2]
264 j = jk [2]
265 x. append ( i_ [4])
266 y. append ( j_ [4])
267 p in ("Caso 2 en", i, j)
268 eli bc == 3:
269 i = ik [0]
270 j = jk [0]
271 x. append ( i_ [3])
272 y. append ( j_ [3])
273 eli bc == 4:
274 i = ik [2]
275 j = jk [2]
276 x. append ( i_ [3])
277 y. append ( j_ [3])
278 p in ("Caso 4 en", i, j)
279 eli bc == 5:
280 eloj -= 1
281 x. append ( i_ [3])
282 y. append ( j_ [3])
283 i bca . lis a [0] != 1:
284 x. append (( i_ [3] + i_ [2] + i_ [1]) / 3)
285 y. append (( j_ [3] + j_ [2] + j_ [1]) / 3)
286 eli bc == 6:
287 eloj += 1
288 i = ik [2]
289 j = jk [2]
290 x. append ( i_ [4])
291 y. append ( j_ [4])
292 eli bc == 7:
293 eloj -= 1
294 i bca . lis a [0] == 7 and (bca. lis a [1] != 7 o bca.
lis a [1] != "p"):
295 x. append (( i_ [3] + i_ [4] + i_ [5]) / 3)
296 y. append (( j_ [3] + j_ [4] + j_ [5]) / 3)
297 x. append ( i_ [3])
298 y. append ( j_ [3])
299 i bca . lis a [0] != 1:
300 x. append (( i_ [3] + i_ [2] + i_ [1]) / 3)
301 y. append (( j_ [3] + j_ [2] + j_ [1]) / 3)
302 bca . ag ega (bc )
303 ik , jk , eloj , i_ , j_ , bo de = clock (ho a io , eloj , i, j,
dim )
91
92 A.1. T azado de con o nos
304 i bo de != 0:
305 abie o = T ue
306 bc = casosbina ios (ik , jk , x_)
307 i no abie o and (i , j , eloj ) == inicio :
308 in = T ue
309 x. append (x [0])
310 y. append (y [0])
311 eli abie o and len(x) > 1 and bo de != 0:
312 i con ol . lis a [0] == con ol . lis a [1] == con ol .
lis a [2]:
313 in = T ue
314 x. append ( i_ [2])
315 y. append ( j_ [2])
316
317 e u n x, y, paso
318
319 de ec (x_ , sua iza = False , ac o =4 , educi = False ):
320 nelx = len(x_ [0])
321 nely = len(x_)
322 p, sen ido = cambio (x_ , nelx , nely )
323 paso = []
324 con o nos = []
325
326 o kin ange (len(p)):
327 x, y, paso = aza (p[k][0] , p[k][1] , x_ , paso , ho a io =
sen ido [k ])
328 i x [0] != x [ -1] o y [0] != y[ -1]:
329
330 con o nos . append ( Con o no (x. copy () , y. copy () , T ue ))
331 else:
332 con o nos . append ( Con o no (x. copy () , y. copy () , False ))
333
334 ii = [[k o kin ange (0, nelx )], [ nelx - 1] * nely , [k o k
in ange (nelx - 1, -1, -1)], [0] * nely ]
335
336 jj = [[0] * nelx , [k o kin ange (0, nely )], [ nely - 1] *
nelx , [k o kin ange ( nely - 1, -1, -1)]]
337 inicio = False
338 x = []
339 y = []
340
341 o kin ange (len(ii)):
342 i k == 0:
343 e = 2
344 eli k == 1:
345 e = 1
346 eli k == 2:
347 e = 0
348 eli k == 3:
92
Capí ulo A. Código 93
349 e = 3
350 inicio = False
351 o lin ange (len(ii[k])):
352 i = ii[k][l]
353 j = jj[k][l]
354 i_ , j_ = node_coo dina es ( e , i, j, (nelx , nely ))
355 i x_[j, i] == 1 and no inicio:
356 x. append ( i_ [4])
357 y. append ( j_ [4])
358 inicio = T ue
359 eli inicio and x_[j, i] == 0:
360 x. append ( i_ [4])
361 y. append ( j_ [4])
362 inicio = False
363 con o nos . append ( Con o no (x. copy () , y. copy () , T ue ,
limi e = T ue ))
364 x = []
365 y = []
366 i inicio and l == len(ii[k]) - 1:
367 x. append ( i_ [2])
368 y. append ( j_ [2])
369 inicio = False
370 con o nos . append ( Con o no (x. copy () , y. copy () , T ue ,
limi e = T ue ))
371 x = []
372 y = []
373
374 e u n con o nos
375
376 de il e ( x_sol ):
377 il e ed = x_sol . copy ()
378 o iin ange (len( x_sol )):
379 o jin ange (len( x_sol [0]) ):
380 i x_sol [i , j] < 0.5:
381 il e ed [i, j] = 0
382 eli x_sol [i , j] >= 0.5:
383 il e ed [i, j] = 1
384 e u n il e ed
385
386 class Con o no:
387 de __ini __ (sel , x, y, ex e no : bool, limi e = False ):
388
389 sel .x = np . a ay (x)
390 sel .y = np . a ay (y)
391 sel . ex e no = ex e no
392 sel .limi e = limi e
393
394 de sua izado (sel , dis ):
395 x = []
93
94 A.1. T azado de con o nos
396 y = []
397 i len ( sel .x) <= 20:
398 pass
399 eli sel . ex e no == False :
400 o iin ange (len( sel .x) + 1):
401 x_ , y_ = p omedio_c ( sel .x, sel .y, i - dis , i +
dis )
402 x. append ( x_)
403 y. append ( y_)
404 sel .x = np . a ay (x)
405 sel .y = np . a ay (y)
406 else:
407 x. append ( sel .x [0])
408 y. append ( sel .y [0])
409 o iin ange (1, len(sel .x) - 1):
410 x_ , y_ = p omedio_e ( sel .x, sel .y, dis , i)
411 x. append ( x_)
412 y. append ( y_)
413 x. append ( sel .x [ -1])
414 y. append ( sel .y [ -1])
415 sel .x = np . a ay (x)
416 sel .y = np . a ay (y)
417
418 de simpli ica (sel ,ep , lim ):
419
420 i len ( sel .x) <= lim :
421 i no sel . ex e no and no sel . limi e :
422 n2 = in (len(sel .x) / 2)
423 x, y = douglaspeucke ( sel .x [0: n2 + 1], sel .y[0: n2
+ 1], 0.01)
424 x2 , y2 = douglaspeucke ( sel .x[n2 :2 * n2 + 1], sel
.y[n2 :2 * n2 + 1], 0.01)
425 x += x2 [1:]
426 y += y2 [1:]
427 sel .x = np . a ay (x)
428 sel .y = np . a ay (y)
429 else:
430 x, y = douglaspeucke ( sel .x, sel .y, 0.01)
431 sel .x = np . a ay (x)
432 sel .y = np . a ay (y)
433 eli no sel . ex e no and no sel . limi e :
434 n2 = in (len(sel .x) / 2)
435 x, y = douglaspeucke ( sel .x [0: n2 + 1], sel .y[0: n2 +
1], ep)
436 x2 , y2 = douglaspeucke ( sel .x[n2 :2 * n2 + 1], sel .y[
n2 :2 * n2 + 1], ep)
437 x += x2 [1:]
438 y += y2 [1:]
439 sel .x = np . a ay (x)
94
Capí ulo A. Código 95
440 sel .y = np . a ay (y)
441 else:
442 x, y = douglaspeucke ( sel .x, sel .y, ep)
443 sel .x = np . a ay (x)
444 sel .y = np . a ay (y)
445
446 de p omedio_c (x , y, in , sup ):
447 l = len(x)
448 N = sup - in
449 sumx = 0
450 sumy = 0
451 =0
452 o iin ange (in , sup + 1):
453 += 1
454 i 0 <= i < l:
455 sumx += x[i]
456 sumy += y[i]
457 eli i >= l:
458 sumx += x[-l + i]
459 sumy += y[-l + i]
460 else:
461 sumx += x[l + i]
462 sumy += y[l + i]
463 e u n sumx / , sumy /
464
465
466 de p omedio_e (x, y, N, i):
467 l = len(x)
468 in = i - N
469 sup = i + N
470 sumx = 0
471 sumy = 0
472 =0
473 o iin ange (in , sup + 1):
474 += 1
475 i 0 <= i < l:
476 sumx += x[i]
477 sumy += y[i]
478 eli i >= l:
479 sumx += x [ -1]
480 sumy += y [ -1]
481 else:
482 sumx += x[0]
483 sumy += y[0]
484 e u n sumx / , sumy /
485
486
487 de douglaspeucke (x: lis , y: lis , epsilon ):
488 dmax = 0
95

96 A.1. T azado de con o nos
489 index = 0
490 esx = []
491 esy = []
492 o iin ange (1, len(x)):
493 d = dis ancia_pl (x[i], y[i], x [0] , x [-1] , y [0] , y [ -1])
494 i d > dmax :
495 index = i
496 dmax = d
497 i dmax > epsilon :
498 es1x , es1y = douglaspeucke (x [0: index + 1], y[0: index +
1], epsilon )
499 es2x , es2y = douglaspeucke (x[ index : len(x)], y[ index : len (
x)], epsilon )
500
501 esx = esx + es1x . copy () + es2x [1:]. copy ()
502 esy = esy + es1y . copy () + es2y [1:]. copy ()
503 else:
504 esx . append (x [0])
505 esx . append (x [ -1])
506
507 esy . append (y [0])
508 esy . append (y [ -1])
509
510 e u n esx . copy () , esy . copy ()
511
512
513 de dis ancia_pl (px , py , xi , x , yi , y ):
514
515 a1 = x - xi
516 a2 = y - yi
517 e u n abs(a2 * px - a1 * py - xi * a2 + yi * a1) / np. sq (a2
** 2 + a1 ** 2)
518
519
520 class azado :
521 de __ini __ ( sel , x_sol ):
522 sel .x_ = il e ( x_sol )
523 sel .nelx = len( x_sol [0])
524 sel . con o nos = ec ( sel .x_ )
525
526 de sua iza ( sel , N =2) :
527 o iin ange (len( sel . con o nos )):
528 sel . con o nos [i ]. sua izado (N)
529
530 de educi (sel ,ep =0.25 , lim = 20):
531 o iin ange (len( sel . con o nos )):
532 sel . con o nos [i ]. simpli ica (ep , lim )
533
534 de expo a ( sel , name : s ing , medida_x =150.0) :
96
Capí ulo A. Código 97
535 u a_pun os = os. ge cwd () + " " + name
536 os . mkdi ( u a_pun os )
537 ex e nal = dic ()
538 in e nal = dic ()
539 =0
540 escala = medida_x / sel . nelx
541 o iin ange (len( sel . con o nos )):
542 i sel . con o nos [i ]. ex e no == T ue :
543 ex e nal [i] = [ sel . con o nos [i ].x * escala , sel .
con o nos [i]. y * escala ]
544
545
546 else:
547 in e nal [i] = [ sel . con o nos [i ].x * escala , sel .
con o nos [i]. y * escala ]
548
549 ile1 = open( u a_pun os + " ex e nal . pkl ","wb")
550 ile2 = open( u a_pun os + " in e nal . pkl ","wb")
551 pickle . dump ( ex e nal , ile1 )
552 pickle . dump ( in e nal , ile2 )
553 ile1 . close ()
554 ile2 . close ()
A.2. F eeCAD
1impo Pa Design
2impo Pa
3impo Ske che
4impo pickle
5impo numpy as np
6impo ma h as m
7impo F eeCAD
8impo D a
9
10 ile1 = open(" ... ex e nal . pkl "," b")
11 ile2 = open(" ... in e nal . pkl "," b")
12 ex e nal = pickle . load ( ile1 )
13 in e nal = pickle . load ( ile2 )
14 ile1 . close ()
15 ile2 . close ()
16 de line (x0 , y0 , x , y ):
17 e u n Pa . LineSegmen ( F eeCAD . Vec o (x0 ,y0 ,0) , F eeCAD . Vec o (
x ,y ,0))
18
19 de pad (doc ,L ,name , c oquis ):
20 doc . ge Objec (’Body ’). newObjec (’ Pa Design :: Pad ’,name)
97
98 A.2. F eeCAD
21 doc . ge Objec ( name ). P o ile = doc . ge Objec ( c oquis )
22 doc . ge Objec ( c oquis ). Visibili y = False
23 doc . ge Objec ( name ). Leng h = L
24 doc . ge Objec ( name ). UseCus omVec o = 0
25 doc . ge Objec ( name ). Di ec ion = (1 , 1, 1)
26 doc . ge Objec ( name ). Type = 0
27 doc . ge Objec ( name ). UpToFace = None
28 doc . ge Objec ( name ). Re e sed = 0
29 doc . ge Objec ( name ). Midplane = 0
30 doc . ge Objec ( name ). O se = 0
31
32 de pocke ( doc ,L ,name , c oquis ):
33 doc . ge Objec (’Body ’). newObjec (’Pa Design :: Pocke ’,name)
34 doc . ge Objec ( name ). P o ile = doc . ge Objec ( c oquis )
35 doc . ge Objec ( c oquis ). Visibili y = False
36 doc . ge Objec ( name ). Leng h = L
37 doc . ge Objec ( name ). UpToFace = None
38 doc . ge Objec ( name ). Type = 1
39 doc . ge Objec ( name ). UpToFace = None
40 doc . ge Objec ( name ). Re e sed = 0
41 doc . ge Objec ( name ). Midplane = 1
42 doc . ge Objec ( name ). O se = 0
43
44
45 doc = F eeCAD . newDocumen (" Pieza_TFM ")
46 doc . addObjec (’Pa Design :: Body ’,’Body ’)
47 doc . ge Objec (’Body ’). newObjec (’Ske che :: Ske chObjec ’,’ex e nal ’
)
48 d = F eeCAD . ge Documen ( ’Pieza_TFM ’). ge Objec (’ex e nal ’)
49 p in ( ex e nal . keys ())
50 o iin ex e nal . keys ():
51 o jin ange (len( ex e nal [i ][0]) -1):
52 d. addGeome y ( line ( ex e nal [i ][0][ j], ex e nal [i ][1][ j],
ex e nal [i ][0][ j +1] , ex e nal [i ][1][ j +1]) , False )
53 doc . addObjec (’Pa :: Ex usion ’,’Ex ude’)
54 = doc . ge Objec ( ’Ex ude’)
55 . Base = doc . ge Objec (’ex e nal ’)
56 . Di Mode = "No mal"
57 . Di Link = None
58 . Leng hFwd = 10.000000000000000
59 . Leng hRe = 0.000000000000000
60 . Solid = T ue
61 . Re e sed = False
62 . Symme ic = False
63 . Tape Angle = 0.000000000000000
64 . Tape AngleRe = 0.000000000000000
65 App . ge Documen ( ’Pieza_TFM ’). ecompu e ()
66
67 link =[]
98
68 o iin in e nal . keys ():
69 doc . ge Objec (’Body ’). newObjec (’Ske che :: Ske chObjec ’, ’
in e nal {i}’)
70 d = F eeCAD . ge Documen ( ’Pieza_TFM ’). ge Objec ( ’in e nal {i}’)
71 o jin ange (len( in e nal [i ][0]) -1):
72
73 d. addGeome y ( line ( in e nal [i ][0][ j], in e nal [i ][1][ j],
in e nal [i ][0][ j +1] , in e nal [i ][1][ j +1]) , False )
74 doc . addObjec (’Pa :: Ex usion ’, ’ Ex ude {i}’)
75 = doc . ge Objec ( ’Ex ude {i} ’)
76 . Base = doc . ge Objec ( ’in e nal {i} ’)
77 . Di Mode = "No mal"
78 . Di Link = None
79 . Leng hFwd = 10.000000000000000
80 . Leng hRe = 0.000000000000000
81 . Solid = T ue
82 . Re e sed = False
83 . Symme ic = False
84 . Tape Angle = 0.000000000000000
85 . Tape AngleRe = 0.000000000000000
86 link . append ( doc. ge Objec ( ’Ex ude {i}’))
87
88 doc . addObjec (" Pa :: Compound " ," Compound ")
89 doc . Compound . Links = link
90 doc . addObjec (" Pa :: Cu "," Cu ")
91 doc . Cu . Base = App . ac i eDocumen (). Ex ude
92 doc .Cu . Tool = App . ac i eDocumen () . Compound
93
94 doc . ecompu e ()