| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: VBA-Code zu VB.Net (1311 mal gelesen)
|
Billii Mitglied
Beiträge: 92 Registriert: 05.05.2007 AutoCAD 2010 Inventor Professional 2010
|
erstellt am: 31. Jan. 2011 17:56 <-- editieren / zitieren --> Unities abgeben:
Hallo, kann bitte jemand versuchen, den folgenden VBA-Code nach VB.Net zu übersetzen. Es gibt da ein Problem mit dem Datentyp. In VB.Net gibt es kein "Variant" (oder?). Wenn ich "String" nehme kommt der Fehler eine Zeile tiefer. In VBA funzt es. Es werden alle Polylinien selektiert.
Code:
Public Class Class1 <Autodesk.AutoCAD.Runtime.CommandMethod("flaechen")> _ Public Sub Flaechen() ... Dim ss As AcadSelectionSet Dim dataValue(0) As Variant 'Element, das selektiert wird Dim gpCode(0) As Integer 'Filtertyp ... ss = ThisDrawing.SelectionSets.Add("Selektion") dataValue(0) = "*Polylinie" 'Fehler wg. Datentyp ss.Select(AcSelect.acSelectionSetAll, , , gpCode, dataValue)... End Sub End Class
vielen Dank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 20xx, Civil 3D 201x, Inventor Prof 201x usw.
|
erstellt am: 31. Jan. 2011 18:28 <-- editieren / zitieren --> Unities abgeben: Nur für Billii
|
Billii Mitglied
Beiträge: 92 Registriert: 05.05.2007 AutoCAD 2010 Inventor Professional 2010
|
erstellt am: 31. Jan. 2011 19:42 <-- editieren / zitieren --> Unities abgeben:
Hallo Udo, der Link ist schon mal interessant aber: Fehlermeldung: Der Typ "TypedValue" ist nicht definiert. Hätte ich erwähnen sollen, dass ich "Express" verwende? Oder gilt der Code erst ab Acad 2011? Oder muss ich noch irgendwas referenzieren? Bisher importiere ich nur AutoCAD.Interop und AutoCAD.Interop.Common Leider funktioniert auch meine Hilfe nicht, da der Download immer mit "Ausnahmefehler" abbricht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 31. Jan. 2011 19:54 <-- editieren / zitieren -->
HI, >> Bisher importiere ich nur AutoCAD.Interop und AutoCAD.Interop.Common Reicht nicht, Du hast auch noch AcDbMgd.dll und AcMgd.dll zu den Referenzen hinzuzufügen (beide im AutoCAD-Installationsverzeichnis zu finden, bitte gleich beim Referenzieren 'Local Copy' auf NEIN setzen). - alfred - ------------------ www.hollaus.at |
Billii Mitglied
Beiträge: 92 Registriert: 05.05.2007 AutoCAD 2010 Inventor Professional 2010
|
erstellt am: 31. Jan. 2011 20:25 <-- editieren / zitieren --> Unities abgeben:
Hi Alfred, die hab ich auch. Und dann noch, wie im Link von Udo:
Code: Imports Autodesk.AutoCAD.DatabaseServicesImports Autodesk.AutoCAD.EditorInput
und die Fehlermeldung ist weg. Brauche ich nur noch eine Methode um alle Elemente (entsprechend dem Filter) zu wählen (ohne klicken). Muss mann denn hier wirklich alles neu lernen? Ächz! Hatte ich mir eigentlich anders vorgestellt. Hat jemand noch einen Tip wegen der Hilfedateien? Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 31. Jan. 2011 20:49 <-- editieren / zitieren -->
Hi, >> Muss mann denn hier wirklich alles neu lernen? Ächz! Nein, musst Du nicht, Du kannst Dich entscheiden, ob Du COM-basierend programmierst (ähnlicher zu VBA, dafür wesentlich langsamer) oder eben die Managed-API verwendest (neue Methoden und Zugriffe sind hier zu lernen, dafür um Faktoren schneller). - alfred - ------------------ www.hollaus.at |
Billii Mitglied
Beiträge: 92 Registriert: 05.05.2007 AutoCAD 2010 Inventor Professional 2010
|
erstellt am: 31. Jan. 2011 22:11 <-- editieren / zitieren --> Unities abgeben:
|