|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | Flexibler Übergang in die SAP Cloud - Brückenschlag für CAD und ERP, eine Pressemitteilung 
 | 
| Autor | Thema:  Polylinienbefehl auf Werkzeug (2977 mal gelesen) | 
 | cad4fun Ehrenmitglied
 
 
      
 
      Beiträge: 1846Registriert: 06.12.2004
 privat ACAD 2013 und 2017 deutsch, Windows 7 64BitHP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM
 ATI FirePro V (FireGL V) Graphics Adapter
 Treiberversion: 15.201.1151.1008
 |    erstellt am: 30. Jan. 2013 10:22  <-- editieren / zitieren -->    Unities abgeben:            
  Ich habe mir auf ein Werkzeug folgenden Befehl geschrieben: ^C^C_pline;0,0;"B";0.09;0.09;;_pline Es scheitert am unbekannten Befehl "B", wie der Versuch, diese Befehlsfolge in einem Command-Befehl zeigt  (command "_pline" 0,0 "B" 1 1 "" "_pline") Beide Zeilen entsprechen doch exakt der Befehlsfolge im Eingabefenster. Steh ich komplett auf der Leitung und sehe den Wald vor lauter Bäumen nicht? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 System: F1und Google
 |    erstellt am: 30. Jan. 2013 10:31  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  im Command übergibst du den String B im Werkzeugkasten den String "B"  Meine Aussage mag zunächst falsch klingen, ist aber so - denke dich da noch einmal durch   Lasse also im Makro die Anführungszeichen mal weg ! ------------------Link: User:FAQ (einiges Wissenswertes über AutoCAD)
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cadwomen Ehrenmitglied V.I.P. h.c.
 Mädchen für fast alles
 
       
 
      Beiträge: 3139Registriert: 26.08.2002
 ACAD R11 - 2022/2024(Revit und Recap 2024)
 
 ACAD LT 2013- 2022
 ZWCAD 2015 Versuch "nun ja"
 [s]History P3D 2012/(13) SP und Hotfix([/s]<P>
 Windows 11 / 64 Bit<P>Prozessor Intel(R) Xeon(R) w5-2445   3.10 GHz
 RAM 256 GB
 Platte c: 1 TB
 Platte d: 8 TB<P>Dell U3818DW + Dell U2412M Monitor
 |    erstellt am: 30. Jan. 2013 10:31  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  ohne " " aber was wilst du genau ? vorher die Breite auf einen Wert setzen ? cu cw ------------------Also ich finde Unities gut ... und andere sicher auch
 ------------------------------------------------
 cadwomen™
 Plant ist wie Öl suchen, je tiefer man bohrt desto mehr kommt ans Tageslicht
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cad4fun Ehrenmitglied
 
 
      
 
      Beiträge: 1846Registriert: 06.12.2004
 privat ACAD 2013 und 2017 deutsch, Windows 7 64BitHP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM
 ATI FirePro V (FireGL V) Graphics Adapter
 Treiberversion: 15.201.1151.1008
 |    erstellt am: 30. Jan. 2013 10:44  <-- editieren / zitieren -->    Unities abgeben:            
 Zitat:Original erstellt von cadffm:
 
 Lasse also im Makro die Anführungszeichen mal weg !
 
 
 Darauf wäre ich nie gekommen! @cadwoman: .Ja, ich muss ständig Polilinien mit anderer Breite eingeben und diese Art erscheint mir am effektivsten
 
 [Diese Nachricht wurde von cad4fun am 30. Jan. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | marc.scherer Ehrenmitglied V.I.P. h.c.
 CAD-Administrator
 
 
  
 
      Beiträge: 2494Registriert: 02.11.2001
 Windows 10 64bitAutoCAD 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: 30. Jan. 2013 10:51  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   | 
                        | cadwomen Ehrenmitglied V.I.P. h.c.
 Mädchen für fast alles
 
       
 
      Beiträge: 3139Registriert: 26.08.2002
 ACAD R11 - 2022/2024(Revit und Recap 2024)
 
 ACAD LT 2013- 2022
 ZWCAD 2015 Versuch "nun ja"
 [s]History P3D 2012/(13) SP und Hotfix([/s]<P>
 Windows 11 / 64 Bit<P>Prozessor Intel(R) Xeon(R) w5-2445   3.10 GHz
 RAM 256 GB
 Platte c: 1 TB
 Platte d: 8 TB<P>Dell U3818DW + Dell U2412M Monitor
 |    erstellt am: 30. Jan. 2013 10:53  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  wenn es dauert anderst ist dann wäre das evtl noch ne Alternative ^C^C_pline;0,0;B;\; cu cw ------------------Also ich finde Unities gut ... und andere sicher auch
 ------------------------------------------------
 cadwomen™
 Plant ist wie Öl suchen, je tiefer man bohrt desto mehr kommt ans Tageslicht
 [Diese Nachricht wurde von cadwomen am 30. Jan. 2013 editiert. streiche " noch "] [Diese Nachricht wurde von cadwomen am 30. Jan. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 System: F1und Google
 |    erstellt am: 30. Jan. 2013 10:54  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   | 
                        | marc.scherer Ehrenmitglied V.I.P. h.c.
 CAD-Administrator
 
 
  
 
      Beiträge: 2494Registriert: 02.11.2001
 Windows 10 64bitAutoCAD 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: 30. Jan. 2013 11:11  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  Oder, eleganter: Code:
 ;|
 Aufruf Polylinienbefehl mit vordefinierter Breite und anschliessendem zurücksetzen auf vorherigen Wert.
 Parameter:
 REAL-PLINEWID = Real oder Integer Zahl
 Rückgabe:Textinformation mit Ausgabe des aktuellen Wertes der Variable PLINEWID
 Anwendungsbeispiel:(DT:CMDPLINE 22.3)
 |;
 (defun DT:CMDPLINE (REAL-PLINEWID / OLD-PLINEWID)
 (setq OLD-PLINEWID (getvar "plinewid"))
 (setvar "plinewid" REAL-PLINEWID)
 (command "_.pline")
 (while
 (= 1 (logand (getvar "CMDACTIVE") 1))
 (command PAUSE)
 )
 (setvar "plinewid" OLD-PLINEWID)
 (princ (strcat "\nPolylinienbreite auf vorherigen Wert >"
 (rtos OLD-PLINEWID 2 2)
 "< zurückgesetzt!"
 )
 )
 (princ)
 )
 
 ------------------Ciao,
 Marc
 
  [Diese Nachricht wurde von marc.scherer am 30. Jan. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cad4fun Ehrenmitglied
 
 
      
 
      Beiträge: 1846Registriert: 06.12.2004
 privat ACAD 2013 und 2017 deutsch, Windows 7 64BitHP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM
 ATI FirePro V (FireGL V) Graphics Adapter
 Treiberversion: 15.201.1151.1008
 |    erstellt am: 30. Jan. 2013 11:48  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | marc.scherer Ehrenmitglied V.I.P. h.c.
 CAD-Administrator
 
 
  
 
      Beiträge: 2494Registriert: 02.11.2001
 Windows 10 64bitAutoCAD 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: 30. Jan. 2013 15:41  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 System: F1und Google
 |    erstellt am: 25. Sep. 2020 09:57  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  Für Hämmy   Gefragt war nach globaler PLine Breite und Linientypfaktor,
 hier nun eine Variante des Programmes von Marc für dich.
 Die Schreibweise sollte das Programm leicht "lesbar" machen undentsprechend anpassbar sein {wenn man sich etwas eingearbeitet hat}
 Hiermit bin ich dann raus aus dem Thema    Code:
 ;|
 Aufruf Polylinienbefehl mit vordefinierter Breite + Linientypfaktor
 und anschliessendem zurücksetzen auf die vorherigen Werte.
 Parameter:								REAL-PLINEWID = Real oder Integer Zahl
 REAL-CELTSCALE = Real oder Integer Zahl
 Anwendungsbeispiel:					(PL_WIDLTS 3.5 0.1)
 AutoCAD-Befehl Beispiel für festgelegte Wert 1.1 und 0.5(defun c:MeinBefehl nil (PL_WIDLTS 1.1 0.5))
 |;
 (defun PL_WIDLTS (REAL-PLINEWID REAL-CELTSCALE / *ERROR* OLD-PLINEWID OLD-CELTSCALE)    (defun *ERROR* (msg)(and OLD-PLINEWID (setvar 'PLINEWID OLD-PLINEWID))
 (and OLD-CELTSCALE (setvar 'CELTSCALE OLD-CELTSCALE))
 (if (not (member msg '("Function cancelled" "quit / exit abort"
 "Funktion abgebrochen"
 )
 )    )
 (princ (strcat "\nError: " msg))
 )
 (princ)
 )
 
 (setq OLD-PLINEWID (getvar "plinewid"))
 (setvar "plinewid" REAL-PLINEWID)
 
 (setq OLD-CELTSCALE (getvar "celtscale"))
 (setvar "celtscale" REAL-CELTSCALE)
 
 (command "_.PLINE")
 (while (= 1 (logand (getvar "CMDACTIVE") 1))
 (command PAUSE)
 )
 
 (setvar "plinewid"  OLD-PLINEWID)
 (setvar "celtscale" OLD-CELTSCALE)
 
 (princ)
 )
 
 Wenn du mit den Zeilen nichts anfangen kannst:Schau beim User:FAQ
  vorbei und lesen den Beitrag FAQ  :APPLOAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 25. Sep. 2020 10:29  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  @cadffm, danke für deine Mühe, du bist wirklich großartig    Ich verstehe zwar nicht alles was da drin steht, aber damit klappt es schon ganz gut    Ich muss aber doch noch einmal nachfragen, kann ich einen bestimmten Linientyp hinterlegen?Kann man das mit einbinden?
 Ich traue mich schon fast nicht mehr etwas zu Fragen, weil ich immer wieder mit noch etwas komme    Aber das würde mir meine Arbeit um einges erleichtern, und hier sind nun mal viele Fachleute
   Gruß Hämmy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 System: F1und Google
 |    erstellt am: 25. Sep. 2020 10:51  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   >>Ich muss aber doch noch einmal nachfragen,
 Gern >>Kann man das mit einbinden?Klar
 >>kann ich einen bestimmten Linientyp hinterlegen?Versuche es, keine Ahnung ob du es kannst.
 Dafür muß der Linientype bereits geladen sein und könnte ähnlich  der anderen Parameter über CELTYPE gesteuert werden.
 Tip: Versuche es umzusetzen für den einfachen Fall in dem der Linientyp bereits geladen ist,
 wenn das klappt, dann kann man sich um das automatische Laden kümmenr, falls nötig.
   Dachte du willst den Linientyp über den Layer beziehen(VonLayer),was praktisch wäre da der -LAYER Befehl die Standard Linientypen automatisch läd beim zuweisen.
 
 Der aktuelle Layer ist in CLAYER enthalten,falls doch mal der Layer gefragt ist [F1]
 >>Aber das würde mir meine Arbeit um einges erleichtern,Das war bei 99% der Leute ausschlaggebende Punkt sich mit Automatisierung zu befassen (Macro,Script,API Programmierung),
 ich denke nur ganz wenige kommen von der IT-Schiene zu dem Thema.
 >>und hier sind nun mal viele Fachleute
 Fachleute, was immer das ist, haben alle genau an diesem Punkt angefangen.
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 25. Sep. 2020 11:01  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  @cadffm, Zitat:>>kann ich einen bestimmten Linientyp hinterlegen?
 Versuche es, keine Ahnung ob du es kannst.
 Dafür muß der Linientype bereits geladen sein und könnte ähnlich  der anderen Parameter über CELTYPE gesteuert werden.
 Tip: Versuche es umzusetzen für den einfachen Fall in dem der Linientyp bereits geladen ist,
 wenn das klappt, dann kann man sich um das automatische Laden kümmenr, falls nötig.
 
 natürlich kann ich es nicht :D -der Linientyp ist bereits geladen und heisst "Folie", das ist somit kein Problem
 -bei der Umsetzung scheitert es aber, keine Ahnung wie ich das machen soll
   Zitat:Dachte du willst den Linientyp über den Layer beziehen(VonLayer),
 was praktisch wäre da der -LAYER Befehl die Standard Linientypen automatisch läd beim zuweisen.
 
 Nein diesen Linientyp will ich nicht über den Layer beziehen, da dieser Layer leider einen anderen hat, den ich nicht ändern kann. ich bin auf jeden Fall froh das dir das nicht zu viel Fragerei ist
  
 Danke für dein Verständnis    Gruß Hämmy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 System: F1und Google
 |    erstellt am: 25. Sep. 2020 11:17  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  >"natürlich kann ich es nicht" Sorry, aber da diese Antwort nicht mind zwei Tage später kamzählt alles was du versucht oder gelassen hast
 für mich nicht als Versuch es umzusetzen ;-)
 Und damit ist die Frage ob du es kannst nicht beantwortet
  Ich habe dir hier "das Drumherum" vorbereitet, nun muss nur der Rest zwischen beiden beiden ";---" Zeilen ergänzt werden,
 was dem Code zu den beiden anderen Fällen für die Breite und Linientypfaktor entsprechen sollte.
 Code:
 ;|
 Aufruf Polylinienbefehl mit vordefinierter Breite + Linientypfaktor + Linientyp
 und anschliessendem zurücksetzen auf die vorherigen Werte.
 Parameter:REAL-PLINEWID  = Real(1.0) oder Integer Zahl(1)
 REAL-CELTSCALE = Real(1.0) oder Integer Zahl(1)
 REAL-CELTYPE   = Zeichenkette ("NAME")
 Anwendungsbeispiel:(PL_WIDLTS 3.5 0.1 "VERDECKT"))
 AutoCAD-Befehl Beispiel für festgelegte Wert 1.1 und 0.5 und Linientyp Folie(defun c:MeinBefehl nil (PL_WIDLTSLAY 1.1 0.5 "FOLIE"))
 |;
 (defun PL_WIDLTSLAY (REAL-PLINEWID REAL-CELTSCALE REAL-CELTYPE / *ERROR* OLD-PLINEWID OLD-CELTSCALE OLD-CELTYPE);-------------------
 (defun *ERROR* (msg)
 (and OLD-PLINEWID (setvar 'PLINEWID OLD-PLINEWID))
 (and OLD-CELTSCALE (setvar 'CELTSCALE OLD-CELTSCALE))
 ;?
     (if (not (member msg '("Function cancelled" "quit / exit abort""Funktion abgebrochen"
 )
 )    )
 (princ (strcat "\nError: " msg))
 )
 (princ)
 )
 
 (setq OLD-PLINEWID (getvar "plinewid"))
 (setvar "plinewid" REAL-PLINEWID)
 
 (setq OLD-CELTSCALE (getvar "celtscale"))
 (setvar "celtscale" REAL-CELTSCALE)
   ;?;?
 
 (command "_.PLINE")
 (while (= 1 (logand (getvar "CMDACTIVE") 1))
 (command PAUSE)
 )
 
 (setvar "plinewid"  OLD-PLINEWID)
 (setvar "celtscale" OLD-CELTSCALE)
 ?
 ;-------------------       (princ)
 )
 
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 25. Sep. 2020 11:49  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
 Zitat:Sorry, aber da diese Antwort nicht mind zwei Tage später kam
 zählt alles was du versucht oder gelassen hast
 für mich nicht als Versuch es umzusetzen ;-)
 Und damit ist die Frage ob du es kannst nicht beantwortet
 
 Ok das gebe ich zu    Danke für deine unendliche Mühe, ich werde es dann testen    Gruß Hämmy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 25. Sep. 2020 12:17  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   | 
                        | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 28. Sep. 2020 09:13  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  @cadffm, das komische ist, wenn ich celtype eingebe, und dann "Folie", dann wechselt es zu diesem Linientyp. Warum es aber in der Lisp nicht geht, kann ich leider nicht nachvollziehen, hier bleibt es auf "ByLayer" nach ausführen der Lisp Gruß Hämmy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 System: F1und Google
 |    erstellt am: 28. Sep. 2020 09:23  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  Das ist ziemlich einfach,  und ab dort würde man schon sehen müssen was du gemacht hast    Also hänge deine LSP Datei einfach hier an, oder als Code direkt
 in die Antwort.
 Du wirst sehen: (setvar wie in dem Lisp oben genutzt funktioniert ebenso | (setvar "CELTYPE" REAL-CELTYPE)wie dein händischer Versuch dann mit (Command automatisert | (Command "CELTYPE" REAL-CELTYPE)
   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 28. Sep. 2020 09:27  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  @cadffm, ich habe das so getestet    Code:(defun c:test nil (PL_WIDLTSLAY 1.1 0.5 "Folie"))
 (defun PL_WIDLTSLAY (REAL-PLINEWID REAL-CELTSCALE REAL-CELTYPE / *ERROR* OLD-PLINEWID OLD-CELTSCALE OLD-CELTYPE);-------------------
 (defun *ERROR* (msg)
 (and OLD-PLINEWID (setvar 'PLINEWID OLD-PLINEWID))
 (and OLD-CELTSCALE (setvar 'CELTSCALE OLD-CELTSCALE))
 ;?
     (if (not (member msg '("Function cancelled" "quit / exit abort""Funktion abgebrochen"
 )
 )    )
 (princ (strcat "\nError: " msg))
 )
 (princ)
 )
   (setq OLD-PLINEWID (getvar "plinewid"))(setvar "plinewid" REAL-PLINEWID)
 
 (setq OLD-CELTSCALE (getvar "celtscale"))
 (setvar "celtscale" REAL-CELTSCALE)
   ;?;?
 
 (command "_.PLINE")
 (while (= 1 (logand (getvar "CMDACTIVE") 1))
 (command PAUSE)
 )
 
 (setvar "plinewid"  OLD-PLINEWID)
 (setvar "celtscale" OLD-CELTSCALE)
 ;-------------------
 (princ)
 )
 
 Sollte doch so richtig sein oder? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 System: F1und Google
 |    erstellt am: 28. Sep. 2020 09:57  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
 Zitat:Original erstellt von Hämmy:
 @cadffm,
 <code>
 ich habe das so getestet
 Die Frage ist warum du dies gemacht hast, es sieht aus wie meine Vorlage von oben, praktisch unverändert
 Sollte doch so richtig sein oder?
 Nein, keinesfalls, das ist ja ein unfertiger Code!?
 
 
 hmm.Ich postete diese Codevorlage mit den Worten:
 
 Zitat:Original erstellt von cadffm:
 >Ich habe dir hier "das Drumherum" vorbereitet, nun muss nur der Rest zwischen beiden beiden ";---" Zeilen ergänzt werden,
 was dem Code zu den beiden anderen Fällen für die Breite und Linientypfaktor entsprechen sollte
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 28. Sep. 2020 11:20  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   | 
                        | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 28. Sep. 2020 11:27  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  also so meinst du dann? Code:(defun c:test nil (PL_WIDLTSLAY 1.1 0.5 "Folie"))
 (defun PL_WIDLTSLAY (REAL-PLINEWID REAL-CELTSCALE REAL-CELTYPE / *ERROR* OLD-PLINEWID OLD-CELTSCALE OLD-CELTYPE);-------------------
 (defun *ERROR* (msg)
 (and OLD-PLINEWID (setvar 'PLINEWID OLD-PLINEWID))
 (and OLD-CELTSCALE (setvar 'CELTSCALE OLD-CELTSCALE))
 (and OLD-CELTYPE (setvar 'CELTYPE OLD-CELTYPE))
 ;?
     (if (not (member msg '("Function cancelled" "quit / exit abort""Funktion abgebrochen"
 )
 )    )
 (princ (strcat "\nError: " msg))
 )
 (princ)
 )
   (setq OLD-PLINEWID (getvar "plinewid"))(setvar "plinewid" REAL-PLINEWID)
 
 (setq OLD-CELTSCALE (getvar "celtscale"))
 (setvar "celtscale" REAL-CELTSCALE)
   (setq OLD-CELTYPE (getvar "celtype"))(setvar "celtype" REAL-CELTYPE)
   ;?;?
 
 (command "_.PLINE")
 (while (= 1 (logand (getvar "CMDACTIVE") 1))
 (command PAUSE)
 )
 
 (setvar "plinewid"  OLD-PLINEWID)
 (setvar "celtscale" OLD-CELTSCALE)
 (setvar "celtype" OLD-CELTYPE)
 ;-------------------
 (princ)
 )
 
 Gruß Hämmy [Diese Nachricht wurde von Hämmy am 28. Sep. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 28. Sep. 2020 11:42  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  Und jetzt noch ein Posting, sorry das ich euch alle nerve, aber ich möchte es verstehen: Code:(defun c:test nil (PL_WIDLTSLAY 1.1 0.5 "Folie"))
 
 - "defun" startet den Befehl oder? - "nil" was macht das? - "PL_WIDLTSLAY" ist das vordefiniert oder frei erstellt?    es bezieht sich ja auf den unteren Code: Code:(defun PL_WIDLTSLAY (REAL-PLINEWID REAL-CELTSCALE REAL-CELTYPE / *ERROR* OLD-PLINEWID OLD-CELTSCALE OLD-CELTYPE)
 
 heisst das, es wir mit dem oben alles ausgeführt was hier in Klammern steht? und wie ist es beim Rest, wie muss ich diesen Aufbau verstehen?
 Code:(defun *ERROR* (msg)
 (and OLD-PLINEWID (setvar 'PLINEWID OLD-PLINEWID))
 (and OLD-CELTSCALE (setvar 'CELTSCALE OLD-CELTSCALE))
 (and OLD-CELTYPE (setvar 'CELTYPE OLD-CELTYPE))
 
 das sagt sicherlich aus, was danach passiert, was macht "(msg)" ?wie es darunter steht?
 Ich denke ich muss den Aufbau verstehen um so etwas selbst zu können Gruß und trotzdem danke für die Hilfe Hämmy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 System: F1und Google
 |    erstellt am: 28. Sep. 2020 11:59  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  Servus, bin noch ein paar Minuten unterwegs undkann daher etwas schlecht nachsehen und nicht testen
 >"also so meinst du dann?"Sieht auf den ersten Blick gut aus.
 Was passiert denn wenn jetzt wenn du
 alles geladen hast und Befehl TEST startest?
 Den Rest dann in 10-20min.    
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 28. Sep. 2020 12:05  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 System: F1und Google
 |    erstellt am: 28. Sep. 2020 12:50  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  >>"damit geht es dann natürlich Na aber Hallo! Super. So sietze ich nun wieder am PC und kann den Rest beantworten - wenigstens im Groben. >>aber ich möchte es verstehen:
 
 Code:>>- "defun" startet den Befehl oder?(defun c:test nil (PL_WIDLTSLAY 1.1 0.5 "Folie"))
 
 defun DEfiniert FUNktionen, der Funktionsname folgt direkt nach defun
 Funktionsnamen welche mit C: beginnen sind besonders: Hiermit wird ein AutoCAD Befehl definiert
 (defun C:TEST definiert einen Befehl TEST
 - "nil" was macht das?nil macht überhaupt nichts, im Grunde bedeuted es wirklich "nichts". NotInList, NothingInList
 Aber da DEFUN als zweites Argument die Liste von lokalen und globalen Variablen erwartet muss ich dort etwas angeben,
 auch wenn es "nichts" ist. Zu 99% wirst du die Zeile so im Netz finden: (defun c:TEST ()... Aber da ist eben "nichts in der Liste"
 - "PL_WIDLTSLAY" ist das vordefiniert oder frei erstellt?es bezieht sich ja auf den unteren Code:
 Code:Wie oben geschrieben. Das ist mein ausgedachter Funktionsname, diese ist bis auf ein paar generellen Einschränkungen frei zu wählen(defun PL_WIDLTSLAY (REAL-PLINEWID REAL-CELTSCALE REAL-CELTYPE / *ERROR* OLD-PLINEWID OLD-CELTSCALE OLD-CELTYPE)
 
 BTW: PL_WIDLTS war gewählt um "PLine_WIDTH+LTSCALE als Abkürzung im Funktionsnamen darzustellen
 PL_WIDLTSLAY war ursprünglich für PLine_WIDTH+LTSCALE+LAYER angedacht von mir.
 Da jetzt aber der Linientyp und nicht der Layer kontrolliert wird, wäre die Abkürzung eher ungünstig und ich würde
 PL_WIDLTSLTY für PLine_WIDTH+LTSCALE+LTYPE nutzen
 Dein Befehl (defun c:TEST kann aber natürlich auch ganz anders lauten, wie zB. FOLIE => (defun c:FOLIE
 >>heisst das, es wir mit dem oben alles ausgeführt was hier in Klammern steht?Diese Zeile wird ausgeführt wenn man TEST startet: (PL_WIDLTSLAY 1.1 0.5 "Folie")
 Was dann bedeutet: Die Funktion PL_WIDLTSLAY  wird gestartet und dabei drei Argumente übergeben, 1.1 0.5 und "Folie"
 [i]>>und wie ist es beim Rest, wie muss ich diesen Aufbau verstehen? Code:(defun *ERROR* (msg)
 (and OLD-PLINEWID (setvar 'PLINEWID OLD-PLINEWID))
 (and OLD-CELTSCALE (setvar 'CELTSCALE OLD-CELTSCALE))
 (and OLD-CELTYPE (setvar 'CELTYPE OLD-CELTYPE))
 
    das sagt sicherlich aus, was danach passiert, was macht "(msg)" ? wie es darunter steht?[/i]Das ist aus der Funktion *ERROR* die nur im Fehlerfall (wie Abbruch) ausgeführt wird, die Zeile(n) sollen dann nachsehen ob zB. ein Wert für OLD-PLINEWID vorhanden ist
 und dann diesen Wert wieder aktuell setzen.
 Das Programm speichert den Wert beim Start (setq OLD-PLINEWID (getvar "plinewid")) damit
 dieser am Ende wieder zurückgesetzt werden kann, zwischendrin ändert man ja den Wert auf
 den Wert, welche du als erstes übergibst.
 >>Ich denke ich muss den Aufbau verstehen um so etwas selbst zu können
 Ja klar, den Originalcode (nur für PlineWid und CeLTscale) umarbeiten, das
 wäre etwas hoch gegriffen, daher auch meine "Fast fertig"-Vorlage und mit dieser ging es ja dann auch
 nachdem du dich mal damit beschäftigt hast.
 [F1] Hilfe zu AutoLISP/VisualLispSo ziemlich ALLES im Entwickler-Handbuch [X]
 Die Lisp-Funktionen im einzelnen [X] Wer ernsthaft einsteigen möchte, nicht nur eine paar Befehle steuern möchte und dabei über jede Klammer stolpern,
 der fängt mit sowas an: Axels AutoLISP Tutorial [X]
 Dort wird von Grund auf erklärt wie in Lisp alles funktioniert. Schlag dir alle "Ziele" aus dem Kopfund arbeite das Tutorial durch, lesen, testen in der Befehlszeile, verstehen.
 Egal wie komplizert später die Programme sind, für alle muß an diese Basics verstanden haben
 damit man nicht über jede Klammer und Zeile nachdenken muss.
 Allerdings muss man neben der Programmiersprache auch den Aufbau von so einer DWG/DXF Datei kennen,
 die Prorgrammiersprache ist also nicht das Einzige was es zu lernen gilt
 und oft nicht bewußt ist oder vergessen wird dabei. Kommt alles mit der Zeit..
 Und Hilfeseiten wie diese hier ObjectModel [X],und die DXF Referenz [X]
 aber an erster Stelle steht mal die Lisp Syntax, das Werkzeug um damit arbeiten zu können.
 Viel Spaß noch damit
 Sebastian
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 28. Sep. 2020 13:01  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  das ist doch einmal eine super Erklärung, das hat mir wirklich geholfen es etwas besser zu verstehen. Es ist schon so wie ich mir das gedacht habe, also war ich nicht ganz auf dem Holzweg    Ich werde einmal schauen ob ich die Zeit finde mich etwas mehr damit zu beschäftigen, Vorlagen habe ich jetzt genug bekommen    Danke noch einmal für die Geduld    Gruß Hämmy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | spider_dd Mitglied
 
 
     
 
      Beiträge: 1163Registriert: 27.11.2003
 Win 10ProIntel(R) Core(TM) i7-7700
 NVIDIA Quadro P1000
 ACAD, Civil-3D 2018
 |    erstellt am: 28. Sep. 2020 13:19  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
 Zitat:Original erstellt von Hämmy:
 Ich werde einmal schauen ob ich die Zeit finde mich etwas mehr damit zu beschäftigen, ...
 
 
 Wenn Du mehr mit ACAD und sich immer wiederholenden Abläufen zu tun hast, ist die Zeit sich damit mehr zu beschäftigen, sehr wertvoll eingesetzte Zeit. Sie kommt früher oder später in einem Vielfachen durch Zeiteinsperung zurück!    GrußThomas
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
 | Hämmy Mitglied
 Technischer Zeichner
 
  
 
      Beiträge: 87Registriert: 01.04.2020
 Windows 10 Professional 64-BitIntel Core i7-3770
 3,40GHz
 32,0 GB RAM
 Grafikkarte Radeon RX 470
 |    erstellt am: 28. Sep. 2020 13:33  <-- editieren / zitieren -->    Unities abgeben:           Nur für cad4fun   
  ich zeichne den ganzen Tag, darum fallen mir auch immer so Dinge auf, die mir das Zeichnen erleichtern könnten. Generell hast du damit schon Recht, ich werde sicherlich das ein oder andere mal hier noch dumm fragen, aber ich versuche mich etwas einzulesen und zu testen.    Gruß Hämmy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |