Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  BricsCAD
  Layer Bearbeiten

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 BricsCAD
Autor Thema:  Layer Bearbeiten (1756 mal gelesen)
FireBuff
Mitglied
EDV Admin , GIS Verantw.


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

Beiträge: 56
Registriert: 01.08.2013

BricsCad

erstellt am: 19. Nov. 2019 14: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

Hallo an alle, ich brauch Eure Hilfe.

Ich möchte Mittels LSP Befehl Layer Ändern:

Der Layer STR-RAND soll rot werden und die Globale Breite 0.3. 
Das mit der Farbe funkt. Aber wie geht das mit der Globalen Breite ?

(command "_.layer" "F" "255,0,0"  "STR-RAND" "")

Als 2. möchte ich einen Layer mit Farbe rot zu "Von Layer" wechseln um die Farbe auf Blau zu setzen

Ich kann nur Farben "Von Layer" wechseln.

Schon jetzt ein großes Dankeschön und entschuldigt meine Ausdrucksweise. Ich bin noch Neuling ...

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

FireBuff
Mitglied
EDV Admin , GIS Verantw.


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

Beiträge: 56
Registriert: 01.08.2013

BricsCad

erstellt am: 19. Nov. 2019 14:51    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

... mit der Globalen Breite sollen alle Onjekte mit dem Layer geändert werden ...  sorry

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 19. Nov. 2019 15:04    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 FireBuff 10 Unities + Antwort hilfreich

Sehr verwirrend, aber von Anfang an:

[EDIT - Ich sehe gerade, du hast überhaupt keine ENGlische Version?, dann ergänze ich unten noch]

1. Layer haben keine "globale Breite", wohl  aber eine Linienstärke - Meinst du diese?
   Lösung: Genau so wie du es mit der Farbe machst, es ist also keine Lispfrage sondern
   die ganz normale Benutzung des -LAYER Befehls bei der es hakt?

