Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  autocad 2004 getpoint-befehl (vba)

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  autocad 2004 getpoint-befehl (vba) (1727 mal gelesen)
jobau
Mitglied
Bauingenieur


Sehen Sie sich das Profil von jobau an!   Senden Sie eine Private Message an jobau  Schreiben Sie einen Gästebucheintrag für jobau

Beiträge: 209
Registriert: 21.01.2003

erstellt am: 02. Okt. 2003 08:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hallo zusammen,
ich hab seit kurzem autocad 2004 auf arbeit. untenstehender vba-code (ausschnitt)
hat bis jetzt unter 2000 und 2002 problemlos funktioniert. aber unter 2004 bricht
das programm bei der letzten (aufgeführten) zeile ab. kann mit einer sagen warum?
als fehlermeldung kommt:
laufzeitfehler '-2145320928 (80210020)'
benutzereingabe ist ein schlüsselwort


den returnpnt-befehl benutze ich auch in anderen makros, da funktioniert er weiterhin
auch unter 2004 ??? bin ratlos und dankbar für jede hilfe...
gruß jörg

Private Sub CommandButton2_Click()
Dim lineObj1 As AcadLine
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
Dim returnPnt As Variant
Dim farbe1 As Variant
Dim farbe2 As Variant

Dim textObj As AcadText
Dim textString As String
Dim height As Double
Dim insertionPoint(0 To 2) As Double
Dim STEMPEL As AcadLayer
Dim basePoint(0 To 2) As Double
Dim rotationAngle As Double

Set STEMPEL = ThisDrawing.Layers.Add("STEMPEL")
ThisDrawing.ActiveLayer = STEMPEL

breite = (TextBox1)
höhe = (TextBox2)
f = (TextBox3)
If Val(f) < 100 Then
'MsgBox (Val(f))
f = Val(TextBox3 * 100)
End If
If Val(TextBox3) < 500 Then
farbe1 = 2
Else
farbe1 = 1
End If

If Val(TextBox3) = 1000 Then
farbe1 = 5
End If

farbe2 = 3

dx = Val(breite) * Val(f) / 1000
dy = Val(höhe) * Val(f) / 1000
'MsgBox (dx & "/" & dy)
'ZoomAll
Unload Me
    MsgBox ("Bitte Ecke unten-links auswählen ")
    returnPnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ")
   

------------------
AutoCAD 2002 DEU

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Karsten HST
Mitglied
Bauingenieur


Sehen Sie sich das Profil von Karsten HST an!   Senden Sie eine Private Message an Karsten HST  Schreiben Sie einen Gästebucheintrag für Karsten HST

Beiträge: 54
Registriert: 22.04.2003

erstellt am: 02. Okt. 2003 08:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jobau 10 Unities + Antwort hilfreich

Der "Fehler" Benutzereingabe ist ein Schlüsselwort sollte eigentlich nur auftauchen, wenn Du Erstens die Benutzereingabe initialisiert hast und zweitens der Benutzer auch eine Eingabe (außer der Auswahl des Punktes in der Zeichnung) getätigt hat. Um den Abbruch des Programmes zu unterdrücken, mußt Du die Zeile On Error Resume Next Deinem Code voranstellen. In diesem Fall wird der Code dann in der nächsten Zeile fortgesetzt. Danach stellt sich dann nur die Frage, ob die Funktion GetPoint eine gewählte Koordinate zurückgibt.

Private Sub CommandButton2_Click()
On Error Resume Next
Dim lineObj1 As AcadLine
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
Dim returnPnt As Variant
Dim farbe1 As Variant
Dim farbe2 As Variant

Dim textObj As AcadText
Dim textString As String
Dim height As Double
Dim insertionPoint(0 To 2) As Double
Dim STEMPEL As AcadLayer
Dim basePoint(0 To 2) As Double
Dim rotationAngle As Double

Set STEMPEL = ThisDrawing.Layers.Add("STEMPEL")
ThisDrawing.ActiveLayer = STEMPEL

breite = (TextBox1)
höhe = (TextBox2)
f = (TextBox3)
If Val(f) < 100 Then
'MsgBox (Val(f))
f = Val(TextBox3 * 100)
End If
If Val(TextBox3) < 500 Then
farbe1 = 2
Else
farbe1 = 1
End If

If Val(TextBox3) = 1000 Then
farbe1 = 5
End If

farbe2 = 3

dx = Val(breite) * Val(f) / 1000
dy = Val(höhe) * Val(f) / 1000
'MsgBox (dx & "/" & dy)
'ZoomAll
Unload Me
    MsgBox ("Bitte Ecke unten-links auswählen ")
    returnPnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ")
   

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jobau
Mitglied
Bauingenieur


Sehen Sie sich das Profil von jobau an!   Senden Sie eine Private Message an jobau  Schreiben Sie einen Gästebucheintrag für jobau

Beiträge: 209
Registriert: 21.01.2003

erstellt am: 02. Okt. 2003 09:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hallo karsten,
schonmal danke für deine hilfe! dadurch, dass der befehl übersprungen
wird, läuft das programm jetzt wenigstens bis zum ende, wobei das
objekt im ursprung gezeichnet wird. aber warum es in der 2002er version klappt und der befehl in ähnlichen makros auch unter 2004 läuft, verstehe ich immer noch nicht...
gruß jörg

------------------
AutoCAD 2002 DEU

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


Sehen Sie sich das Profil von fuchsi an!   Senden Sie eine Private Message an fuchsi  Schreiben Sie einen Gästebucheintrag für fuchsi

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 16. Okt. 2003 16:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jobau 10 Unities + Antwort hilfreich

komisch

hab mal deinen code bei mir ins acad2004 kopiert, und bei mir funktioniert er so wie er soll
getpoint punkt wird einegegebn, und richtig an die variable übergeben.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz