Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Option Hintergrundfarbe

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:  Option Hintergrundfarbe (4284 mal gelesen)
sigy
Mitglied



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

Beiträge: 32
Registriert: 24.09.2004

Win XP P4 3GHz 1GB RAM
MDT6 SP4

erstellt am: 14. Sep. 2005 15:41    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,
Ich möchte einen Befehl erstellen, um die Anzeige-Fenster-Hintergrundfarbe von schwarz auf weiss mit einem Klick zu ändern. Leider komme ich mit dem Befehl "optionen" nicht weiter. Hat jemand eine Idee?

------------------
Konstruktive Grüße
sigy

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 14. Sep. 2005 15:44    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 sigy 10 Unities + Antwort hilfreich

(defun c:SWITCH_BACKCOLOR ( / ANZEIGE )
  (vl-load-com)
  (setq Anzeige(vla-get-Display(vla-get-Preferences(vla-get-application(vlax-get-acad-object)))))
  (if (= (vlax-variant-value(vlax-variant-change-type(vla-get-GraphicsWinModelBackgrndColor ANZEIGE) vlax-vbLong))0)
    (progn
      (vla-put-GraphicsWinModelBackgrndColor ANZEIGE 16777215)
      (princ "\n Hintergrund Modellbereich auf - weiß - gesetzt \n")
    )
    (progn
      (vla-put-GraphicsWinModelBackgrndColor ANZEIGE        0)
      (princ "\n Hintergrund Modellbereich auf - schwarz - gesetzt \n")
    ) 
  )
  (princ)
)

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

sigy
Mitglied



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

Beiträge: 32
Registriert: 24.09.2004

Win XP P4 3GHz 1GB RAM
MDT6 SP4

erstellt am: 14. Sep. 2005 15:50    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

super, vielen Dank.

------------------
Konstruktive Grüße
sigy

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 14. Sep. 2005 18:45    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 sigy 10 Unities + Antwort hilfreich

Ja, *toll*...
Ostfriesisches Crosshair, weiß auf weißem Grund :dream
Funzt außerdem nur im Modell-Space ;-).
Guckst Du Dir mal folgendes an:
Code:

;;; BckgrndSwitcher.LSP
;;; für SysAdmin2004.mnl/mnu
;;;
;;; (c) Marc Scherer 02/2004
;;;
;;; Hier definierte Funktionen:
;;; C:SBG
;;; SWITCH-BACKG
;;; SWITCH-BACKG-TO
;;; CHBACK
;;; C:GETCOL
;;;
;;; Laden:
(vl-load-com)

;;; Holt das Anzeige-Objekt als ActiveX-Objekt
(defun GET:PREFDISPLAY ()
  (vla-get-display ;_ gibt das Anzeige-Objekt zurück
    (vla-get-preferences ;_ gibt das Einstellungs-Objekt zurück
      (vlax-get-acad-object) ;_ gibt die Applikation als Objekt zurück
    ) ;_ end of vla-get-preferences
  ) ;_ end of vla-get-display
) ;_ end of defun

;;; Funktion ermittelt den Wert eines Variants,
;;; welches vorher in ein LongInteger konvertiert wird
(defun value-from-vlax-vblong (ARG /)
  (vlax-variant-value
    (vlax-variant-change-type
      ARG
      vlax-vblong
    ) ;_ end of vlax-variant-change-type
  ) ;_ end of vlax-variant-value
) ;_ end of defun

;;; Funktion zum Aufruf des Hintergrund-Switchers als AutoCAD-Befehl
(defun C:SBG ()
  (SWITCH-BACKG)
  (princ)
) ;_ end of defun


;;; Schaltet die Farben für Hintergrund und Fadenkreuz des Modellbereichs um
(defun SWITCH-BACKG (/)
  (CHBACK 0 16777215)
  (princ)
) ;_ end of defun

;;; Wechselt die Farben von Hintergrund und Fadenkreuz
;;; auf die Werte, die an das Programm übergeben werden:
;;; Bespiel:
;;; (MSBACK-TO 12632256 16777215) schaltet den Hintergrund grau und das Fadenkreuz Weiß
;;; gängige Farb-Werte:
;;; Schwarz: 0
;;; Weiß: 16777215
;;; Grau (Farbe 9): 12632256
;;; Bei zweimaligem Aufruf mit gleichen Werten werden die Farben vertauscht
(defun SWITCH-BACKG-TO (COLBCK COLCROSS /)
  (CHBACK COLBCK COLCROSS)
  (princ)
) ;_ end defun


