2016-05-03 18 views
0

Ich mache eine Python-App, um einige Aufgaben in AutoCAD zu automatisieren (bestimmte Formen in bestimmten Schichten zeichnen und die Position einiger Kreise überprüfen).Schnittstelle AutoCAD-Plugin mit externen Programm

Für den ersten Teil, das Zeichnen von Dingen, war es einfach, die AutoCAD Interop-Bibliothek zu verwenden, da Sie problemlos Objekte in das aktive Dokument einfügen konnten, ohne irgendetwas in AutoCAD zu tun. Ich finde jedoch keine Möglichkeit, dieselbe Bibliothek zu verwenden, um die Eigenschaften von Objekten im Dokument zu überprüfen.

Was ich brauche, ist eine Funktion, die, wenn sie als Argument den Layernamen übergeben wird, eine Liste der Zentren jedes Kreises in dieser Ebene zurückgibt.

Jetzt wäre es einfach, nur durch das Laden eines Plugins zu tun. Aber ich brauche diese Information an ein Python-Programm (das die AutoCAD-Interop-Bibliothek durch Pythonnet lädt) und ich weiß nicht, wie es geht.

Also, zusammenfassend, ich muss:

  • Erfahren Sie, wie die AutoCAD-Interop-Bibliothek verwenden Zeichnung Informationen abzurufen.

oder

  • Schnittstelle eine AutoCAD-Plugin mit einer externen app in Python writen.

Ist es möglich, was ich vorhabe? Was wäre der beste Ansatz?

+0

Sie müssen einen Auswahlsatz erstellen, der gefiltert wird, um nur die Kreise auf den betreffenden Layern auszuwählen. Dann iterieren Sie den Auswahlsatz und untersuchen jeden Kreis und erhalten den Mittelpunkt. –

Antwort

0

Sie können auch AutoCAD ohne Interop verwenden:

  1. Sie können die WCF-Dienste in AutoCAD hosten und mit ihnen interagieren. Ich habe keine kostenlose Probe, sorry (nur meine privaten Lösungen, nicht zur Veröffentlichung). WCF-Dienste können in der acad.exe oder accoreconsole.exe (ausgenommen accoreconsole.exe 2016) gehostet werden.

  2. Sie können PowerShell in AutoCAD hosten und auch damit interagieren. Die Probe dieser Art habe ich here veröffentlicht.

Ich verwende diese Möglichkeiten für verschiedene Fälle.