Tengo datos de ingeniería que surgen de construcciones más o menos complejas.
De manera regular, necesito esquemas de los datos de construcción para realizar cálculos geométricos en ellos. Los datos de construcción provienen de diferentes paquetes CAD (por ejemplo, Inventor o SolidWorks). Básicamente, necesito ciertos polígonos cerrados almacenados de manera que pueda leerlos con métodos primitivos como programas PERL descuidados.
Editar: los polígonos son planos. Es decir, los datos que quiero procesar son 2D. Básicamente, a menudo es un esquema de un objeto 3D, por ejemplo, una carcasa.
Entonces, mi formato de entrada favorito para dichos datos de polígonos extraídos es un archivo CSV o texto sin formato con los separadores disponibles.
Como la mayoría de CAD-SW puede importar modelos 3D guardados en STEP, prácticamente puedo elegir qué software usar para guardar los datos del polígono. El resultado es que probablemente terminaré teniendo archivos DXF o DWG, que son los archivos CAD más primitivos que puedo obtener de eso.
Esto me deja sacar mis polígonos de ese maldito DXF en un archivo CSV. ¿Alguien tiene una forma (preferiblemente) fácil de hacer eso?
Anexo: Para una mayor clarificación, describo mi tarea. Tengo que diseñar PCB que se adapten bien a las carcasas de formas extrañas. Si bien mi EDA-sw exhibe una rutina bastante utilizable para importar datos DXF, mi autoplacer autoprogramado no lo hace. Entonces, en mi archivo EDA, puedo tener un buen esquema, pero esto no me ayuda a colocar los componentes dentro de ese polígono. Por lo tanto, necesito los datos del polígono por separado en mi autoplacer.
Respuestas:
Parece que está interesado en una porción plana de su modelo CAD. Si bien podría usar un archivo 3D y cortarlo usted mismo, parece un poco exagerado ya que la aplicación CAD es perfectamente capaz de hacer los cortes por usted.
rápido y sucio
Ok, entonces cada CAD tiene un modo de dibujo 2D, puede guardar ese dibujo como
dxf
opdf
ambos son fáciles de analizar. Si no encuentras una buena herramienta para esto, conviértelapdf
en algosvg
que sea más fácil de analizar. Este enfoque también se puede hacer rápido y sucio aprovechando herramientas como Inkscape o Illustrator. Hagamos un ejemplo porque es fácil de hacer:Imagen 1 : Dibujo de exportación rápido y sucio como
pdf
/svg
luego aislar y leer puntos de ese archivo. Utilicé la versión modificada de esta herramienta para volcar coordenadaspdf
. Deberías poder hacer eso en Perl fácilmente. datos disponibles aquíMétodo adecuado
Es posible acceder a SolidWorks e Inventor a través de un puente COM para que pueda acceder al modelo de datos de aplicaciones CAD directamente desde su código Perl. Esto tiene varios beneficios, pero sobre todo no necesita analizar archivos intermedios. Puede seleccionar los bordes relevantes y solo recorrerlos directamente desde el CAD. Ahora solo tengo acceso a SolidWorks en el trabajo, pero un enfoque similar funciona en inventor como lo he hecho.
Tenía algo de tiempo extra en el trabajo para hacer un
VBA
código rápido para SolidWorks. El código toma todas las líneas de un boceto cerrado, las ordena en orden de polígono (con un ingenuo algoritmo N ^ 2) y las imprime en laVBA
consola de depuración.Como vba está llamando a COM, puede usar un código que puede usar casi cualquier idioma, por ejemplo, Perl implementa Win32 :: OLE que puede hacer el trabajo.
Imagen 2 : La parte de ejemplo con un boceto simple de un bucle da como resultado esta salida
Epílogo
Si realmente desea exportar datos de polígonos 3D y hacer el corte manualmente, exportaría OBJ o STL. Pero esto estaría muy abajo en mi lista de enfoques, principalmente porque todos los demás enfoques son más simples.
fuente