| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
Autor
|
Thema: VB und VBA, ich brauch mal hilfe!!! (502 mal gelesen)
|
amg13 Mitglied
Beiträge: 942 Registriert: 20.12.2002 Aktuell: FSC R550 2x Xeon X5450 QuadCore 8GB RAM Nvidia FX4800 Dell Precision M6300 Solid Edge ST3 NX 7.5 Solid Works 2010 Pro/E Das war einmal: HP Workstation >80x SolidEdge V19 (Classic & Foundation) 14x SMAP3D Piping/Partfinder
|
erstellt am: 11. Mai. 2004 19:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, bisher ging alles gut. Nur heute stadn ich vor einem problem was mir etwas zu denken gibt. Ich schreibe meine kleinen Progrämmchen in VBA und kompiliere sie später mit VB zu einer exe. Vor kurzem habt ihr mir geholfen die Drawingview auszulesen. Durch eure Tips ist dann folgendes Entstanden: Sub SetDV() 'get the selected drawing view and set "SelectedDV" If GetSelectedDV(objDoc, objDV) Then SelectedDV = objDV.Name End If If SelectedDV = "" Then MsgBox "No drawing view selected. Select a drawing view and run the macro again." End End If End Sub 'this Function returns the selcted drawing view Function GetSelectedDV(ByVal objDft As Object, ByRef objDW As Object) As Boolean On Error GoTo ErrorHandler If objDft.SelectSet.Count <> 1 Then Exit Function If objDft.SelectSet(1).Type = igDrawingView Then Set objDW = objDft.SelectSet(1) GetSelectedDV = True End If ErrorHandler: End Function Nun zu meinem Problem: In VBA bekomme ich in SelectedDV die aktuelle, gewählte Drawing view zurück (muss vor dem Programmstart markiert sein) Starte ich das ganze aus VB Studio 6 bekomme ich keinen Wert zurück. Obwohl eine Drawingview in SE gehighlighted ist. Hat jemand eine Idee? Ich bin kein profi im programmieren. cya AMG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7321 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 11. Mai. 2004 20:48 <-- editieren / zitieren --> Unities abgeben: Nur für amg13
So sollte es gehen. Ich hab das zwar nur als Main() gemacht. Aber als Funktion müsste es auch gehen. Gewählt werden dar nur eine einzelne Zeichnungsansicht. Ist es wie gewünscht? ******************* Dim objApp As SolidEdgeFramework.Application Dim objDocDraft As SolidEdgeDraft.DraftDocument Dim objView As SolidEdgeDraft.DrawingView Private Sub main() Set objApp = GetObject(, "SolidEdge.Application") If objApp.ActiveDocument.Type = igDraftDocument Then Set objDocDraft = objApp.ActiveDocument Else Exit Sub End If Select Case objDocDraft.SelectSet.Count Case 0 MsgBox "Selectset empty. Please select one DrawingView." Case 1 If objDocDraft.SelectSet(1).Type = igDrawingView Then '1298446368 Set objView = objDocDraft.SelectSet(1) MsgBox "Ich bin drin" & Chr(13) & Chr(13) & "Name= " & objView.Name Else MsgBox "Selected Object is not a Drawing View." End If Case Else MsgBox "Selectset contains more than 1 Element. Please select one DrawingView." End Select End Sub ------------------ APeters@BSS-Online.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
amg13 Mitglied
Beiträge: 942 Registriert: 20.12.2002 Aktuell: FSC R550 2x Xeon X5450 QuadCore 8GB RAM Nvidia FX4800 Dell Precision M6300 Solid Edge ST3 NX 7.5 Solid Works 2010 Pro/E Das war einmal: HP Workstation >80x SolidEdge V19 (Classic & Foundation) 14x SMAP3D Piping/Partfinder
|
erstellt am: 12. Mai. 2004 11:40 <-- editieren / zitieren --> Unities abgeben:
Hallo, also ich versteh das wirklich nicht. Ich hab jetzt die Funtion aufgelöstund im Sub integriert. In VBA funktionierts, in VB bekomme ich einfach keine Drawingview zurück. Eine Idee Warum???? cya AMG
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 12. Mai. 2004 13:00 <-- editieren / zitieren --> Unities abgeben: Nur für amg13
hmm, VBA ist ja nur ein Subset von VB und laeuft z.T. etwas anders. Es koennte also durchaus sein, das das Coding in VB einen Fehler erzeugt *und* noch ein 'On error resume next' wirksam ist -- dann wird der Fehler ja schlicht und ergreifend ignoriert. War nur mal so 'ne Idee ... Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
Beiträge: 453 Registriert: 23.01.2002 Win10 Office 365 SE 2019
|
erstellt am: 12. Mai. 2004 13:31 <-- editieren / zitieren --> Unities abgeben: Nur für amg13
Hallo amg13, meines Wissens gibt es bezüglich des SolidEdge.Application Objects keinen Unterschied zwischen VB und VBA, hast du dein objDoc in VB überprüft? Wie sieht es mit Option Explicit aus? pablo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
amg13 Mitglied
Beiträge: 942 Registriert: 20.12.2002 Aktuell: FSC R550 2x Xeon X5450 QuadCore 8GB RAM Nvidia FX4800 Dell Precision M6300 Solid Edge ST3 NX 7.5 Solid Works 2010 Pro/E Das war einmal: HP Workstation >80x SolidEdge V19 (Classic & Foundation) 14x SMAP3D Piping/Partfinder
|
erstellt am: 12. Mai. 2004 13:32 <-- editieren / zitieren --> Unities abgeben:
|
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 12. Mai. 2004 14:11 <-- editieren / zitieren --> Unities abgeben: Nur für amg13
|
amg13 Mitglied
Beiträge: 942 Registriert: 20.12.2002 Aktuell: FSC R550 2x Xeon X5450 QuadCore 8GB RAM Nvidia FX4800 Dell Precision M6300 Solid Edge ST3 NX 7.5 Solid Works 2010 Pro/E Das war einmal: HP Workstation >80x SolidEdge V19 (Classic & Foundation) 14x SMAP3D Piping/Partfinder
|
erstellt am: 12. Mai. 2004 14:25 <-- editieren / zitieren --> Unities abgeben:
hi, also nun dreh zweifle ich echt! Kannst Du mir das Exe zukommen lassen :-) Hier einmal das EXE das ich mit unserem VB Studio 6. erzeugt habe. Probier doch mal bitte aus ob das bei Dir funktioniert (Option3) Danke, AMG
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 12. Mai. 2004 14:32 <-- editieren / zitieren --> Unities abgeben: Nur für amg13
hast Du an das Setzen der Project Properties in VB gedacht? sonst laeuft naemlich nix Die SE Constants sollten auch gesetzt sein Klaus [Diese Nachricht wurde von modeng am 12. Mai. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
amg13 Mitglied
Beiträge: 942 Registriert: 20.12.2002 Aktuell: FSC R550 2x Xeon X5450 QuadCore 8GB RAM Nvidia FX4800 Dell Precision M6300 Solid Edge ST3 NX 7.5 Solid Works 2010 Pro/E Das war einmal: HP Workstation >80x SolidEdge V19 (Classic & Foundation) 14x SMAP3D Piping/Partfinder
|
erstellt am: 12. Mai. 2004 15:05 <-- editieren / zitieren --> Unities abgeben:
|
amg13 Mitglied
Beiträge: 942 Registriert: 20.12.2002 Aktuell: FSC R550 2x Xeon X5450 QuadCore 8GB RAM Nvidia FX4800 Dell Precision M6300 Solid Edge ST3 NX 7.5 Solid Works 2010 Pro/E Das war einmal: HP Workstation >80x SolidEdge V19 (Classic & Foundation) 14x SMAP3D Piping/Partfinder
|
erstellt am: 13. Mai. 2004 10:04 <-- editieren / zitieren --> Unities abgeben:
Eine kleine frage hab ich noch. Wenn ich das programm ausführe (es macht das was es soll) und ich schau in den Taskmanager gibt es selbst nach beenden von SE einen Prozess der Killballoon.e (nicht exe sondern nur*.e) heißt. muss ich noch ne zeile einabuen damit der prozess auch verschwindet? cya AMG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 13. Mai. 2004 16:39 <-- editieren / zitieren --> Unities abgeben: Nur für amg13
irgendwo in dem Coding hiess es Kill_Balloon.Hide und sicher ist das Window noch aktiv es wird also so sein, dass noch auf das Beenden dieser Form gewartet wird ergo vor dem VB command END sollte noch ein unload Kill_Balloon kommen. Die Logik des KillBallon ist etwas gewoehungsbeduerftig ... Klaus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
amg13 Mitglied
Beiträge: 942 Registriert: 20.12.2002 Aktuell: FSC R550 2x Xeon X5450 QuadCore 8GB RAM Nvidia FX4800 Dell Precision M6300 Solid Edge ST3 NX 7.5 Solid Works 2010 Pro/E Das war einmal: HP Workstation >80x SolidEdge V19 (Classic & Foundation) 14x SMAP3D Piping/Partfinder
|
erstellt am: 13. Mai. 2004 22:13 <-- editieren / zitieren --> Unities abgeben:
|