| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: VB.net langsamer als VBA (1845 / 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: 736 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
|