Befehl: _-LAYER / oder -LAYER im deutschen
_c  / oder F FARBE im deutschen
255,0,0 (warum macht man das, warum nimmt man da nicht Rot(1) - Bewußte Überlegung oder nicht?
STR-RAND
_lweight / oder LS LSTÄRKE im deutschen
0.3
STR-RAND

>"Als 2. möchte ich einen Layer mit Farbe rot zu "Von Layer" wechseln
Man kann (logischerweise) kein "VonLayer" im Layer einstellen ???

>" um die Farbe auf Blau zu setzen"
Da der vorherige Sazu keinen Sinn ergibt, ertwas schwierig..
Was meinst du, den Punkt 2. verstehe ich nicht.


>"und entschuldigt meine Ausdrucksweise. Ich bin noch Neuling ..."
Wird sicher von jedem "entschuldigt", aber das bringt nicht mehr Information    
Also:
Entweder man möchte die Farbe eines oder mehrerer Layer ändern, oder man möchte
den Layer eines Objektes ändern (also einem Objekt einen anderen Layer zuordnen)

Jetzt ist die Frage was von beidem gewünscht ist und woran das Programm sich orientieren soll,
ich vermute ja "irgendwas mit Farbe Rot"? Bedenke dabei: Nicht alle rot gezeigten Objekte
haben denselben Layer, oder die Farbe Rot zugeordnet, - Es kann hier noch recht kompliziert werden
je nach Anforderung.

DWG Datieen können hier übrigens direkt angehangen werden und mit entsprechender Beschreibung
ist es oft die beste Hilfe die eigenen Gedanken anderen zu übermitteln.

   
Sebastian

[Diese Nachricht wurde von cadffm am 20. Nov. 2019 editiert.]

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 19. Nov. 2019 15: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 FireBuff 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von FireBuff:
... mit der Globalen Breite sollen alle Onjekte mit dem Layer geändert werden ...   sorry


Also sollen Objekte geändert werden, nicht der Layer?, oder beides?

Über den Befehl LAYER kann man die Layereigenschaften ändern,
die Objekte kann man mit dem Befehl ÄNDERN oder auch EIGÄNDR ändern (engl. _change / _chprop)

soweit geht das ohne Programmierung, wenn man nun aber noch Objekte IN BLÖCKEN oder
in anderen Layoutsändern willst (Standard-Befehle arbeiten ja bis auf eine Ausnahme nur im aktuellen Bereich),
dann mußte man mit Programmierung anfangen..

Aber zunächst mal kläre war das Ziel ist:
Die Objekt-Linienstärke von "allen" Objekten auf "0.3" ändern?
Oder nur von bestimmten Objekten, vielleicht von bestimmten Layern?
Oder sollen doch besser alle Objekte die Linienstärke VonLAyer bekommen und alle Layer die Linienstärke 0.3?

Und dann zum Schluß: Welche "alle" Objekte?
Aktueller Bereich oder alle Layouts/Modell?
Nur "TopLevel" Objekte, oder auch Objekte in Blöcken?

usw. 

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

FireBuff
Mitglied
EDV Admin , GIS Verantw.


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

Beiträge: 56
Registriert: 01.08.2013

BricsCad

erstellt am: 19. Nov. 2019 15:58    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

Oh, so viele Infos. Danke. Das muß ich sortieren  und testen.
Ich melde mich morgen mit dem Ergebnis.
Danke für heute.

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

FireBuff
Mitglied
EDV Admin , GIS Verantw.


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

Beiträge: 56
Registriert: 01.08.2013

BricsCad

erstellt am: 20. Nov. 2019 08:47    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


Holzau.dwg

 
So, Danke nochmal.
Jetzt im einzelnen zum besseren Verständnis:

Der Layer "Hausnr" (VonLayer) soll auf Schwarz gesetzt werden
  (command "_.layer" "F"  "51,51,51"  "Hausnr" "")       
 
Der Layer "Kirche" (Magenta) soll auf (VonLayer) gesetzt werden (VonLayer ist rot)
?

Alle Objekte mit Layer "Strasse" sollen auf Blau gezetzt werden
(command "_.layer" "F"  "0,255,255"  "Strasse" "")       

und eine Globale Breite von 1,0 bekommen  ?

Noch eine Frage:  Gibt es eine Art Sprungmarke wie ( GOTO WEITER    :WEITER )
Danke für Eure Geduld und Hilfe

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 20. Nov. 2019 09:22    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 FireBuff 10 Unities + Antwort hilfreich

Hi,
ich korrigiere oder ergänze Kleinigkeiten um das Vokabular oder auch die Beschreibungen zu trainieren,
du scheinst es - wie angedacht-  positiv anzunehmen und es ist Investition statt Schikane 


>"Der Layer "Hausnr" (VonLayer)
Es gibt beim Layer kein "VonLayer", also sollen wohl die Objekte des Layers auf Farbe "VonLayer" gesetzt werden.
Wie bereits geantwortet: Objekte kann man mit dem Befehl ÄNDERN oder auch EIGÄNDR ändern (engl. _change / _chprop)

>"soll auf Schwarz gesetzt werden"
  (command "_.layer" "F"  "51,51,51"  "Hausnr" "")       
Das ist nicht schwarz, sondern 51,51,51 - ein großer Unterschied und ich fragte bereits oben: (warum macht man das, warum nimmt man da nicht Schwarz(7) - Bewußte Überlegung oder nicht?
PS: Warum benutzt du "_.layer" statt .layer, Ich bevorzuge auch den InternationalenBefehlsaufruf, aber ein Franzose oder Ami wird sicher mit F wie Farbe in den Optionen nichts anfangen können, daher macht dann auch _layer keinen Sinn = DENGLISCH


>"Der Layer "Kirche" (Magenta) soll auf (VonLayer) gesetzt werden (VonLayer ist rot) ?"
Es gibt beim Layer kein "VonLayer", also sollen wohl die Objekte des Layers auf Farbe "VonLayer" gesetzt werden.
Wie bereits geantwortet: Objekte kann man mit dem Befehl ÄNDERN oder auch EIGÄNDR ändern (engl. _change / _chprop)


>"Alle Objekte mit Layer "Strasse" sollen auf Blau gezetzt werden"
(command "_.layer" "F"  "0,255,255"  "Strasse" "")       
Du meinst auf VonLayer, nicht auf Blau?
Die hier angegebene Farbe ist 0,255,255 ist 0,255,255 und bicht Blau(5), auch hier wieder: Warum? Und wenn es dafür keine Antwort gibt.. Lass es und nimm die Standardfarben (1-255)


>"und eine Globale Breite von 1,0 bekommen  ?"
?
Das Thema hatten wir doch wie die Objekteigenschaften-Änderung auch schon?
Und was denn nun, die Objekte oder die Layer? ACH, hatten wir ja schon!

Also bitte noch einmal: Das hat ja alles nichts mit Lisp zutun, schau dir bitte an wie der
Befehl funktioniert, schreibe jeden Tastenschlag mit, dann kannst es auch automatisiert
ablaufen lassen.
(ein fieses Detail gibt es noch zu erwähnen, aber ich verzichte an dieser Stelle, das wäre toomuch und kommt noch früh genug  )

LAYER Eigenschaften:
Befehl: -LAYER<enter>
und nun schau wie du die Linienstärke der Layer umgestellt bekommst (Wildcards zur Angabe der Layer sind zulässig, Alle Layer wären: * / Alle Außer Layer0 wäre zum Beispiel: ~0

OBJEKTeigenschaften:
Befehl: EIGÄNDR<enter>
und nun schau wie du die Linienstärke der Objekte umgestellt bekommst,
in deinem Fall ist die Objektwahl einfach da es eine Objektwahlmethode ALLE gibt. Wenn BCAD nach den Objekten fragt also einfach ALLE<enter> und dann kann die objektwahl schon abgeschlossen werden <enter>


>"Noch eine Frage:  Gibt es eine Art Sprungmarke wie ( GOTO WEITER    :WEITER )"
GOTO <dumme Zeilennummer> gibt es nicht, du kannst aber eigene funktionen definieren und Aufrufen.
Aber PS: Aktuell kannst du noch nicht mal die Zeichen-Befehle, welche dann ganz simpel automatisiert
gefüttert werden soll (command ....), bei Funktionen definieren und aufrufen etc.
sehe ich den Thread hier in den nächsten Stunden noch nicht? 

>"Danke für Eure Geduld und Hilfe"
Bitteschön


Ach ja. Wenn mal doch nur ein Teil der Objekte geändert werden soll: Da kenne ich keine allgemeingültige Möglichkeit
außer mit Lisp, hier ein paar Beispiele zur Erstellung eines Auswahlsatzes:
(ssget "_X" (list'(8 . "Strasse")(cons 410 (getvar "CTAB")))) ; Siehe DXF-Code 8, 8 gibt den Layer an.
DXF Gruppencode 410 den Bereich in dem das Objekt platziert ist, Also MODEL oder ein LAYOUT..
Systemvariable CTAB entählt den Namen des aktuellen Bereiches, mein SSGET-Filter sucht also nur Objekte im aktuellen Bereich auf dem Layer "Strasse"
[Gesucht werden nur TopLevel-Objekte, Objekte IN BLÖCKEN kann man auf diesem Weg nicht suchen, aber EIGÄNDR und andere Befehle könnten diese ja auch nicht ändern]

Also:
EIGÄNDR oder auch -LAYER in die Befehlszeile eingeben und die Befehle erst einmal "lernen",
dabei notieren welche Eingaben in welcher Reihenfolge nötigt sind.
Eiserne Regel: Alles nur über die Befehlszeile! Und falls doch eine Eingabe  mit der Mouse gewünscht wird,
dann haben wir das nächste Thema um das es geht - hier bei deinem aktuellen Fall jedoch nicht.

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

FireBuff
Mitglied
EDV Admin , GIS Verantw.


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

Beiträge: 56
Registriert: 01.08.2013

BricsCad

erstellt am: 20. Nov. 2019 10:48    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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 20. Nov. 2019 10:57    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 FireBuff 10 Unities + Antwort hilfreich

Ratsuchende die offenbar wirklich Hilfe wollen und lernwillig sind bekommen hier im Portal enorme Unterstützung
von sehr vielen Leute (je nach Thema variiert das natürlich recht stark).

Ich bin schon jetzt auch deine Rückmeldung mit notiertem Ablauf-Script und ggf. der Umsetzung in (command ...) Schreibweise gespannt,
auch die Erklärung zur Verwendung von Truecolor-Farbwerten anstatt der Standard-Farben.

So macht's Spaß (zu helfen) 

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

FireBuff
Mitglied
EDV Admin , GIS Verantw.


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

Beiträge: 56
Registriert: 01.08.2013

BricsCad

erstellt am: 21. Nov. 2019 14: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 und Danke für die Hilfe.

Ich bin "lernwillig" fange aber fast bei NUL an    , deshalb verstehe ich nicht alles. Ich würde die Befehle mitschreiben wenn das geht ? Die Mausbefehle werden nicht angezeigt    - oder wie ?

Soweit bin ich schon mal:  ( ;? funkt. nicht 

Code:
(setq RETURN(vle-alert "A C H T U N G  !   " "dwg Datendatei \n\n automatische Bearbeitung !" (+ 4 32)))
(cond
  ((= RETURN 2) ;Cancel
     (alert "Programm\n\n... Abbrechen 1...\n")
  )
  ((= RETURN 6) ;Cancel

  (command "_.layer" "E"                 "")      ;; Alle Layer einblenden

  (command "_.layer" "S" "Leer" "")               ;; layer aktiv

  (command "_.layer" "F" "250" "Hausnr"    "")    ;; layer schwarz
  (command "_.layer" "F" "1"   "Kirche"    "")    ;; layer rot
  (command "_.layer" "F" "6"   "Gebaeude"  "")    ;; layer magenta
  (command "_.layer" "F" "253" "Strasse"  "")    ;; layer grau
  (command "-.layer" "F" "5"   "Weg"      "")    ;; layer blau
  (command "_.layer" "F" "5"   "Feldweg"  "")
  (command "_.layer" "F" "4"   "Telekom"  "")    ;; layer cyan
  (command "_.layer" "F" "140" "Telekom-V" "")    ;; layer hellblau
  (command "_.layer" "F" "140" "Telekom-S" "")    ;;
  (command "_.layer" "F" "252" "Telekom-M" "")    ;; layer grau-1
  (command "_.layer" "F" "251" "Telekom-K" "")    ;; layer grau-2
 
  ; ?? jetzt möchte ich die layer "Weg" und "Feldweg" ( mit allen Objekten ) verbinden und bei "Strasse" einfügen.
  ; ?? danach die layer "Weg" und "Feldweg" löschen.
  ; ?? Die Globale Breite Aller Objekte auf Layer "Strasse" soll auf 0.7 gesetzt werden.
 
;?  (command "EIGÄNDR" "LA" "Strasse" "B" 0.7) ;;??  Layer "Strasse" GlobaleBreite 0.7  ??

  (command "_.layer" "S" "Strasse" "")            ;; layer aktiv
  (command "_.layer" "A" "Leer" "")               ;; layer ausblenden
  (command "_.layer" "A" "Telekom-M" "")
 
  )
)

  (command "_zoom" "_e")       ;; im Bereich zoomen
  (command "")
 


[Diese Nachricht wurde von FireBuff am 21. Nov. 2019 editiert.]

[Diese Nachricht wurde von FireBuff am 21. Nov. 2019 editiert.]

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 21. Nov. 2019 17:11    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 FireBuff 10 Unities + Antwort hilfreich


>"Ich bin "lernwillig" fange aber fast bei NUL an"
Mit Lisp, aber mit (Brics)cad? Die bisherigen Probleme hatten noch nichts mit Lisp zutun,
nur mit der Bedienung des Befehls -LAYER


>" , deshalb verstehe ich nicht alles."
Absehbar das es mit riesen Schritten vorwärts gehen wird


>"Ich würde die Befehle mitschreiben wenn das geht ?"
Verstehe ich nicht ganz!?
Man nimmt einen Stift, dazu einen Zettel,
dann startet man den Befehl, in dem Fall -LAYER weil dies die Befehlszeilenversion ist.
Jetzt kann man schon notieren:
-LAYER<enter>
und so fährt man fort..
Um nachträglich noch etws nachzusehen hilft das Textfenster[F2]


>"Die Mausbefehle werden nicht angezeigt  - oder wie ?"
Da du mit einem menuMacro, Script oder wie hier das Ziel mit einem Lisp (command ...)-Ausdruck nur die
Befehlszeile fütterst, ist die Maus irrelevant, kein Grund also diese mitzuschreiben da du dies eh nicht
verwenden kannst.
{Sobald eine Interaktion mit dem Benutzer erfolgen soll, wie hädische Eingabe oder auch per Maus, bedarf es weitere noch nicht angesprochene Möglichkeiten}


>" ( ;? funkt. nicht "
Dann wundert mich warum das was du hast (sehr gut!) überhaupt schon so lang ist? denn eigentlich
kommt man ja nur bis zum ersten Fehler. Da ist dann ein Fehler und dann kümmert man sich darum diesen
Fehler zu finden bzw. zu korrigieren!?
Wer alles schon aus dem effeff kann, also später mal, der Schreibt auch 1000 Zeilen und prüft dann,
aber dem ist dann auch klar wie Fehler leicht zu lokalisieren sind.


>"(vle-alert "A C H T U N G  !   " "dwg Datendatei \n\n automatische Bearbeitung !" (+ 4 32))"
OFFtopic: Ein Träumchen diese Funktion, welche es leider in Autodeskprodukten nicht gibt in dieser Form..
Dein Code wird also ausschließlich in Bricscad laufen, nicht in AutoCAD zum Beispiel.
Die Profies die den Code dann für BricsCAD und AutoCAD nutzen wollen müssen dann extra eine
eigene "vle-alert" Funktion integrieren.


>"(command "_.layer" "E"                 "")      ;; Alle Layer einblenden

Die Zeile ist doch bereits falsch!?
Der Befehl erwartet einen oder mehrere Layernamen. Du sendest nur ein ENTER="". Wildcards sind im Programm oftmals erlaubt, so auch hier.
(command "_.layer" "E" "*" "")
Wildcard * für "ALLE"


>" (command "_.layer" "S" "Leer" "")               ;; layer aktiv
Bedenke: Wenn der Layer "Leer" zufällig gerde GEFROREN ist, dann kann er nicht zum aktuellen Layer gesetzt werden!
Also: Immer wenn du einen Layer aktuell setzen möchtest und an der Stelle im Programm nicht sicher sein kannst
das der Layer getaut ist, dann sende erst ein "Layer tauen" vorweg
(command "_.layer" "T" "Leer" "")
(command "_.layer" "S" "Leer" "")

>" (command "-.layer" "F" "5"   "Weg"       "")    ;; layer blau"
?? Hier ist schon der Befehl falsch..
(command "_.layer" "F" "5"  "Weg"      "")

 
>  ; ?? jetzt möchte ich die layer "Weg" und "Feldweg" ( mit allen Objekten ) verbinden und bei "Strasse" einfügen.
>  ; ?? danach die layer "Weg" und "Feldweg" löschen.

Wenn du die beiden Layer nicht benötigst, warum änderst du dann vorher die Farbe der Layer???
Wenn du den Objekten einen anderen Layer zuordnen willst, dann nehme mein Beispiel von oben zur Hilfe,
dort verwies ich bereits auf die Lispfunktion für die Objektwahl: SSGET
Wobei: Wenn man das nicht nutzen könnte, dann wäre auch "alle Layer frieren außer die beiden" eine Möglichkeit,
da die Objektwahl ALLE dann nur die Objekte der beiden nicht gefrorenen Layer auswählen würde.
Aber wir haben ja das SSGET:

(if (setq aws (ssget "_X" (list'(8 . "Weg,Feldweg")(cons 410 (getvar "CTAB")))))
    (command "LÖSCHEN" aws "") ;; ACHTUNG, mein Beispiel löscht die Objekte!! Hier muß also angepasst werden.
)
Objekteigenschaften per Befehl, wie gesagt, Befehl: ÄNDERN oder auch Befehl: EIGÄNR
Später wirst du hier sicher Lisp benutzen, aber die Befehle des Programmes zu nutzen schafft dir hier erst mal
Erleichterung und ist einfacher zu verstehen, weniger Lisp-Wissen nötig und überhaupt: Warum nicht für den Anfang?
Aber beachte: Möchte man Eigenschaften von Objekten ändern, so darf deren Layer nicht gesperrt sein... 
Hinterher Layer löschen? Dafür gibt es den Befehl -BEREING
<< kleines Achtung: Aktuell sprechen wir nur über normale Befehle und Objektwahl, auch wenn man diese mit "ssget" realisiert>
<< das bedeutet aber auch: Wenn Objekte in anderen Layouts oder in Blöcken genutzt sind, werden diese nicht bearbeitet
<< also wäre der LAyer dann auch nicht leer und könnte nicht bereinigt werden.
So Dinge gehen dann nur wenn man wirklich über die API die Objektdaten bearbeitet und nicht nur BricsCAD-Befehle "fernsteuert" = (command ... )


 >; ?? Die Globale Breite Aller Objekte auf Layer "Strasse" soll auf 0.7 gesetzt werden.
Eine "globale Breite" gibt es weiterhin nicht, den Begriff trifft man höchstens bei Polylinien an
und die bearbeitet man mit Befehl PEDIT, oder?. Bedenke aber das es nicht nur Polylinien geben kann auf dem Layer.
Solltst du doch die "Linienstärke" der Objekte meinen, dann nimmst du ÄNDERN oder auch EIGÄNDR.

 
;?  (command "EIGÄNDR" "LA" "Strasse" "B" 0.7) ;;??  Layer "Strasse" GlobaleBreite 0.7  ??
Warum gibt es denn Fragezeichen? ?? ???
Starte den BefehlEIGÄNDR und folge dem Befehlsablauf, eine Option "B" sehe ich da nicht in meiner (alten) Version 


Es sieht schon sehr gut aus, jedoch zeigst es auch: Du testest nicht wirklich was du da schreibst..
Try and Error gehört natürlich dazu, aber nicht so!
Schritt für Schritt, so wiederholt man dann auch keine Fehler.


TIP1: (command ... )
Hast du jetzt sehr übersichtlich eingesetzt, du darfst aber auch gerne mehr wie nur einen Schritt in einem
(Command Ausdruck abarbeiten, würdest du "in echt" ja auch so machen!
und da der Befehl -LAYER nach dem benutzen einer Option nicht automatisch beendet is sondern weiterhin aktiv,
brauchst du nicht mal den Befehl wieder aufrufen, sondern du kannst direkt mit der nächsten Option fortfahren.
Dennoch nutze ich selbst auch mehrere (command in Folge, wegen der Übersichtlichkeit.

Layer "WEG" aktuell setzen und vorher sicherstellen das dieser getaut ist:
(command ".-LAYER" "TAUEN" "WEG" "SETZTEN" "WEG" "")

TIP2:
Der Befehl -LAYER lässt auch zu mehrere Layer auf einmal anzugeben, nicht  nur durch * für alle,
sondern auch durch Komma getrennte Eingabe mehrerer Layername!
(command ".-LAYER" "FARBE" "5" "WEG,FELDWEG" "")


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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 21. Nov. 2019 17:23    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 FireBuff 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadffm:
[i]>"Ich würde die Befehle mitschreiben wenn das geht ?"
Verstehe ich nicht ganz!?
Man nimmt einen Stift, dazu einen Zettel,
dann startet man den Befehl, in dem Fall -LAYER weil dies die Befehlszeilenversion ist.
Jetzt kann man schon notieren:
-LAYER<enter>
und so fährt man fort..
Um nachträglich noch etws nachzusehen hilft das Textfenster[F2][/i]

Ab und an vergesse ich das: In Bricscad gibt es einen Script-Recorder der mitschreiben kann (so gut es das Programm zulässt und so gut wie der User die Eingaben tätigt)
Das Ergebnis (das Script *.SCR) könnte man gut als Vorlage nutzen um weniger mit der Hand tippen zu müssen, aber ich empfehle mal für den Anfang das komplett selbst
zu machen. Der Lerneffekt wird größer sein, gar viel größer weil es mehr Fehler gibt..

Menü Werkzeuge, Script aufzeichnen/Aufzeichnung beenden/ausführen...
Oder auch: RECSCRIPT/STOPSCRIPT/ und das ebenfalls in AutoCAD existierende SCRIPT zum ausführen eines vorhandenen Scripts.


PS: Solltest du gleich versuchen wollen ohne (command..) zu arbeiten und Lispfunktionen für die Sachen nutzen zu wollen,
dann mußt du die DWG/DXF oder auch ActiveX-Struktur / Objektmodell kennen-lernen, nebenbei dann die ganzen
Lispfunktionen.

In dem Fall würde nur auf Links zu Wissenswertem verweisen, das ist alles etwas viel wenn man ein konkretes Ziel verfolgt,
wie es bei dir anscheinend ist.

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

FireBuff
Mitglied
EDV Admin , GIS Verantw.


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

Beiträge: 56
Registriert: 01.08.2013

BricsCad

erstellt am: 29. Nov. 2019 11:00    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

Mühsam Ernährt Sich Das Eichhörnchen, so geht's auch mir.  

Nun häng ich jetzt fest. Ich möchte 3 Layer ( inkl. aller Objekte ) verbinden.
Aber der Befehl "LAYZUSF" geht mit BricsCAD nicht.

Die Layer "Ort" "Str" und "HNr" sollen zum Layer "Ort-Str" verbunden werden.

  (command "_.Layer" "N"         "Ort-Str"  "")        
  (command "_.layer" "F"  "6"    "Ort-Str"  "") 

  (command "_.LAYZUSF" "N" "Ort-Str" "" "N" "Ort" "JA")
  (command "_.LAYZUSF" "N" "Ort-Str" "" "N" "Str" "JA")
  (command "_.LAYZUSF" "N" "Ort-Str" "" "N" "HNr" "JA")

Danke für Eure Hilfe schon heute im voraus

[Diese Nachricht wurde von FireBuff am 29. Nov. 2019 editiert.]

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 29. Nov. 2019 12:07    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 FireBuff 10 Unities + Antwort hilfreich

Die Aufgabe/Frage gab es ja schon und auch eine Antwort darauf (siehe 2 Antworten weiter oben).

Variante 1 (auf die bin ich noch nicht eingegangen)
Bricscad Funktionumfang erweitern durch ein nicht selbstgeschriebenes Zusatzprogramm oder selbst machen.
Da diese Variante für dich vorerst ausfällt, zumindest hast du aktuell nichts*, daher:

Variante 2 wie oben gezeigt (nicht für Objekte in Blöcken, aber die hast du ja auch nicht, richtig?)
Alle Objekte auf LayerX auswählen und mit EIGÄNDR oder ÄNDERN auf einen anderen Layer legen.
Das Auswählen könnte man durch Layersteuerung und Wahl ALLE erledigen, aber da wir Lisp zur Verfügung haben neben wir besser SSGET.
Siehe oben mein SSGET-Beispiel, bei dem ich jedoch Objekte lösche.
Statt löschen erstellst du dann einfach (Command "ÄNDERN" oder eben (command "EIGÄNDR" .. usw.

-

* Nicht falsch verstehen, ich könnte auch auf Beispielcodes verlinken oder was fertiges posten,
aber wenn man es für (alle Layouts) oder "auch für Objekte in Blöcken" verwenden möchte,
dann brauchts "wirklich" Programmierung.
Für diese Funktion, egal wie klein diese ist, würde man schon sehr viel Wissen benötigen wenn ma nes selsbt machen wollte (ohne copy&paste).
Da schlage ich lieber etwas vor was man selbst erstellen und leicht nachvollziehen kann.

Vielleicht habe ich auch keine Lust 

Termine.. 

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