Archivo: Sphericon.stl


Este es un archivo de Wikimedia Commons
De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Archivo original (5.120 × 2.880 píxeles; tamaño de archivo: 31 KB; tipo MIME: application / SLA )

Ver Sphericon.stl   en viewstl.com

Resumen

#! / usr / bin / env pythonsolid_name  =  'ASCII_STL_of_a_sphericon_by_CMG_Lee' n_face_side  =  60 r  =  1000importar  re ,  io ,  math def  fmt ( cadena ):  ## string.format (** vars ()) usando etiquetas {formato! expresión} por CMG Lee  def  f ( etiqueta ):  i_sep  =  etiqueta . rfind ( '!' );  return  ( re . sub ( '\ .0 + $' ,  '' ,  str ( eval ( tag [ 1 : - 1 ])))  if  ( i_sep  <  0)  else  ( '{: % s }'  %  etiqueta [ i_sep  +  1 : - 1 ]) . format ( eval ( tag [ 1 : i_sep ])))  return  ( re . sub ( r '(? <! {) {[^ {} ] +}' ,  lambda  m : f ( m . group ()),  string )  . reemplazar ( '{{' ,  '{') . replace ( '}}' ,  '}' )) def  append ( obj ,  string ):  return  obj . append ( fmt ( cadena )) def  tabbify ( celdas ,  separador = '|' ):  celdas  =  [ lista ( filas )  +  [ '' ]  *  ( len ( max ( celdas ,  clave =len ))  -  len ( filas ))  para  filas  en  celdas ]  fmts  =  [ ' %%% d s'  %  ( max ([ len ( str ( celda ))  para  celda  en  columnas ]))  para  columnas  en  zip ( * celdas )]  devuelve  ' \ n ' . unirse ([ separador . unirse ( fmts )  % tupla ( filas )  para  filas  en  celdas ]) def  roundm ( x ,  multiple = 1 ):  if  ( isinstance ( x ,  tuple )):  return  tuple ( roundm ( list ( x ),  multiple ))  elif  ( isinstance ( x ,  list  )):  return  [ roundm ( x_i ,  multiple ) para  x_i  en  x ]  else :  return  int ( math . floor ( float ( x )  /  multiple  +  0.5 ))  *  multiplefacetss  =  [] ## Encuentra facetas para  i_face_side  en el  rango ( n_face_side  +  1 ):  rad  =  math . pi  *  i_face_side  /  n_face_side  ( r_sin , r_cos )  =  roundm ([ r  *  function ( rad )  para la  función  en  [ math . sin , math . cos ]])  if  ( i_face_side  > 0 ):  facetas . añadir ([ 1000  +  i_face_side ,  r ,  0 , 0 ,  0 , - r_cos_old , - r_sin_old ,  0 , - r_cos , - r_sin ])  facetas . añadir ([ 2000  +  i_face_side ,  - r ,  0 , 0 ,  0 ,  r_cos_old , - r_sin_old , 0 ,  r_cos , - r_sin ])  facetas . añadir ([ 3000  +  i_face_side ,  0 ,  r , 0 ,  - r_cos_old , 0 ,  r_sin_old ,  - r_cos , 0 ,  r_sin ])  facetass . añadir ([ 4000  +  i_face_side ,  0 , - r , 0 ,  r_cos_old , 0 , r_sin_old ,  r_cos , 0 ,  r_sin ])  ( r_sin_old , r_cos_old )  =  ( r_sin , r_cos ) ## Calcular normales para  facetas  en  facetss :  nos  =  [ facetas [ i_xyz  +  3 ]  -  facetas [ i_xyz ]  para  i_xyz  en  gama ( 3 ) ]  vs  =  [ facetas [ i_xyz ] -  facetas [ i_xyz  +  6 ]  para  i_xyz  en el  rango ( 3 )]  normales  =  [ us [ 1 ] * vs [ 2 ]  -  us [ 2 ] * vs [ 1 ],  us [ 2 ] * vs [ 0 ]  -  us [ 0 ] * frente a [ 2 ],  nosotros [ 0] * vs [ 1 ]  -  us [ 1 ] * vs [ 0 ]]  longitud_normal  =  suma ([ componente  *  componente  para  componente  en  normales ])  **  0.5  facetas  + =  [ ' % .5f '  %  ( componente  /  longitud_normal )  para  componente  en  normales ] facetas  =  ordenadas ( facetas) print ( tabbify ([[ 's.f' ]  +  [ ' % s% d '  %  ( xyz ,  n )  para  n  en el  rango ( 3 )  para  xyz  en la  lista ( 'XYZ' )]  +  [ 'N % s '  %  ( xyz )  para  xyz  en la  lista ( 'xyz' )]]  +  facetas )) ## Compilar salidas  STL =  [fmt ( '' ' \ facet normal {facetas [10]} {facetas [11]} {facetas [12]}   vértice del  bucle externo {facetas [1]} {facetas [2]} {facetas [3]}   vértice {facetas [4]} {facetas [5]} {facetas [6]}   vértice {facetas [7]} {facetas [8]} {facetas [9]}   endloop endfacet ''' )  para  las facetas  en  facetss ] con  io . open ( __file__ [: __file__ . rfind ( '.' )]  +  '.stl' ,  'w' ,  nueva línea = ' \ n ' )  como  f_out :  f_out . write ( 'solid % s \ n % s \ n endsolid % s \ n \ n ## Por favor, mantenga la secuencia de comandos de Python debajo de \ n % s ' %  ( solid_name ,  ' \ n ' . join ( outs ),  solid_name ,  io . open ( __file__ ) . read ()))

Licencia

Yo, el titular de los derechos de autor de este trabajo, lo publico bajo la siguiente licencia:

Captions

An ASCII STL of a sphericon

Items portrayed in this file

depicts

16 March 2018

Historial del archivo

Haga clic en una fecha / hora para ver el archivo tal como apareció en ese momento.

Uso de archivos global

Los siguientes wikis utilizan este archivo:

  • Uso en ar.wikipedia.org
  • Uso en ca.wikipedia.org
  • Uso en cs.wikipedia.org
    • STL
  • Uso en en.wikibooks.org
    • Impresión 3D / Modelos
    • Impresión 3D / versión imprimible
  • Uso en fa.wikipedia.org
    • STL (قالب پرونده)
  • Uso en www.wikidata.org
    • Q7576723
Obtenido de " https://en.wikipedia.org/wiki/File:Sphericon.stl "