;;; Funktion ermittelt die aktuellen Daten für die Hintergrundfarbe und das Fadenkreuz,
;;; und setzt sie komplementär dazu neu.
;;; Ob die Farben für den Modell oder Papierbereich ermittelt werden, hängt vom zur Laufzeit
;;; aktiven Bereich ab (Entscheidung durch SysVar "TILEMODE").
;;; Argumente:
;;; Color? = Integer, Farbe 1
;;; Ccolor? = Integer, Farbe 2 (sollte komplementär zu Farbe 1 sein)
;;; Die Farben für Hintergrund und Fadenkreuz sollten an entgegengesetzten Enden der Farbskala sein
(defun CHBACK (COLOR?       CCOLOR?      /            CHAIRCOLOR
               COLOR        PREFDISPLAY  BACKGPROP    CROSSHPROP
              )
  (if (= (getvar "tilemode") 1) ;_ Wenn 1, Eigenschaften für Modellbereich verändern
    (setq BACKGPROP  'GRAPHICSWINMODELBACKGRNDCOLOR
          CROSSHPROP 'MODELCROSSHAIRCOLOR
    ) ;_ end of setq
    ;; Ansonsten
    (setq BACKGPROP  'GRAPHICSWINLAYOUTBACKGRNDCOLOR
          CROSSHPROP 'LAYOUTCROSSHAIRCOLOR
    ) ;_ end of setq
  ) ;_ end of if
  (setq PREFDISPLAY (GET:PREFDISPLAY) ;_ Hole das Objekt PreferencesDisplay
        COLOR       (VALUE-FROM-VLAX-VBLONG
                      (vlax-get-property PREFDISPLAY BACKGPROP)
                    ) ;_ end of value-from-vlax-vblong
        CHAIRCOLOR  (VALUE-FROM-VLAX-VBLONG
                      (vlax-get-property PREFDISPLAY CROSSHPROP)
                    ) ;_ end of value-from-vlax-vblong
  ) ;_ end of setq
  (vlax-put-property ;_Setze die Eigenschaft backgrndcolor
    PREFDISPLAY ;_ für das Display Objekt
    BACKGPROP
    (vlax-make-variant ;_ auf ein LongInteger-Variant, das hier erzeugt wird
      (if (= COLOR COLOR?) ;_ Wert für das zu erzeugende Variant; wenn Color = Color?
        CCOLOR? ;_ nimm Ccolor? (also komplementär)
        COLOR? ;_ ansonsten nimm Color?
      ) ;_ end of if
      vlax-vblong
    ) ;_ end of vlax-make-variant
  ) ;_ end of vlax-put-property
  (vlax-put-property ;_ Setze die Eigenschaft crosshaircolor
    PREFDISPLAY ;_ komplementär zum Background
    CROSSHPROP
    (vlax-make-variant
      (if (= COLOR COLOR?)
        COLOR?
        CCOLOR?
      ) ;_ end of if
      vlax-vblong
    ) ;_ end of vlax-make-variant
  ) ;_ end of vlax-put-property
) ;_ end of defun


;;; Funktion gibt die aktuellen Farbwerte für Hintergrundfarbe und Fadenkreuz aus.
;;; Hilfsfunktion, um die korrekten Werte für den ColorSwitcher einstellen zu können.
(defun C:GETCOL
       (/ MCHAIRCOLOR MCOLOR PCHAIRCOLOR PCOLOR PREFDISPLAY RETVAL)
  (setq PREFDISPLAY (GET:PREFDISPLAY)
MCOLOR     (VALUE-FROM-VLAX-VBLONG
      (vlax-get-property
PREFDISPLAY
'GRAPHICSWINMODELBACKGRNDCOLOR
      ) ;_ end of vlax-get-property
    ) ;_ end of value-from-vlax-vblong
MCHAIRCOLOR (VALUE-FROM-VLAX-VBLONG
      (vlax-get-property PREFDISPLAY 'MODELCROSSHAIRCOLOR)
    ) ;_ end of value-from-vlax-vblong
PCOLOR     (VALUE-FROM-VLAX-VBLONG
      (vlax-get-property
PREFDISPLAY
'GRAPHICSWINLAYOUTBACKGRNDCOLOR
      ) ;_ end of vlax-get-property
    ) ;_ end of value-from-vlax-vblong
PCHAIRCOLOR (VALUE-FROM-VLAX-VBLONG
      (vlax-get-property
PREFDISPLAY
'LAYOUTCROSSHAIRCOLOR
      ) ;_ end of vlax-get-property
    ) ;_ end of value-from-vlax-vblong
RETVAL     (strcat "Folgende Farben sind momentan aktuell gesetzt:"
    "\nModellbereich:"
    "\n\tFadenkreuz: "
    (itoa MCHAIRCOLOR)
    "\n\tHintergrund: "
    (itoa MCOLOR)
    "\n\nPapierbereich:"
    "\n\tFadenkreuz: "
    (itoa PCHAIRCOLOR)
    "\n\tHintergrund: "
    (itoa PCOLOR)
    ) ;_ end of strcat
  ) ;_ end of setq
  (alert RETVAL)
  (princ RETVAL)
  (princ)
) ;_ end of defun
(princ)

(princ "\nBefehl zum Hintergrund switchen: >SBG<. Ermittlung der aktuellen Werte: >GETCOL<.")
(princ)


Mit dem Befehl GETCOL bekommst Du übrigens die aktuell gesetzten Werte für die Bereiche Modell-Space und Paper-Space angezeigt.
Stehst Du also auf pinkes Fadenkreuz auf grünem Grund, so stelle das über die AutoCAD-Optionen ein, frage die Werte mit GETCOL ab und pack' die entsprechend als Argumente in die Subroutine "CHBACK".
Als Menü oder Toolbar-Makro könnte das dann so aussehen:

Code:

[Ekelhafter-Background-Switch]^c^c(if (null CHBACK)(load "BckgrndSwitcher"))(princ);(CHBACK 65280 12517631);

Den Model- oder Paper-Space ermittelt das Tool selber.
HTH

------------------
Ciao,
Marc
   

[Diese Nachricht wurde von marc.scherer am 14. Sep. 2005 editiert.]

[Diese Nachricht wurde von marc.scherer am 01. Sep. 2008 editiert.]

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

sigy
Mitglied



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

Beiträge: 32
Registriert: 24.09.2004

Win XP P4 3GHz 1GB RAM
MDT6 SP4

erstellt am: 15. Sep. 2005 07:49    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

marc,
dein tool ist sicher das optimum, um nach herzenslust die tagesstimmung farblich auf den bildschirm zu bringen, ;-) aber ich bin oft mehr für die einfachen, schlichten lösungen. Mein Bedarf war, um schnell eine hardcopy eines Modells zu ziehen, eine einfache Farbumstellung auf weiss. Ich bin es nachwie vor gewohnt mit schwarzen hintergrund zu arbeiten.
Trotzdem werde ich mich mal mit deinem tool beschäftigen.

------------------
Konstruktive Grüße
sigy

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 15. Sep. 2005 09:29    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 sigy 10 Unities + Antwort hilfreich

Hi Sigy,
wenn Du Dir mal die Mühe gemacht hättest das Tool auszuprobieren wüßtest Du, dass der Befehl "SBG" genau das von Dir gewünschte macht.
Alles weitere ist nur als Bonus gedacht und diente ein wenig als Hintergrundinformation :dream
Aber bleib' mal lieber bei den einfachen, schlichten Lösungen ;-)

------------------
Ciao,
Marc

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

sigy
Mitglied



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

Beiträge: 32
Registriert: 24.09.2004

Win XP P4 3GHz 1GB RAM
MDT6 SP4

erstellt am: 15. Sep. 2005 10: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

also gut, du hast mich überzeugt: es testen dann maulen ;-|
Der code sah nur so unheimlich aufwändig aus ... .

------------------
Konstruktive Grüße
sigy

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 15. Sep. 2005 11:12    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 sigy 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von sigy:
Der code sah nur so unheimlich aufwändig aus ... .


Ja, das kommt weil ich den mal für die Herdt Schulungsunterlage "AutoCAD 2004 Systemadministrator" bzw. "AutoCAD 2005 Power User" geschrieben habe (<Werbung> www.herdt4you.com </Werbung> ). Da sollte dann alles relativ genau kommentiert werden. Ich glaube, es ist mehr Kommentar als Code drinnen ;-)
Ist aber eigentlich nicht so schwer wie es aussieht, muß man sich nur mal in der VisualLisp Entwicklungsumgebung von AutoCAD angucken...

------------------
Ciao,
Marc

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

