PlannerRoad
Guest
nicht auf italienisch gefunden haben keine tutorials oder erklärung, wie man ausfüllen c#-code für autocad, ich bringe hier meine erfahrung speziell für neugier auf dem thema gemacht.
premise: c# wurde in den neuesten versionen von autocad implementiert und basiert auf der .net-plattform von microsoft, die nun die vba-unterstützung verlassen hat.
zum schreiben und/oder kompilieren von c# müssen sie installieren Microsoft ausgabe 2008 die eine kostenlose version ist (oder andere kostenlose software, typ scharfe spitze die open source ist).
ich habe den test mit microsoft visual c# 2008 express edition gemacht.
als einfaches beispiel den folgenden code
gefunden qui und das hat die funktion, einen tischstil in die zeichnung eingefügt zu erstellen, versuchen wir, unser dienstprogramm für autocad zu erstellen.
open microsoft visual c# e. e. e. in "neues projekt" wählen sie "bibliothek".
auf dem bildschirm, der in der registerkarte erscheint klasse1 löschen sie diesen voreingestellten codeteil und fügen sie stattdessen den für unser dienstprogramm benötigten code ein (beunruhigen sie sich nicht, wenn fehler im moment gemeldet werden).
im menü "projekt" -> Option "referenz- > Tab "Browse" fügen sie diese beiden autocad dlls als referenzdatei hinzu:
acdbmgd.dll
acmgd.dllsie finden im hauptverzeichnis von autocad selbst. zu beachten, dass je nach dem geschriebenen dienstprogramm häufig andere arten von referenzdateien hinzugefügt werden.
sie werden feststellen, dass fehler, die nach dem kopieren des codes gemeldet wurden, jetzt verschwunden sind. sie können zu diesem punkt fortfahren, um den code unter dem menü zu kompilieren "zusammenstellung".
rette alles. der kompilierte code wird standardmäßig im unterordner gespeichert bin\release\ des projekts. sie können den pfad oder die ansicht ändern, wo er durch die registerkarte gespeichert wird "zusammenstellung"name der immobilie" unter dem menü "projekt".
im ordner bin\release (oder anderen satz von ihnen) finden sie neben anderen dlls, die uns nicht interessieren, den dateinamenprogetto.dll. letzteres ist die frucht unserer compilation, die datei unseres dienstprogramms.
an diesem punkt sehen wir, wie es zu verwenden, da diese dll utilities nicht in autocad mit einfachem drag innerhalb des zeichnungsfensters arbeiten.
immer in den neuesten versionen von autocad wurde der befehl eingefügt nettogewicht die dient nur zum laden von dll utilities erstellt auf .net plattform.
siehe hier:
http://www.cadforum.cz/cadforum_en/qaid.asp?tip=5863hochgeladen unser dienstprogramm mit netload, mit dem ctws-befehl (zum dienstprogramm im code zugewiesen) können wir eine benutzerdefinierte tabelle einfügen.
so können wir unser erstes dienstprogramm in c# verwenden.
ps: die "programmierer" ich hoffe, mir irgendwelche ungenauigkeiten oder auslassungen vergeben!
premise: c# wurde in den neuesten versionen von autocad implementiert und basiert auf der .net-plattform von microsoft, die nun die vba-unterstützung verlassen hat.
zum schreiben und/oder kompilieren von c# müssen sie installieren Microsoft ausgabe 2008 die eine kostenlose version ist (oder andere kostenlose software, typ scharfe spitze die open source ist).
ich habe den test mit microsoft visual c# 2008 express edition gemacht.
als einfaches beispiel den folgenden code
PHP:
mit autodesk.autocad.application services;
Autodesk Mythos. autocad.databaseserices,
Autodesk Mythos. autocad.editorinput,
autodesk.autocad.runtime verwenden,
autodesk.autocad.colors,
[left]namespace tableandstylecreation[/left]{\chffff}
befehle der öffentlichen klasse
{\chffff}
[CommandMethod("CTWS")]statische öffentliche leere erstellttablewithstyleandwhatstyle()
{\chffff}
dokument doc =
anwendung.documentmanager.mdiactivedocument;
datenbank db = doc.database;
editor ed = doc.editor;
kurzbeschreibung
ed.getpoint("\nenter tischeinführstelle: ");
wenn (pr.status == promptstatus.ok)
{\chffff}
transaktion tr =
doc.transactionmanager.starttransaction();
verwendung (tr)
{\chffff}
// zuerst lassen sie uns unseren benutzerdefinierten stil erstellen,
// wenn es nicht existiert
const string stylename = "garish table style";
objectid tsid = objectid.null;
dbdictionary sd =
(dbdictionary)tr.getobject(
db.tablestyledictionaryid,
openmode. vorbereiten
;
// verwenden sie den stil, wenn er bereits existiert
wenn (sd.contains(stylename))
{\chffff}
tsid = sd.getat(stylename);
}
andere
{\chffff}
// sonst müssen wir es schaffen
tablestyle ts = new tablestyle();
// kopfbereich rot machen
ts.setbackgroundcolor(
farbe.fromcolorindex(colormethod.byaci, 1),
(int)(rowtype). titelseite |
zeilentyp. kopfzeile
;
// und der datenbereich gelb
ts.setbackgroundcolor(
farbe.fromcolorindex(colormethod.byaci, 2),
(int)rowtype.datarow
;
// mit magenta text überall (ja:-)
ts.setcolor(
farbe.fromcolorindex(colormethod.byaci, 6),
(int)(rowtype). titelseite |
|
zeiletype.datarow)
;
// und jetzt mit cyan äußeren gitterlinien
ts.setgridcolor(
farbe.fromcolorindex(colormethod.byaci, 4),
(int)gridlinetype.outergridlines,
(int)(rowtype). titelseite |
|
zeiletype.datarow)
;
// und hellgrüne innere gitterlinien
ts.setgridcolor(
farbe.fromcolorindex(colormethod.byaci, 3),
(int)gridlinetype.innergridlines,
(int)(rowtype). titelseite |
|
zeiletype.datarow)
;
// und wir machen die gitterlinien schön und klobig
ts.setgridlineweight(
lineweight.lineweight211,
(int)gridlinetype.allgridlines,
(int)(rowtype). titelseite |
|
zeiletype.datarow)
;
// unseren tischstil zum wörterbuch hinzufügen
// und die transaktion
tsid = ts.posttablestyletodatabase(db, stylename);
tr.addnewlycreateddbobject(ts, true);
}
blockierbar bt =
(blockierbar)tr.getobject(
doc.database.blocktableid,
openmode. vorbereiten
;
tabelle tb = neue tabelle();
tb.numrows = 6;
tb.numcolumns = 3;
tb.setrowheight(3);
tb.setcolumnwidth(15);
tb.position = pr.wert;
// verwenden sie unseren tischstil
wenn (tsid == objectid.null)
// das sollte nicht geschehen, es sei denn,
// über logische änderungen
tb.tablestyle = db.tablestyle;
andere
tb.tablestyle = tsid;
// ein 2-dimensionales array erstellen
// unserer tabelleninhalte
string[,] st = neuer String[6, 3];
streifen[0, 0] = "materialeigenschaftentabelle";
streifen[1, 0] = "teil nein".
streifen[1, 1] = "name";
streifen[1, 2] = "Material";
streifen[2, 0] "1876-1";
Stärke[2, 1] = "flansch";
größe[2, 2] "Perspex";
Stärke[3, 0] 0985-4.
Stärke[3, 1] = "bolzen"
größe[3, 2] = "stahl";
streifen[4, 0] = "3476-k".
str.[4, 1] = "fliessend";
streifen[4, 2] = "Keramik"
streifen[5, 0] "8734-3";
Stärke[5, 1] = "kee";
die Polizei[5, 2] = "meist wasser";
// verwenden sie eine geschachtelte schleife, um jede zelle hinzuzufügen und zu formatieren
für (int i = 0; i < 6; i++)
{\chffff}
(i ==) 0)
{\chffff}
// das ist der titel
tb.settextheight(0, 0, 1);
tb.settextstring(0, 0, str[0, 0];
tb.setalignment(0, 0, cellalignment.middlecenter);
}
andere
{\chffff}
// dies sind die header und datenzeilen
für (int j = 0; j < 3; j++)
{\chffff}
tb.settextheight(i, j, 1);
tb.settextstring(i, j, str[i, j];
tb.setalignment(i, j, cellalignment.middlecenter);
}
}
}
tb.generatelayout();
Blocktablerecord btr =
(blocktablerecord)tr.getobject(
b)[BlockTableRecord.ModelSpace],
openmode. für schreibmaschinen
;
btr.appendentity(tb)
tr.addnewcreateddbobject(tb, true);
tr.commit();
}
}
}
}
}
open microsoft visual c# e. e. e. in "neues projekt" wählen sie "bibliothek".
auf dem bildschirm, der in der registerkarte erscheint klasse1 löschen sie diesen voreingestellten codeteil und fügen sie stattdessen den für unser dienstprogramm benötigten code ein (beunruhigen sie sich nicht, wenn fehler im moment gemeldet werden).
im menü "projekt" -> Option "referenz- > Tab "Browse" fügen sie diese beiden autocad dlls als referenzdatei hinzu:
acdbmgd.dll
acmgd.dllsie finden im hauptverzeichnis von autocad selbst. zu beachten, dass je nach dem geschriebenen dienstprogramm häufig andere arten von referenzdateien hinzugefügt werden.
sie werden feststellen, dass fehler, die nach dem kopieren des codes gemeldet wurden, jetzt verschwunden sind. sie können zu diesem punkt fortfahren, um den code unter dem menü zu kompilieren "zusammenstellung".
rette alles. der kompilierte code wird standardmäßig im unterordner gespeichert bin\release\ des projekts. sie können den pfad oder die ansicht ändern, wo er durch die registerkarte gespeichert wird "zusammenstellung"name der immobilie" unter dem menü "projekt".
im ordner bin\release (oder anderen satz von ihnen) finden sie neben anderen dlls, die uns nicht interessieren, den dateinamenprogetto.dll. letzteres ist die frucht unserer compilation, die datei unseres dienstprogramms.
an diesem punkt sehen wir, wie es zu verwenden, da diese dll utilities nicht in autocad mit einfachem drag innerhalb des zeichnungsfensters arbeiten.
immer in den neuesten versionen von autocad wurde der befehl eingefügt nettogewicht die dient nur zum laden von dll utilities erstellt auf .net plattform.
siehe hier:
http://www.cadforum.cz/cadforum_en/qaid.asp?tip=5863hochgeladen unser dienstprogramm mit netload, mit dem ctws-befehl (zum dienstprogramm im code zugewiesen) können wir eine benutzerdefinierte tabelle einfügen.
so können wir unser erstes dienstprogramm in c# verwenden.
ps: die "programmierer" ich hoffe, mir irgendwelche ungenauigkeiten oder auslassungen vergeben!
Zuletzt bearbeitet: