Pregunta

Hago un complemento de AutoCAD con Dot Net 3.50 y hago referencia a acdbmgd.dll, acmgd.dll desde AutoCAD 2012 ¿Qué puedo hacer para que se ejecute tanto en AutoCAD 2010 como en AutoCAD 2011 si debería hacer referencia a acdbmgd.dll, acmgd? DLL de AutoCAD 2010 ¿Dónde puedo obtener este DLL mientras solo tengo AutoCAD 2012?

¿Fue útil?

Solución

He tenido cierto éxito usando bibliotecas 2008 en AutoCAD 2010, por lo que usar las bibliotecas de AutoCAD 2010 es probablemente su mejor opción, aunque no garantiza que funcione. Dependerá exactamente de lo que esté haciendo.

Puede descargar las bibliotecas como parte del paquete ObjectARX 2010 desde Centro de desarrolladores de Autodesk (al final de la página). También puede obtener ObjectArx 2011 desde allí si es necesario.

Otros consejos

Mi mejor suerte con la longevidad de los complementos de AutoCAD ha sido con Autolisp. Tengo herramientas que escribí en 1995 que todavía están cocinando fuertes ahora sin modificación.

La API .NET es más compatible que las ActiveX, pero todavía hay algunas diferencias.

Siempre puede usar la reflexión para llamar a las funciones (llámalas por nombre), pero habrá un montón de cheques por hacer, y será mucho trabajo tener su aplicación. Reaccione de la misma manera en todas las versiones.

Tu mejor apuesta (lo que haría al menos) sería hacer una clase de envoltorio para cada funcionalabilidad que desee. Por ejemplo, crearía una clase de "miccírculo" para manipular círculos, y luego, dentro de esta clase, hacer una función genérica (ex.: "Changethickness (int Newthickness)"), y haga su código de reflexión allí, para que pueda Controle cómo se realiza la llamada dependiendo de las versiones de AutoCAD instaladas (por ejemplo, para no llamar a una función específica en una determinada versión de AutoCAD porque contiene un error). Esto hará una capa expandible que podrá reutilizar en toda la versión de AutoCAD, y podrá admitir cualquier cambio en la API.

Hago esto para 2012 y 2013. Hay alguna diferencia entre ellos.

Generalmente comienzo dos del proyecto uno con el asistente ACAD.NET 2012 y otro con el asistente ACAD .NET 2013.

Actualizar ambos simultáneamente

La mayoría de los casos es solo copiar algunos casos, será diferente donde en 2013 la API ha evolucionado, por ejemplo, en Civil3d 2012 no hay ninguna API de punto co-go donde en 2013 han agregado que en ese caso necesito cambiar el código pequeño Bit para trabajar en 2013.

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