Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Benutzerinteraktion -> Programmablauf anhalten um Linie zeichnen zu lassen

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
Autor Thema:  Benutzerinteraktion -> Programmablauf anhalten um Linie zeichnen zu lassen (1090 mal gelesen)
sebastian.
Mitglied



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

Beiträge: 90
Registriert: 03.09.2009

Windows XP Prof. SP3
AutoCAD 2010
Visual Studio 2008 / 2010 Prof.

erstellt am: 27. Nov. 2009 11:28    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 mal wieder!

Es gibt ja die Möglichkeit über Methoden des Editor Objekts, wie ed.GetPoint(), seinen Programmablauf kurz anzuhalten und Benutzerinteraktion zu ermöglichen.

Gibt es auch eine Möglichkeit, den Programmablauf kurz zu unterbrechen, bis der Benutzer eine Linie gezeichnet hat?

Danke und Grüße, Sebastian

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


Ex-Mitglied

erstellt am: 27. Nov. 2009 11:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Gibt es auch eine Möglichkeit, den Programmablauf kurz zu unterbrechen,
>> bis der Benutzer eine Linie gezeichnet hat

Im wahrsten Sinne des Wortes 'kurz unterbrechen' ==> NEIN

Du kannst Deinen Code aufteilen in:

a) eine SUB/FUNCTION: alles machen vor dem Start Linie zeichnen + Start des Linienzeichnens über SendCommand
b) in obiger Sub erzeugst Du einen EventHandler, der auf COMMANDENDED hört
---dann wartet dein Programm (der EventHandler), bis der Anwender den Linienbefehl beendet hat
c) und aus dem EventHandler heraus kann Dein Programm dann gezielt weiterarbeiten

HTH, - alfred -

------------------
www.hollaus.at

sebastian.
Mitglied



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

Beiträge: 90
Registriert: 03.09.2009

Windows XP Prof. SP3
AutoCAD 2010
Visual Studio 2008 / 2010 Prof.

erstellt am: 27. Nov. 2009 11:53    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

Hi Alfred,

schade, dass es nicht so komfortabel geht, wie bei GetPoint() z.B. 

Zitat:
Start des Linienzeichnens über SendCommand

Wie mache ich das?

Der Rest ist dann eigentlich klar.

Viele Grüße, Sebastian

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


Ex-Mitglied

erstellt am: 27. Nov. 2009 12:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

wenn's wirklich um eine Linie geht, kannst Du aber auch den User nach 2 Punkten fragen und dann selbst die Linie zeichnen? Wäre zumindest mein Ansatz, ausser es geht auch noch um andere Zeichnungsfunktionen.

>> Start des Linienzeichnens über SendCommand ... Wie mache ich das?

entweder so (gilt für 32bit, die 64bit Einsprungadressen sind andere)

Code:
<DllImport("acad.exe", CallingConvention:=CallingConvention.Cdecl, CharSet:=CharSet.Unicode, EntryPoint:="?acedPostCommand@@YAHPB_W@Z")> _
Public Function acedPostCommand32(ByVal CommandStr As String) As Integer
End Function
....
Call acedPostCommand32("_.LINE" & vbCr)

oder über COM, da geht's ja nicht um Geschwindigkeit, da der Computer dann eh auf den Anwender wartet (der Prozessor dann intern Solitär spielt;) )

Code:
Dim tAcadDoc as ApplicationServices.Document
tAcadDoc = ApplicationServices.Application.DocumentManager.MdiActiveDocument
Dim tAcadDocCOM as Interop.IAcadDocument
tAcadDocCOM = cType(tAcadDoc.AcadDocument, Interop.IAcadDocument)
Call tAcadDocCOM.SendCommand("_.LINE" & vbCr)

HTH, - alfred -

------------------
www.hollaus.at

sebastian.
Mitglied



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

Beiträge: 90
Registriert: 03.09.2009

Windows XP Prof. SP3
AutoCAD 2010
Visual Studio 2008 / 2010 Prof.

erstellt am: 27. Nov. 2009 12:26    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

Hi,

Im Moment geht es wirklich nur um eine Linie. Vielleicht ist an dieser Stelle daher der Ansatz mit den 2 Punkten ausreichend. Später kann ich die SendCommand Methode, v.a. die COM Version aber sicher noch brauchen  !

Vielen Dank nochmal für die Infos!

Grüße und einen schönen Tag, Sebastian

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)2023 CAD.de | Impressum | Datenschutz