Forum:AutoCAD ObjectARX und .NET
Thema:DRSICHT
Möchten Sie sich registrieren?
Wer darf antworten? Registrierte Benutzer können Beiträge verfassen.
Hinweise zur Registrierung Sie müssen registriert sein, um Beiträge oder Antworten auf Beiträge schreiben zu können.
Ihr Benutzername:
Ihr Kennwort:   Kennwort vergessen?
Anhang:    Datei(en) anhängen  <?>   Anhänge verwalten  <?>
Grafik für den Beitrag:                                                
                                                       
Ihre Antwort:

Fachbegriff
URL
Email
Fett
Kursiv
Durchgestr.
Liste
*
Bild
Zitat
Code

*HTML ist AUS
*UBB-Code ist AN
Smilies Legende
Netiquette

10 20 40

Optionen Smilies in diesem Beitrag deaktivieren.
Signatur anfügen: die Sie bei den Voreinstellungen angegeben haben.

Wenn Sie bereits registriert sind, aber Ihr Kennwort vergessen haben, klicken Sie bitte hier.

Bitte drücken Sie nicht mehrfach auf "Antwort speichern".

*Ist HTML- und/oder UBB-Code aktiviert, dann können Sie HTML und/oder UBB Code in Ihrem Beitrag verwenden.

T H E M A     A N S E H E N
bccad

Beiträge: 57 / 0

Hallo,

in meinem Programm gibt es einen Teil der nur richtig funktioniert
wenn das Koordinatensystem auf Welt eingestellt ist.
Also habe ich mir das aktuelle Koordinatensystem gemerkt, Welt
eingestellt, mein Programm laufen lassen und zum Schluss wieder
das akt. Koordinatensystem eingestellt.
Das klappt auch sehr gut. Was manchmal stört ist das danach
die Draufsicht auf Welt steht.
Dann muss ich den Befehl "DRSICHT <aktuelles BKS> Enter" ausführen.
Gibt es dafür einen entsprechenden Befehl im API ?
Hab es mit

Code:
doc.SendStringToExecute("._DRSICHT", True, False, False)

in allen Variationen ausprobiert, am Ende muss ich immer noch die Entertaste drücken.

Mfg bccad

Brischke

Beiträge: 4140 / 36

AutoCAD 20XX, defun-tools

füge ein Leerzeichen in den Commandaufruf ein, dann sollte es gehen.
Code:

doc.SendStringToExecute("._DRSICHT ", True, False, False)


Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


cadffm

Beiträge: 19793 / 1052

System: F1
und Google

Nur für den Fall der Unwissenheit:

Wenn das Programm wirklich nur das WKS benötigt(du nutzt also einen Autocad-Befehl oder bist zu Faul Koordinatenrückgaben von BKS zu WKS zu transformieren?)

Dann hat DRSICHT hier nichts verloren, denn das ändert die Ansicht und nicht das Koordinatensystem!?
Was auch immer du vorher machst und falls nur das WKS benötigt wird, setze das aktuelle BKS auf Welt und anschliessend zurück.

In Autocad wäre es der Befehl BKS/_UCS.

Mir ist nur der "Widerspruch" von BKS und DRSICHT aufgefallen,
aber vermutlich brauchst du wirklich eine WKS-lotrechte Ansicht.
(Dann wäre die Frage ob wirklich das BKS verstellt werden muss für dein Vorhaben  )

bccad

Beiträge: 57 / 0

Hallo cadffm,

Es geht darum das die Zeichnung für den Anwender auf dem Bildschirm unverändert aussieht. Das klappt aber nicht wenn ein BKS gesetzt und die Ansicht auf dieses BKS gedreht war.
Dann wird zwar das BKS wieder gesetzt aber die Ansicht nicht wieder original ausgerichtet.

@Holger: doc.SendStringToExecute("._DRSICHT ", True, False, False) geht leider nicht, er wartet immer noch auf ein Enter (Bestätigung aktuelles BKS)

Mfg bccad

Code:

Dim ucs As Matrix3d = ed.CurrentUserCoordinateSystem
ed.CurrentUserCoordinateSystem = Matrix3d.Identity

' Hier wird etwas im WKS ausgeführt

ed.CurrentUserCoordinateSystem = ucs
doc.SendStringToExecute("_DRSICHT ", True, False, False)


cadffm

Beiträge: 19793 / 1052

System: F1
und Google

Ich komme ja nicht aus der .net Ecke, aber sowohl deiner erster wie auch dein zweiter Versuch zum selben Ergebnis führt dann gibts da wohl eine ähnliche "unterdrücken" Funktion wie bei Menümacros.

In dem Fall Versuche zwei Leerzeichen oder einen Zeilenumbruch(oder zwei)
("_DRSICHT ")
("_DRSICHT\n")
am hübschesten wäre wenn der Syntax ("_DRSICHT\n\n") funktioniert, so sieht man jeder einzelne benötigte "enter"Anweisung eindeutig.

cadffm

Beiträge: 19793 / 1052

System: F1
und Google

Warum funktioniet denn "_DRSICHT" überhaupt? Ist das ein .net Special?
Immerhin gibt es diesen internationalen Befehl nicht!


entweder "DRSICHT" oder "_PLAN", vorzugsweise mit Punkt für die Originaldefinition("_.PLAN\n_current\n")

bccad

Beiträge: 57 / 0

Nach dem ich wirklich alle Varianten durchprobiert hatte habe
ich es mal so versucht:
Code:
doc.SendStringToExecute("DRSICHT" & vbCr & vbCr, True, False, False)

So funktioniert es. Trotzdem vielen Dank für eure Unterstützung.

bccad