Hetkala
Mitglied
technische Zeichnerin, Anlagenplanerin, HKS


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

Beiträge: 200
Registriert: 23.08.2002

erstellt am: 14. Aug. 2008 14:41    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 sigy 10 Unities + Antwort hilfreich

Hallo,

bisher hat das o.g. Tool bei mir immer problemlos gefunzt (ACAD 2005+2006), jetzt habe ich 2008 und plötzlich meldet mir AutoCAD bei Aufruf von sbg:

; Fehler: no function definition: VLAX-GET-ACAD-OBJECT

Kann mir jemand sagen, was es damit auf sich hat? 

------------------
Gruß, Hetkala 

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 14. Aug. 2008 14:49    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 sigy 10 Unities + Antwort hilfreich

Welches der beiden Tools hat bei dir funktioniert? Das von marc oder das von CADmium?

Eventuell probier mal zuvor "(vl-load-com)" aus...

------------------
Grüsse

Thomas

Korrekturen zum Kochbuch AutoLISP

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

Hetkala
Mitglied
technische Zeichnerin, Anlagenplanerin, HKS


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

Beiträge: 200
Registriert: 23.08.2002

erstellt am: 19. Aug. 2008 12: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 Nur für sigy 10 Unities + Antwort hilfreich

Ich hab das Tool von Marc, genau wie oben gepostet.

so, EDIT: hab (vl-load-com) eingegeben und das Tool gibt jetzt eine neue Fehlermeldung aus, nämlich:

; Fehler: Fehlerhafter Argumenttyp: VLA-OBJECT nil

------------------
Gruß, Hetkala  

[Diese Nachricht wurde von Hetkala am 19. Aug. 2008 editiert.]

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 01. Sep. 2008 16:34    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 sigy 10 Unities + Antwort hilfreich

Hi,
bin gerade ausm Urlaub zurück.
Hab' jetzt mal das vl-load-com mit eingebaut im obigen code ;-).

Habe dann den Code in AutoCAD 2008 geladen und die Funktion:

Code:
(CHBACK 65280 12517631)

aufgerufen...
Geht. Also auch in 2008 problemlos lauffähig.
Hetkala, könnte es sein, das Du was anderes verkehrt machst?

------------------
Ciao,
Marc

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 28. Okt. 2009 14:17    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 sigy 10 Unities + Antwort hilfreich

Hallo Forum,.

Ich weiß das Thema ist schon ein Jahr alt. Wollte für das gleich Problem kein neues Thema aufmachen.
Habe aber ein Problem mit dem Code der hier steht wollte fragen ob mit jemand helfen könnte.
Ich wollte wissen was ich falsch mache. Habe den Code von marc.scherer einmal ausprobiert. Und das wechseln der Hintergrundfarbe funktioniert Super.
Jetzt kommt das Große aber.
Wollte da hinter ein Command „-Einfügen“ einbauen.
Leider bricht meine Lisp- Routine nach den Farbwechsel ab.

Test Code:


    (vl-load-com)
    (defun C:test ()
      (SBG)
      (Command "-einfüge" "BGR_CH_STR" pause "" "1" "0")
    )


    ;;; BckgrndSwitcher.LSP
    ;;; für SysAdmin2004.mnl/mnu
    ;;;
    ;;; (c) Marc Scherer 02/2004
    ;;;
    ;;; Hier definierte Funktionen:
    ;;; C:SBG
    ;;; SWITCH-BACKG
    ;;; SWITCH-BACKG-TO
    ;;; CHBACK
    ;;; C:GETCOL
    ;;;
    ;;; Laden:

    (defun GET:PREFDISPLAY ()
      (vla-get-display
        (vla-get-preferences
          (vlax-get-acad-object)
        )
      )
    )

    (defun value-from-vlax-vblong (ARG /)
      (vlax-variant-value
        (vlax-variant-change-type
          ARG
          vlax-vblong
        )
      )
    )

    (defun SBG ()
      (SWITCH-BACKG)
      (princ)
    )

    (defun SWITCH-BACKG (/)
      (CHBACK 0 16777215)
      (princ)
    )

    (defun SWITCH-BACKG-TO (COLBCK COLCROSS /)
      (CHBACK COLBCK COLCROSS)
      (princ)
    )

    (defun CHBACK (COLOR?      CCOLOR?      /            CHAIRCOLOR
                  COLOR        PREFDISPLAY  BACKGPROP    CROSSHPROP
                  )
      (if (= (getvar "tilemode") 1)
        (setq BACKGPROP  'GRAPHICSWINMODELBACKGRNDCOLOR
              CROSSHPROP 'MODELCROSSHAIRCOLOR
        )
       
        (setq BACKGPROP  'GRAPHICSWINLAYOUTBACKGRNDCOLOR
              CROSSHPROP 'LAYOUTCROSSHAIRCOLOR
        )
      )
      (setq PREFDISPLAY (GET:PREFDISPLAY)
            COLOR      (VALUE-FROM-VLAX-VBLONG
                          (vlax-get-property PREFDISPLAY BACKGPROP)
                        )
            CHAIRCOLOR  (VALUE-FROM-VLAX-VBLONG
                          (vlax-get-property PREFDISPLAY CROSSHPROP)
                        )
      )
      (vlax-put-property
        PREFDISPLAY
        BACKGPROP
        (vlax-make-variant
          (if (= COLOR COLOR?)
            CCOLOR?
            COLOR?
          )
          vlax-vblong
        )
      )
      (vlax-put-property
        PREFDISPLAY
        CROSSHPROP
        (vlax-make-variant
          (if (= COLOR COLOR?)
            COLOR?
            CCOLOR?
          )
          vlax-vblong
        )
      )
    )


