| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY Technologies Quadro auf der Hannovermesse 31.03.-04.04.2025 | Hall 17, Stand F16, eine Veranstaltung am 31.03.2025
|
Autor
|
Thema: Block einfügen - Benutzereingabe ist ein Schlüsselwort soll weg (2268 mal gelesen)
|
Feyza Mitglied
  
 Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2017 - Oracle Client 10.2
|
erstellt am: 24. Nov. 2009 14:11 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen, ich hoffe Ihr könnt mir hier weiterhelfen: In AutoCAD Mechanical 2008 habe ich ein VBA Script, wo mir ein Block aus einer Datei, die ich mir in einer Listbox aufliste einfügen soll: Me.Hide Dim einfuege As Variant Dim name As String Dim blockref As AcadBlockReference Dim importfile As String importfile = List1 On Error GoTo errorhndl name = lblFileNameBox einfuege = ThisDrawing.Utility.GetPoint(, "Bitte den Einfügepunkt für Block " & " wählen") Set blockref = ThisDrawing.ModelSpace.InsertBlock(einfuege, importfile, 1, 1, 1, 0) errorhndl: If Err.Number = "-2145386445" Then Set blockref = ThisDrawing.ModelSpace.InsertBlock(einfuege, importfile, 1, 1, 1, 0) Else MsgBox (Err.Description) End If Me.Show Führe ich diesen VBA-Script aus, wähle die Datei in der Listbox und möchte diese einfügen, kommt zuerst die Meldung "Benutzereingabe ist ein Schlüsselwort" klicke dann auf OK, dann wieder einfügen, der Block wird eingefügt, dann kommt ein Mgsbox, die leer ist. Der Block ist zwar in der Zeichnung drinnen, aber wie bekomme ich die Meldungen weg? Danke für jede Unterstützung ------------------ Schöne Grüße Feyza : ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 24. Nov. 2009 14:19 <-- editieren / zitieren -->
Hi, ohne Form dahinter kann ich mal nicht erkennen, wo's hakt. Was aber ein Unsicherheitsfaktor ist, Du verläßt Dich auf 'Default'-Eigenschaften von Form-Controls und ob die das retournieren, was Du wünscht? Z.B. importfile = List1 Wir sehen hier nicht, was 'List1' ist, sollte es eine Listbox sein, dann klick diese mal in Deinem Form-Designer an, dann schau in die Eigenschaften, wie viele Eigenschaften diese Listbox hat! Daraus zu schliessen, dass nach Ablauf Deines Codes in der Variable <importfile> dann aus den vielen Eigenschaften gerade der Textwert des selektierten Items steht, ist mutig! Mach mal in Einzelschritten den Ablauf des Codes durch und schau Dir nach jedem Schritt die Werte der jeweils gesetzten Variablen an, ob die mit dem übereinstimmen, was Du Dir vorstellst. Für mehr Inputs habe ich von Dir leider zu wenig Output. - alfred - ------------------ www.hollaus.at |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 24. Nov. 2009 14:47 <-- editieren / zitieren --> Unities abgeben:          Nur für Feyza
|
Feyza Mitglied
  
 Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2017 - Oracle Client 10.2
|
erstellt am: 25. Nov. 2009 08:14 <-- editieren / zitieren --> Unities abgeben:         
@a.n. Guten Morgen alfred, danke Dir für die Antwort. Wenn ich in der Listbox die Datei anklicke, tut er mir auch die richtige Datei einfügen. Ich habe das VBA-Script mit angehängt. Vielleicht sieht man hier mehr : ) @startrek Guten Morgen nancy, Danke auch die für deine Anwtort. leider hat das umbennen von "name" nichts gebracht : )
------------------ Schöne Grüße Feyza : ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 25. Nov. 2009 13:01 <-- editieren / zitieren -->
Hi, 'List1' verweist auf ein Element der Bibliothek 'F3Dynamic' (die ich natürlich nicht habe ) Wenn ich mal den Code soweit modifiziere, dass ich mit bekannten Werten arbeite, dann funktioniert das ganze.
Code: Private Sub cmdEinfügen_Click()'Me.Hide Dim einfuege As Variant 'Dim name_01 As String Dim blockref As AcadBlockReference Dim importfile As String importfile = "C:\TEMP\OoC_OEKK_TestObjects_AN03.dwg" On Error GoTo errorhndl 'name_01 = lblFileNameBox einfuege = ThisDrawing.Utility.GetPoint(, "Bitte den Einfügepunkt für Block " & " wählen") Set blockref = ThisDrawing.ModelSpace.InsertBlock(einfuege, importfile, 1, 1, 1, 0) errorhndl: If Err.Number = "-2145386445" Then Set blockref = ThisDrawing.ModelSpace.InsertBlock(einfuege, importfile, 1, 1, 1, 0) Else MsgBox ("123" & Err.Description) End If 'Me.Show End Sub
Sprich alles Form-basierende raus ('Me.Show' und 'Me.Hide'), dann die Variable 'Name_01' raus, wird ja nicht verwendet; und zuletzt noch der Variablen 'importfile' einen bei mir existierenden Dateinamen verpasst (weil ich ja keinen Zugriff auf Dein 'list1' hab und schon funkt alles wie gewünscht. Sorry, mangels Möglichkeit Dein Problem zu reproduzieren bin ich (ohne weitere Info's) leider mal raus. - alfred -
------------------ www.hollaus.at |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 25. Nov. 2009 16:41 <-- editieren / zitieren --> Unities abgeben:          Nur für Feyza
Dieser 'Schlüsselwortfehler' irritiert mich, versuche mal noch das Filename zu ändern, auch wenn's evtl. nix bringen sollte, kein netter Variablenname ;-) Code: Private Sub List1_Click() cmdEinfügen.Enabled = True [...] Dim FileLen As Integer Dim FileName As String [...] FileName = List1 ' Dateinamen aus kompletten Pfad rauslesen lblFileNameBox.Caption = " " & FileName Call PaintPreview(List1) End Sub
lg Nancy [trekkedi: auf relev. Codeparts gekürzt und noch ein Link hinterher, allerdings gehts da um Getpoint, in wiefern eine falsche Benutzereingabe in einer UF mit Listbox diesen Fehler erzeugen könnte, weiss ich nur auch nicht: http://www.foren.industrie24.com/read.php?5,18542,18542#msg-18542 [/trekkedi]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |