2016-09-27 1 views
1

Ich möchte Parameterwerte an einen Autocad-Parameterblock in einer .net-Anwendung übergeben. Ein einfacher Parameter ist "d1" (Abstand).Ändern der Parameter des Autocad-Parameterblocks von .net

Ich schreibe eine Art von komplexen asp.net Produkt comfigurator Anwendung, die Shuold generieren eine 2D-DXF-Datei basierend auf den Benutzereingaben. Ich verwende Unity Webgl, um die 3D in der Webseite zu rendern, aber ich muss auch eine DXF-Datei zur Laufzeit erstellen, da ein Autocad-kompatible 2D-Abschnitt in den Anforderungen ist.

Um zu vermeiden, den Abschnitt von Grund auf neu zu erstellen, fand ich, dass parametrische Blöcke eine Lösung sein könnten: ein Designer stellt mir einen sehr komplexen parametrischen Block zur Verfügung und ich übergebe ihm die Parameter zur Laufzeit, so dass die Ausgabedatei entladen werden konnte.

Irgendwie zwei Aufgaben benötigt:

1)

die Parameter auf einen Parameterblock passieren

2), um es einfach dxf speichern (i bin nicht daran interessiert es ein parametrischer Block ist nach Parameter übergeben wurden)

Ich konnte nicht herausfinden, dies in .net durchzuführen.

+0

Ich fand, ich konnte Blockskalierung und andere Eigenschaften bearbeiten, aber am Ende konnte nicht mit parametrischen Blöcken aus den APIs arbeiten. Siehe https://stackoverflow.com/questions/19290030/is-it-possible-to-edit-block-attributes-in-autocad-using-autodesk-autocad-intero – reckface

+0

@reckface könnten Sie mir bitte einen poitner zu APIs zur Verfügung stellen ? Was sind sie genau? Ich kann aus der Frage nicht verstehen, warum parametrische Blöcke nicht verwendbar sind. Vielen Dank. – LaBracca

+0

Ich habe die block.GetDynamicBlockProperties() verwendet, dann die Eigenschaften durchlaufen und versucht, Werte festzulegen, aber es gab keine Auswirkungen auf den Block. Ich bin in der Lage, _Document.ModelSpace.InsertBlock (coordinate.Point, Name, Maßstab, YScale, Maßstab, angleInRadians) und dann skalieren, aber das ist alles, was Sie bekommen – reckface

Antwort

0

Um die Parameter Ihres dynamischen Blocks zu ändern, können Sie GetDynamicBlockProperties verwenden, um die Eigenschaften abzurufen. Anschließend können Sie den Wert für jede Eigenschaft ändern.

Es gibt ein Beispiel in VBA hier: http://visiblevisual.com/jupgrade/index.php/autocad-vb-vba/9-insert-dynamic-block.

Um Ihre Zeichnung in einer DXF-Datei zu speichern, Sie Document.SaveAs(fileName, AcSaveAsType.ac2000dxf)

jedoch verwenden können, wenn Sie eine Webseite Gebäude sind, können Sie die Forge Design Automation API (früher bekannt als AutoCAD I/O API) statt mit dem Auto benutzen sollte eine AutoCAD-Instanz (dies ist nicht zuverlässig und die AutoCAD EULA lässt dies nicht zu). Sie können auch Teigha verwenden.

Verwandte Themen