Kann mir jemand vielleicht auf die Sprünge helfen.
Ich bedanke mich jetzt schon mal.

Ich verzweifele. 

Mit freundlichen Grüßen

FiRe

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 28. Okt. 2009 15:20    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 sigy 10 Unities + Antwort hilfreich

hi,
das warum ist mir auch noch unklar...

wenn ich die command-zeile zweimal absetze geht es
oder
(setq adoc(vla-get-activedocument(vlax-get-acad-object)))
(vla-sendcommand adoc "(nächsteSUB)\r")

------------------
Mfg Heiko

Elefantenjagd in Afrika
"... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."   (www.uni-leipzig.de/~rotheh/elefant.htm)

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 28. Okt. 2009 16:12    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 sigy 10 Unities + Antwort hilfreich

Hi, Dorfy.
Danke erst mal für die Antwort.

Aber irgendwie verstehe ich nicht was ich mit:

(setq adoc(vla-get-activedocument(vlax-get-acad-object)))
(vla-sendcommand adoc "(nächsteSUB)\r")

machen soll.

Könntest du mir das erklären.

Glaube ich bin zu Doof dafür. 

mfg

FiRE

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 28. Okt. 2009 18:15    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 sigy 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von FiRePhoeniX:
(vl-load-com)
(defun C:test ()
  (SBG)
  (Command "-einfüge" "BGR_CH_STR" pause "" "1" "0")
)

Hi,

das Problem scheint mit dem Schalten des Hintergrunds über ActiveX zu tun zu haben. Wahrscheinlich irgendein Timing Problem...
Drehst Du die Aufrufe um, dann geht's:

Code:

(defun C:test ()
  (Command "-einfüge" "BGR_CH_STR" pause "" "1" "0")
  (SBG)
)

Verwendest Du nicht command und nicht Pause, dann geht's auch in der gewünschten Reihenfolge:

Code:

(defun C:TEST ()
  (SBG)
  (vl-cmdf "_.-insert" "BGR_CH_STR" (getpoint) "1" "" "0")
)

Manöverkritik zu Deinem Code:

Code:

(Command "-einfüge" "BGR_CH_STR" pause "" "1" "0")

"-einfüge"
Befehl nicht internationalisiert und auch nicht berücksichtigt das der Einfügebefehl vielleicht umgebogen worden ist (mittels "Undefine").
Berücksichtigen würde beide genannten Punkt die Verwendung von "_.-insert".

"BGR_CH_STR" Crasht, wenn Block in Datei nicht definiert oder im Supportpfad nicht gefunden werden kann...

pause Hier unglücklich, weil in der verwendeten Form kein Fehler abgefangen wird.

"" "1" "0" Das sind die Werte für X-Skalierung, Y-Skalierung und Drehwinkel. Das erste "" übernimmt den letzen verwendeten Wert. Der muß nicht immer 1 sein. Im ungünstigen Fall hat Dein Block dann X ungleich Y skalierung...

------------------
Ciao,
Marc

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 28. Okt. 2009 19:16    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 sigy 10 Unities + Antwort hilfreich

hi FiRePhoeniX,
so ne kurze Hilfestellung...

