Pregunta

¿Es posible hacer software CAD / CAM sin tener que usar C ++? Mi empresa desarrolló su software con c / C ++, pero eso fue hace más de 10 años. Hoy en día, hay una gran cantidad de código heredado del que el cambio nos obligaría a deshacernos, pero me preguntaba cuáles son los riesgos reales. Tenemos muchos algoritmos matemáticos para el cálculo de trayectorias de herramientas, reconocimiento y simulación de características y renderizado 3D, y me preguntaba si C # puede manejar todo eso sin una gran pérdida de rendimiento.

¿Es una utopía reescribir tales algoritmos en C # o si ese lenguaje solo se ocupa de la interfaz de usuario? Aquí no estamos hablando del desarrollo de juegos (Halo 3 o Call Of Duty), entonces, ¿cuánto procesamiento necesita realmente CAD / CAM?

¿Alguien puede iluminarme sobre este asunto? La mayoría de mis colegas son programadores incondicionales de C ++ y, aunque programo en c ++, amo .NET, pero tengo dificultades para venderles .NET además de la interfaz de usuario básica. ¿Tiene sentido considerar cambiar a .NET en ese campo, o simplemente no es una buena idea?

Gracias

¿Fue útil?

Solución

Si tiene una gran cantidad de código heredado que debería reescribirse, no creo que tenga sentido comercial cambiar a un idioma diferente. Incluso si hubiera ganancias al usar un idioma diferente (lo cual es cuestionable), el costo de probar y depurar el nuevo código los superaría con creces. También tiene un equipo de desarrollo que es experto en C ++. Habría una gran caída de productividad mientras se aceleraba en el nuevo idioma.

Otros consejos

C # puede interoperar con código C ++. Puede comenzar a escribir código nuevo en C # y hacer que llame al código de C ++ existente cuando sea necesario. No tendría que ser solo por UI. Consulte C ++ / CLI y los métodos de interoperabilidad de C # para obtener información sobre cómo usar el código de C ++ existente con el nuevo código de C #.

Además, hice una pregunta similar aquí: Rendimiento de C # para el servidor proxy (frente a C ++)

Las aplicaciones CAD / CAM son bastante intensivas en cálculos, y la velocidad definitivamente será uno de los criterios para seleccionar un paquete, por lo que desconfiaría de pasar a un lenguaje más lento.

Debe pensar detenidamente sobre los motivos para cambiar de idioma. ¿Es porque no te gusta C ++ o porque C # traerá beneficios reales? Es muy probable que ralentice su aplicación. Consulte las comparaciones de velocidad de C ++ C #.

Benchmarks de lenguaje de computadora Juego C ++ vs C #

En mi humilde opinión, sería mejor mantener todos los cálculos de trayectoria en C ++, y si realmente debe mover cualquier código a otro idioma, muévalo a un lenguaje de secuencias de comandos que el usuario puede editar fácilmente, sin volver a compilar.

Utilizo aplicaciones CAD / CAM todos los días en el trabajo, y hay varias cosas en la interfaz de usuario que me ponen nervioso. Serían soluciones simples si solo pudiera acceder a la fuente.

Si su empresa crea una aplicación CAD / CAM que tiene una IU escrita en un lenguaje de script que puedo modificar (Lua, Python, etc.), compraré una copia.

Hugo

Eche un vistazo a pythonocc . Le proporciona un módulo de Python que envuelve el núcleo de OpenCASCADE CAD. OpenCASCADE es el único núcleo de código abierto de fortaleza industrial que conozco. Las características agradables son el soporte de STEP e IGES y la capacidad de generar mallas FEM a partir de datos BRep.

Otra cosa que debe tener en cuenta es la independencia de la plataforma: si existe la posibilidad de que usted / su empresa necesiten migrar su software CAD a Linux / Unix (por supuesto, por decisión de negocios), será bastante doloroso. Actualmente, incluso C ++ con llamadas MFC / Win32 nos dio muchos dolores de cabeza ...

La biblioteca Open Design Alliance es multiplataforma. Recientemente han introducido una versión beta de la versión .NET de su biblioteca. Vea mi respuesta a Biblioteca de dibujo cad de código abierto (dwg) en C # para más detalles.

Habiendo dicho que estoy de acuerdo con las otras respuestas aquí, si no está roto, no lo arregles, tanto el código como los codificadores. MSFT todavía usa C ++, al igual que la ODA: su base de código se origina en C ++ & amp; está envuelto para .NET.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top