| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: VB.net langsamer als VBA (1786 / mal gelesen)
|
Ticky72 Mitglied
Beiträge: 35 Registriert: 17.02.2016 HP Z440: E5-1630v3, 16GB RAM,Quadro K2200 Inventor Prof. 2016 Win7 64Bit
|
erstellt am: 05. Feb. 2019 15:20 <-- editieren / zitieren --> Unities abgeben:
Hallo, seit einiger Zeit mache ich kleinere Projekte mit VBA in Inventor. Mit der Umstellung auf Inventor 2019 habe ich nun versucht eines dieser Projekte in VB.net (Visual Studio 2017) umzusetzen. Ich habe dabei eigentlich nur den Code von VBA genommen und die Syntax an VB.net angepasst. Dabei habe ich nun festgestellt, dass VB.net die Aufgaben in Inventor wesentlich langsamer abarbeitet als VBA. Folgendes Codeschnipsel soll mal als Beispiel dienen:
Code:
'Radius bemaßen_______________________________________________________________________ lb.Items.Add("Hauptansicht Radien bemaßen") Dim oDrawCurve As DrawingCurve Dim iI As Integer Dim oObject As Object Dim oObjectlist As ObjectCollection oObjectlist = _invApp.TransientObjects.CreateObjectCollection Dim oCurveIntent As GeometryIntent For Each oDrawCurve In oFrontView.DrawingCurves If oDrawCurve.ModelGeometry.CurveType = CurveTypeEnum.kCircleCurve Then Dim dDM As Double dDM = Math.Round(oDrawCurve.ModelGeometry.Evaluator.rangeBox.MaxPoint.X - oDrawCurve.ModelGeometry.Evaluator.rangeBox.MinPoint.X, 4) If dDM = 0.5 Then oCurveIntent = oSheet.CreateGeometryIntent(oDrawCurve) Exit For End If End If Next Dim oITTRad As GeometryIntent oITTRad = oSheet.CreateGeometryIntent(oCurveIntent.Geometry.CenterPoint, Inventor.IntentTypeEnum.kPoint2dIntent) oTextPoint.X = (oITTRad.PointOnSheet.X) - 1 oTextPoint.Y = (oITTRad.PointOnSheet.Y) - 1.5 Call oSheet.DrawingDimensions.GeneralDimensions.AddRadius(oTextPoint, oCurveIntent, False)
In VBA dauert dieser Abschnitt den Bruchteil einer Sekunde, während ich im VB.net Projekt mehrere Sekunden auf eine Rückmeldung warten muß (Ich lasse mir dabei mit lb.Items.Add den Ablaufstatus in einer Listbox anzeigen.) Was muss ich beachten, dass VB.net-Code genauso schnell wie VBA-Code in Inventor abgearbeitet wird? Vielen Dank für eure Hilfe Helmut Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bwr Mitglied Konstrukteur
Beiträge: 139 Registriert: 21.02.2007
|
erstellt am: 06. Feb. 2019 07:43 <-- editieren / zitieren --> Unities abgeben: Nur für Ticky72
|
Ticky72 Mitglied
Beiträge: 35 Registriert: 17.02.2016 HP Z440: E5-1630v3, 16GB RAM,Quadro K2200 Inventor Prof. 2016 Win7 64Bit
|
erstellt am: 06. Feb. 2019 09:22 <-- editieren / zitieren --> Unities abgeben:
|
KraBBy Mitglied Maschinenbau-Ingenieur
Beiträge: 721 Registriert: 19.09.2007
|
erstellt am: 06. Feb. 2019 13:14 <-- editieren / zitieren --> Unities abgeben: Nur für Ticky72
|
SKYSURFER Mitglied Maschinenbautechniker
Beiträge: 361 Registriert: 27.08.2004 office: Dell T3500: Xeon W3670 3,2GHz Samsung SSD 256GB Sata: 500GB FX4000 - 2GB IV 2012 SP2 Update3 Vault 2012 SP2
|
erstellt am: 06. Feb. 2019 14:05 <-- editieren / zitieren --> Unities abgeben: Nur für Ticky72
|
Ticky72 Mitglied
Beiträge: 35 Registriert: 17.02.2016 HP Z440: E5-1630v3, 16GB RAM,Quadro K2200 Inventor Prof. 2016 Win7 64Bit
|
erstellt am: 07. Feb. 2019 10:33 <-- editieren / zitieren --> Unities abgeben:
|
Polymorph Mitglied
Beiträge: 71 Registriert: 14.05.2009
|
erstellt am: 05. Okt. 2019 16:28 <-- editieren / zitieren --> Unities abgeben: Nur für Ticky72
|