(vl-load-com)
(defun C:test ();deine hauptfunktion
  (SBG);aufruf sub sbg
  (setq adoc(vla-get-activedocument(vlax-get-acad-object)))
  (vla-sendcommand adoc "(SUB)\r");nächst sub auf die reise schicken
)

(defun SUB ();subfunktion
;mach was sub
  (Command "-einfüge" "BGR_CH_STR" pause "" "1" "0")
)

Kannst IMHOIn my humble oppinion (Meiner Meinung nach) vla-sendcommand auch direkt die Commandzeile/den Befehl und zugehörige Parameter übergeben.
(vor den " ein \ setzen --> \")

Manöverkritik von Marc natürlich beachten  

------------------
Mfg Heiko

Elefantenjagd in Afrika
"... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."   (www.uni-leipzig.de/~rotheh/elefant.htm)

[Diese Nachricht wurde von Dorfy am 28. Okt. 2009 editiert.]

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 29. Okt. 2009 08: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 Nur für sigy 10 Unities + Antwort hilfreich

Hallo Leute. (marc.scherer, Dorfy mehr sind hier leider nicht.)
Als erstes erst mal Danke für die Hilfe. Habe es noch nicht getestet werde ich aber gleich tun.
Marc.scherer danke ich für die Kritik. Endlich jemand der seinen Kritik auch begründet und nicht einfach sagt es ist ******e. Das ist lobenswert. Weiter so.

Jetzt zu meiner Verteidigung Herr Staatsanwalt.

Kurze Erklärung für was ich den Code brauche. Also der Benutzer soll einen Block einfügen. Soweit hab ihr das bestimmt verstanden. Der Block soll aber an der Maus hängen beim einfügen. Dafür habe ich dein Befehl Pause genutzt. Was anderes ist mir leider nicht eingefallen. Somit fällt die Option Getpoint schon weg. Jetzt zum umschalten der Farben.  Dazu muss man wissen das der Block aus einer Externen Datei erstellt wird. In dieser Datei befinden sich auch die Farben für die Linie, Kreise, Texte etc. Leider ist fast alles auf Schwarz gesetzt.  Da, ich mit einen schwarzen Hintergrund arbeiten ist das immer so einen Sache. Einfügen, auflösen Farbe ändern, Block bearbeiten wieder die Farbe ändern, Block raus schreiben.  Also wollte ich bevor der Block gesetzt wird die Farbe auf Weiß oder Grau setzen um den Block besser sehen zu können. Somit fällt die Optionen die Farbe nach dem absetzen der Blockes zu ändern weg.
Der Block “BGR_CH_STR“ wird von mir erstell. Und am Anfang der Routine wird mit (tblobjname "BLOCK" "BGR_CH_STR") geprüft ob der Block vorhanden ist.

Jetzt zu den Sachen die ich in meinen Augen Falsch gemacht habe. Den Befehl habe ich auf "_.-insert“ geändert. Habe den englischen Namen vergessen, Sorry. "" "1" "0" dies ist natürlich falsch warum ich das so gemacht habe weiß nicht. Danke das du mich darauf aufmerksam gemacht hast.

Hoffe ich konnte eine kleine Erklärung für den schlechten Code liefern. 

Noch eine Anmerkung an Dorfy. Der Spruch "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." ist einfach genial.     

Danke noch mal und wir lesen uns.

Mit freundlichen Grüßen

FiRE

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



Automation Engineer (m/w/d) BIM

GOLDBECK?realisiert zukunftsweisende Immobilien in Europa. Wir verstehen Gebäude als Produkte und bieten alle Leistungen aus einer Hand: vom Design über den Bau bis zu Services im Betrieb. Aktuell beschäftigt unser Familienunternehmen mehr als 12.000 Mitarbeitende an über 100 Standorten bei einer?Gesamtleistung von über 6 Mrd. Euro. Unser Anspruch ?building?excellence? steht dabei für Spitzenleistungen ...

Anzeige ansehenAutomatisierungstechnik
CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 29. Okt. 2009 09:05    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 sigy 10 Unities + Antwort hilfreich

wie wäre es mit Block auf 0,0,0 einfügen .... die Farben der Blockelemente zu konvertieren und dann die Blockreferenz mit dem _Move-Befehl "Ans Fadenkreuz" zu hängen ??? .... Das beste wäre natürlich solche "Zeichenstandards" zu beseitigen ..

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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