Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  (setvar clayer h_vl)

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:  (setvar clayer h_vl) (1162 mal gelesen)
Nano
Mitglied



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

Beiträge: 179
Registriert: 25.10.2004

erstellt am: 17. Aug. 2005 15: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 zusammen

Habe festgestellt das bei AutoCAD 2002
der Befehl (setvar "clayer" h_vl)
mir ein Fehler raus gibt.
{Fehler: Einstellung für AutoCAD-Variable zurückgewiesen: "CLAYER" "H_VL"}

Bei AutoCAD 2006 hingegen {nil}.

(SETQ mb001layerkbem (SETVAR "clayer" h_vl))
(IF (= mb001layerkaaa NIL)
(COMMAND "_LAYER" "M" "h_vl" "FA" "7" "h_vl" "L" "continuous" "h_vl" "LS" "0.5" "h_vl" \r))

Brauche eine Lösung für festzustellen ob dieser Layer existiert,
um Layer erstellen oder nicht.

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: 17. Aug. 2005 15:31    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 Nano 10 Unities + Antwort hilfreich

(command "_layer" "_m" "hvl" "")
setzt den Layer aktuell, wenn er nicht existiert, wird er angelegt

alternativ

(if(tblsearch "LAYER" "hvl")(setvar "CLAYER" "HVL"))

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

[Diese Nachricht wurde von CADmium am 17. Aug. 2005 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: 19. Aug. 2005 10:42    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 Nano 10 Unities + Antwort hilfreich

Hi,
das (setvar "clayer" ... hat seit irgendeiner Version 'ne tierische Macke. Ich tippe mal auf irgendein Timing-Problem von Acad.
Auf jeden Fall konnte ich den Fehler nicht zuverlässig eingrenzen.
Auch ein vorheriges 'Update der Acad-Application bzw. des ActiveDocuments half da nix.
Deswegen habe ich als Lösung 'ne eigene ActiveX Funktion geschrieben mit der ich solche Probleme nicht mehr hatte:
Code:

(vl-load-com)
(defun CREATE-LAYER-IF-NOT (STRNAME / RETVAL)
  (if (not (tblsearch "LAYER" STRNAME))
    (vla-add (vla-get-layers
              (vla-get-activedocument
                (vlax-get-acad-object)
              )
            )
            STRNAME
    )
  )
  (vla-put-activelayer
    (vla-get-activedocument
      (vlax-get-acad-object)
    )
    (setq RETVAL (vla-item (vla-get-layers
                            (vla-get-activedocument
                              (vlax-get-acad-object)
                            )
                          )
                          STRNAME
                )
    )
  )
  RETVAL
)


Mein Original-Code ist natürlich deutlich modularisierter.
Zudem übergebe ich im Original noch die Layer-Eigenschaften des Layers als Liste, aber das würde dann hier den Rahmen sprengen ;-).
Aber mit ActiveX gibt es hier keine Probleme mehr. Und ich erzeuge mit der Funktion ohne Probleme auch 600 Layer am Stück...

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

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