Anfangs habe ich die Hände vorgebracht, die meine Ignoranz in dieser Angelegenheit bekennen.
eine Reihe von Erwägungen als Diskussionspunkt auflisten.
Die Idee, die ich gemacht habe, ist, dass mit vbnet Sie sehr ähnlich wie die vba arbeiten können, mit dem kleinen Unterschied, dass Objekte (durch das Verständnis von Linien, Strings etc.) sind "versteckt" in einer Struktur von matrioske, die unpoliert verlassen.
Ich möchte diesen Teil des Codes aussetzen:
Code:
autodesk.autocad.editorinput Einfuhr
autodesk.autocad.databaseservices importieren
autodesk.autocad.runtime Einfuhren
autodesk.autocad.geometry
autodesk.autocad.applicationservices
Import dbtransman = autodesk.autocad.databaseservices.transactionmanager
#1 am Anfang der Modul/Klasse eingefügt werden, die als Referenz auf die verschiedenen Sektoren (Namensraum) der Autocad-Bibliotheken als Referenz hochgeladen werden.
in dem Sinne, dass statt zu schreiben autodesk.autocad.databaseservices.database
wir können direkt schreiben
Datenbank, um dieses Objekt abzurufen.
mit vba waren wir daran gewöhnt, die Zeichnungsobjekte direkt aus dieser Zeichnung zu manövrieren. Modellraum, in vbnet ist wie am Würfel vermasselt.
Ich habe andere Verknüpfungen erstellt:
Code:
freund readonly Eigentum thisdraw() als Dokument
!
zurück docman.mdiactivedocument
Ende
Endbesitz
freund readonly property lockdoc() als documentlock
!
zurück thisdraw.lockdocument(documentlockmode.write, nichts, nichts, wahr)
Ende
Endbesitz
freund readonly property tr_start() als Transaktion
!
zurück zu diesemdrawing.transactionmanager.starttransaction
Ende
Endbesitz
freund readonly property thisdatabase() als Datenbank
!
zurückgeben. Datenbank
Ende
Endbesitz
freund readonly property docman() als Dokumentensammlung
!
autodesk.autocad.applicationservices.application.documentmanager
Ende
Endbesitz
freund readonly property edi() als Editor
!
zurückgeben. Herausgeber
Ende
Endbesitz
so haben Sie diese Zeichnung fast wie einmal.
hier kommt die Rede des Matrioske zu den Objekten:
Code:
Freund sub lineshow()
dim acdoc als Dokument = thisdraw
Verwendung von docloc als Dokumentenschloss = lockdoc
dim db als Datenbank = thisdatabase
Verwendung von tr als Transaktion = tr_start
mit Dikt als dbdictionary = tr.getobject(db.groupdictionaryid, openmode.forread, true)
für jeden Gp als Wörterbuch in Dikt
dim grp als Gruppe = ctype(tr.getobject(gp.value, openmode.forread), group)
dim myids() als objectid = grp.getallentityids()
für jede id als objektid in myids
Verwendung obj als Objekt = tr.getobject(id, openmode.forwrite)
Verwendung von myent als Entität = ctype(obj, Entität)
myent.visible = true
Ende mit
Ende mit
Nächste
Nächste
tr.commit()
Ende mit
Ende mit
Ende mit
Endteil
Diese kleine aber saftige Sub macht alle Objekte im aktuellen Modellraum sichtbar (ok,ok bevor wir sie versteckt haben... Tu nicht faul, es ist ein Beispiel.
Seien Sie vorsichtig, dass, bevor Sie einen Filter tun, so dass Sie nur auf Objekte handeln, die Teil einer Gruppe sind (Sie können diesen Teil umgehen, um auf alle Objekte zu handeln... )
Dies ist ein Beispiel, wie man an die Einheit (die Linie sein kann, Kreis usw. ändern nur ctype (obj, Entity) (Ich empfehle die Verwendung, wenn Art der Syntax (obj) ist Polyline dann .... um bestimmte Arten von Einheiten zu erhalten)
wenn es Fragen gibt, verfügbar.