Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Block einfügen und weitere Prozedur

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:  Block einfügen und weitere Prozedur (545 mal gelesen)
ReneReichel
Mitglied
Technischer Projektleiter


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

Beiträge: 58
Registriert: 07.02.2018

ACAD 2019
Win10, Intel Xeon CPU E3-1275 v6, 3.80 GHz, 32 GB RAM, NVIDIA Quadro P4000

erstellt am: 20. Apr. 2022 14: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


Blockeinfugen.txt

 
Hallo zusammen,

ich habe ein Problem beim Einfügen von Blöcken via LISP.

Ich möchte gern einen (über einen Dialog) vorgewählten Block einfügen (Speicherpfad ist immer gleich), auf einen bestimmten Layer legen und mit einer Mulitführungslinie beschriften.

Das Problem hierbei ist, dass nach:

(command "._insert" datei "_s" 1)

mit der Prozedur nicht auf die Auswahl des Einfügepunktes gewartet wird und somit der nächste Prozedurschritt (mleader) an die Stelle des Einfügepunktes rückt und die Funktion abgebrochen wird.

Kann man der Prozedur beibringen, die Positionierung des Blocks abzuwarten?

Danke.

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

cadffm
Moderator
良い精神




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

Alles

erstellt am: 20. Apr. 2022 15:27    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 ReneReichel 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von ReneReichel:
Kann man der Prozedur beibringen, die Positionierung des Blocks abzuwarten?


die Funktion PAUSE ermöglicht eine Benutzereingabe innerhalb eines (Command
Beispiel: (command "_.LINE" "@" PAUSE "")

(command "-layer" "se"
        einen Layer aktuell setzen kannst du nur wenn
        a) der Layer existiert und
        b) der Layer nicht gefroren ist
        beides solltest du berücksichtigen und beides kannst du mit Befehl LAYER / -LAYER erledigen.
        Wegen b) führst du erst ein Layer ENTsperren durch, danach ein Layer MACHEN statt SEtzen.

(command "._insert" datei "_s" 1)
        Führe dein BLEINF mal aus (während CMDECHO auf 1 steht) und schau
        dir im Textfenster an was abgelaufen ist [F2].
        Es ist gut die XYZ-Skalierung anzugegebn, aber WOHIN soll die Blockreferenz eingefügt werden?

        Und mit welcher Drehung?
        Warum geht dein Programm über diesen Punkt hinaus, obwohl es doch hier immer crashed?
       

BTW: (setq datei (strcat Pfad "Blockname.dwg"))
        Soll die bereits vorhandene Blockdefinition "Blockname" genutzt werden (falls vorhanden)
        oder immer die Definition aus der Datei "Blockname.dwg" ?


(setq mleader (entlast))
(setq mleader_data (entget mleader))
(if (assoc 8 mleader_data)
    (setq mleader_data (subst (cons 8 "---BEM") (assoc 8 mleader_data) mleader_data))
    (setq mleader_data (reverse (cons (cons 8 "---BEM") (reverse mleader_data))))
)
(entmod mleader_data)
          Wenn du schon mit (command "-layer" "se" arbeitest, dann könntest du das
          ja auch für den MLeader Layer machen - das wäre dann wenigstens "einheitlich"
                                     

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

ReneReichel
Mitglied
Technischer Projektleiter


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

Beiträge: 58
Registriert: 07.02.2018

ACAD 2019
Win10, Intel Xeon CPU E3-1275 v6, 3.80 GHz, 32 GB RAM, NVIDIA Quadro P4000

erstellt am: 20. Apr. 2022 16:06    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 cadffm,

danke für Deine Antwort.

Zitat:
Original erstellt von cadffm:


die Funktion PAUSE ermöglicht eine Benutzereingabe innerhalb eines (Command
Beispiel: (command "_.LINE" "@" PAUSE "")

 


Danke, dass hilft ungemein...:-)

Zitat:
Original erstellt von cadffm:

(command "-layer" "se"
         einen Layer aktuell setzen kannst du nur wenn
         a) der Layer existiert und
         b) der Layer nicht gefroren ist
         beides solltest du berücksichtigen und beides kannst du mit Befehl LAYER / -LAYER erledigen.
         Wegen b) führst du erst ein Layer ENTsperren durch, danach ein Layer MACHEN statt SEtzen.

Das ist klar, spielt aber hier keine Rolle, da die Layerstrukturen bei uns immer gleich sind. Da Schrauben immer auf dem Layer ---Schrauben eingefügt werden, darf der Benutzer auch gern merken, wenn das nicht geht, weil der Layer gefroren ist... Grundsätzlich hast Du dabei aber natürlich recht.

Zitat:
Original erstellt von cadffm:

(command "._insert" datei "_s" 1)
         Führe dein BLEINF mal aus (während CMDECHO auf 1 steht) und schau
         dir im Textfenster an was abgelaufen ist [F2].
         Es ist gut die XYZ-Skalierung anzugegebn, aber WOHIN soll die Blockreferenz eingefügt werden?

         Und mit welcher Drehung?
         Warum geht dein Programm über diesen Punkt hinaus, obwohl es doch hier immer crashed?


CMDECHO steht bei mir immer auf 1, das nachschauen in der Befehlszeile hat mir auch schon mehrmals bei der Lösungsfindung geholfen. Grundsätzlich soll der Benutzer den Einfügepunkt und Drehung angeben, das hat ohne die Pause ja auch funktioniert. Mit der Pause wird der Block jetzt "irgendwo" eingefügt, muss ich das mit einer getpoint-Aufforderung abfangen?

Der angehängte mleader-Teil ist Copy&Paste aus einer anderen Routine von mir, hatte ich beim Schreiben schon mit drangehängt...

Zitat:
Original erstellt von cadffm:

BTW: (setq datei (strcat Pfad "Blockname.dwg"))
         Soll die bereits vorhandene Blockdefinition "Blockname" genutzt werden (falls vorhanden)
         oder immer die Definition aus der Datei "Blockname.dwg" ?

Mit der Routine wird ein dynamischer Block (in dem Fall eine Schraube) gem. der Auswahl aus einem Dialog eingefügt, also wird die Definition aus der entsprechenden Datei genutzt.

Zitat:
Original erstellt von cadffm:

(setq mleader (entlast))
(setq mleader_data (entget mleader))
(if (assoc 8 mleader_data)
    (setq mleader_data (subst (cons 8 "---BEM") (assoc 8 mleader_data) mleader_data))
    (setq mleader_data (reverse (cons (cons 8 "---BEM") (reverse mleader_data))))
)
(entmod mleader_data)
          Wenn du schon mit (command "-layer" "se" arbeitest, dann könntest du das
          ja auch für den MLeader Layer machen - das wäre dann wenigstens "einheitlich"
                                     
 

Wie gesagt, das ist ein Code-Schnipsel aus einer anderen Routine. Beim einzufügenden Block hab ich das über "-layer" "se" gelöst, da man beim (command "._insert") ja keinen Layer festlegen kann und ich nicht weiß, wie ich den gerade eingefügten Block ansprechen kann (vielleicht geht's nach der pause mit entlast...?)

Danke Dir auf jeden Fall für Deine Hilfe.

Grüße René

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

cadffm
Moderator
良い精神




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

Alles

erstellt am: 20. Apr. 2022 16: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 ReneReichel 10 Unities + Antwort hilfreich

>>"das hat ohne die Pause ja auch funktioniert."
höchstens weil schon alles gecrashed war und der Einfüge-Befehl noch aktiv,
aber "FUNKTIONIERT" hat da nichts mehr.


>>" Mit der Pause wird der Block jetzt "irgendwo" eingefügt,"
Das liegt sich nicht an der Pause, aber da du deinen missglückten Versuch nicht gepostet hast, können wir nicht sehen was du da machst.
Aus de, effeff: Nach der option s und der Angabe des Skalierfaktors(1) fragt der Befehl nach dem Einfügepunkt,
also muss nach deinem ..."_s" 1
PAUSE stehen damit der Benutzer den Einfügepunkt angeben kann:  ..."_s" 1 PAUSE
Danach wird der Befehl eine weitere Fragen haben und wenn die dann beantwortet
wurde, ist der Befehl abgearbeitet und beendet.

>>"Mit der Routine wird ein dynamischer Block (in dem Fall eine Schraube) gem. der Auswahl aus einem Dialog eingefügt,"
Dein Beispielcode lässt keine Benutzerauswahl aus einem Dialog zu, daher habe ich keine Ahnung wovon du sprichst,
auch wenn ich es inhaltlich schon verstehe.


>>"also wird die Definition aus der entsprechenden Datei genutzt. "
Nein, nur wenn es noch keinen Block mit dem Namen in der Zieldatei gibt.
(oder man gibt es dementsprechend an, aber so pauschal und ohne zutun ist es genau nicht der Fall)

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

cadffm
Moderator
良い精神




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

Alles

erstellt am: 20. Apr. 2022 16: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 ReneReichel 10 Unities + Antwort hilfreich

Hier mal ausgehen von "Original" bis hin zu "funktioniert"

Befehl: CMDECHO

Neuen Wert für CMDECHO eingeben <0>: 1

Befehl: (command "._insert" datei "_s" 1)
._insert Blocknamen eingeben oder [?] <123>: D:\123.dwg
Einheiten: Millimeter  Konvertierung:    1.0000
Einfügepunkt angeben oder [Basispunkt/Faktor/X/Y/Z/Drehen]: _s Skalierfaktor für XYZ-Achsen angeben <1>: 1 Einfügepunkt angeben oder [Basispunkt/Faktor/X/Y/Z/Drehen]: nil
Einfügepunkt angeben
oder [Basispunkt/Faktor/X/Y/Z/Drehen]: *Abbruch*

Befehl: (command "._insert" datei "_s" 1 PAUSE)
._insert Blocknamen eingeben oder [?] <123>: D:\123.dwg
Einheiten: Millimeter  Konvertierung:    1.0000
Einfügepunkt angeben oder [Basispunkt/Faktor/X/Y/Z/Drehen]: _s Skalierfaktor für XYZ-Achsen angeben <1>: 1 Einfügepunkt angeben oder [Basispunkt/Faktor/X/Y/Z/Drehen]:
Drehwinkel angeben <0>: nil

Drehwinkel angeben <0>: *Abbruch*

Befehl: (command "._insert" datei "_s" 1 PAUSE PAUSE)
._insert Blocknamen eingeben oder [?] <123>: D:\123.dwg
Einheiten: Millimeter  Konvertierung:    1.0000
Einfügepunkt angeben oder [Basispunkt/Faktor/X/Y/Z/Drehen]: _s Skalierfaktor für XYZ-Achsen angeben <1>: 1 Einfügepunkt angeben oder [Basispunkt/Faktor/X/Y/Z/Drehen]:
Drehwinkel angeben <0>: 33

Befehl: nil

Jetzt mal mit fixem Drehwinkel (33° im BKS)

Befehl: (command "._insert" datei "_s" 1 PAUSE 33)
._insert Blocknamen eingeben oder [?] <123>: D:\123.dwg
Einheiten: Millimeter  Konvertierung:    1.0000
Einfügepunkt angeben oder [Basispunkt/Faktor/X/Y/Z/Drehen]: _s Skalierfaktor für XYZ-Achsen angeben <1>: 1 Einfügepunkt angeben oder [Basispunkt/Faktor/X/Y/Z/Drehen]:
Drehwinkel angeben <0>: 33
Befehl: nil

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

ReneReichel
Mitglied
Technischer Projektleiter


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

Beiträge: 58
Registriert: 07.02.2018

ACAD 2019
Win10, Intel Xeon CPU E3-1275 v6, 3.80 GHz, 32 GB RAM, NVIDIA Quadro P4000

erstellt am: 21. Apr. 2022 08: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


Blockeinfugen.txt


Schraubenbox.txt

 
Hallo cadffm,

guten Morgen und danke für Deine beiden Beiträge.

Zitat:
Original erstellt von cadffm:
>>"das hat ohne die Pause ja auch funktioniert."
höchstens weil schon alles gecrashed war und der Einfüge-Befehl noch aktiv,
aber "FUNKTIONIERT" hat da nichts mehr.

>>" Mit der Pause wird der Block jetzt "irgendwo" eingefügt,"
Das liegt sich nicht an der Pause, aber da du deinen missglückten Versuch nicht gepostet hast, können wir nicht sehen was du da machst.
Aus de, effeff: Nach der option s und der Angabe des Skalierfaktors(1) fragt der Befehl nach dem Einfügepunkt,
also muss nach deinem ..."_s" 1
PAUSE stehen damit der Benutzer den Einfügepunkt angeben kann:  ..."_s" 1 PAUSE
Danach wird der Befehl eine weitere Fragen haben und wenn die dann beantwortet
wurde, ist der Befehl abgearbeitet und beendet.


Mein Fehler, ich hatte zwar die PAUSE nach "_s" 1 eingefügt, danach aber ein "" anstatt einer zweiten PAUSE...

Zitat:
Original erstellt von cadffm:

>>"Mit der Routine wird ein dynamischer Block (in dem Fall eine Schraube) gem. der Auswahl aus einem Dialog eingefügt,"
Dein Beispielcode lässt keine Benutzerauswahl aus einem Dialog zu, daher habe ich keine Ahnung wovon du sprichst,
auch wenn ich es inhaltlich schon verstehe.


>>"also wird die Definition aus der entsprechenden Datei genutzt. "
Nein, nur wenn es noch keinen Block mit dem Namen in der Zieldatei gibt.
(oder man gibt es dementsprechend an, aber so pauschal und ohne zutun ist es genau nicht der Fall)


Ich hatte hier nur den "nicht funktionierenden" Teil des Codes gepostet, da die Auswahl der einzufügenden Schraube über den Dialog und das Einfügen des richtigen Blocks ja lief.
Anbei die komplette Prozedur...

Du hast recht, ich hatte außer Acht gelassen, dass die dynamischen Änderungen ja einen (versteckten) neuen Blocknamen generieren. Das macht ja für die Prozedur an sich aber keinen Unterschied, oder?

Bezüglich der Beschriftung habe ich noch einen Wunsch:

Ich würde gern die Beschriftung so gestalten, dass hier mehrere Parameter des einzufügenden Blocks dynamisch in Schriftfelder verknüpft werden (so wie man das beim manuellen Beschriften machen kann).
Die Beschriftung sollte sich bei entsprechender Änderung der dynamischen Parameter (z.B. Länge) mit ändern...

Lassen sich Blockparameter auf diese Art abgreifen?

Danke.

Grüße René

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

cadffm
Moderator
良い精神




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

Alles

erstellt am: 21. Apr. 2022 08: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 ReneReichel 10 Unities + Antwort hilfreich

Moin,

ich haue mal ein paar Aussagen raus ohne es extra zu prüfen:


>>"Mein Fehler, ich hatte zwar die PAUSE nach "_s" 1 eingefügt, danach aber ein "" anstatt einer zweiten PAUSE..."
Dann hätte es soweit funktioniert und dein "" hätte eine Drehung von 0° bewirkt, statt nach der Drehung zu fragen.
Aber: Egal

>>"Du hast recht, ich hatte außer Acht gelassen, dass die dynamischen Änderungen ja einen (versteckten) neuen Blocknamen generieren."
Damit hat das nichts zutun. Es ist einfach Standard das AutoCAD immer die bereits intern vorhandenen benannten Objekte (wie Blöcke) nutzt,
nur wenn es noch keine Definition mit diesem Namen gibt - dann wird importiert.

Erstelle eine Blockreferenz, bearbeite den Block mit BEDIT - lösche alles und erstelle einen Kreis.
Nun führe dein Lisp erneut durch. Verstehst du mich jetzt oder bestätigt sich deine eigene Aussage?


>>"Ich würde gern die Beschriftung so gestalten, dass hier mehrere Parameter des einzufügenden Blocks dynamisch in"
>>"Schriftfelder verknüpft werden (so wie man das beim manuellen Beschriften machen kann)."
>>"Die Beschriftung sollte sich bei entsprechender Änderung der dynamischen Parameter (z.B. Länge) mit ändern..."
>>"Lassen sich Blockparameter auf diese Art abgreifen?"

Offenbar sprichst du einfach nur von "Schriftfelder" und zum großen Teil wäre die Antwort dann: Ja
Gehe in den Blockeditor, erstelle eine Attributdefinition (ATTDEF) und beim Vorgabe-Wert
kannst du dann ein Schriftfeld einfügen (Kategorie Objekt, Blockplatzhalter..)


- - -


>>"Beim einzufügenden Block hab ich das über "-layer" "se" gelöst, da man beim (command "._insert") ja keinen Layer festlegen kann"
>>"und ich nicht weiß, wie ich den gerade eingefügten Block ansprechen kann (vielleicht geht's nach der pause mit entlast...?)"

Es würde auch mit entlast gehen, ja.  Ich selbst hätte es wohl aber einfach über den Layer-vorher-setzen Weg gemacht,
so wie du beim Einfügen, aber eben auch für den MLeader. Wenn ich schon (command für Einfügen und MLeader verwende,
dann kann ich das für die Layer doch auch machen.

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

ReneReichel
Mitglied
Technischer Projektleiter


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

Beiträge: 58
Registriert: 07.02.2018

ACAD 2019
Win10, Intel Xeon CPU E3-1275 v6, 3.80 GHz, 32 GB RAM, NVIDIA Quadro P4000

erstellt am: 21. Apr. 2022 09:39    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

Zitat:
Original erstellt von cadffm:

>>"Du hast recht, ich hatte außer Acht gelassen, dass die dynamischen Änderungen ja einen (versteckten) neuen Blocknamen generieren."

Damit hat das nichts zutun. Es ist einfach Standard das AutoCAD immer die bereits intern vorhandenen benannten Objekte (wie Blöcke) nutzt,
nur wenn es noch keine Definition mit diesem Namen gibt - dann wird importiert.

Erstelle eine Blockreferenz, bearbeite den Block mit BEDIT - lösche alles und erstelle einen Kreis.
Nun führe dein Lisp erneut durch. Verstehst du mich jetzt oder bestätigt sich deine eigene Aussage?


Hab ich verstanden. Ich hatte mich bei meiner ursprünglichen Aussage davon "täuschen" lassen, dass der Block immer mit den ursprünglichen Werten für die dynamischen Parameter eingefügt wird...

Zitat:
Original erstellt von cadffm:

>>"Ich würde gern die Beschriftung so gestalten, dass hier mehrere Parameter des einzufügenden Blocks dynamisch in"
>>"Schriftfelder verknüpft werden (so wie man das beim manuellen Beschriften machen kann)."
>>"Die Beschriftung sollte sich bei entsprechender Änderung der dynamischen Parameter (z.B. Länge) mit ändern..."
>>"Lassen sich Blockparameter auf diese Art abgreifen?"

Offenbar sprichst du einfach nur von "Schriftfelder" und zum großen Teil wäre die Antwort dann: Ja
Gehe in den Blockeditor, erstelle eine Attributdefinition (ATTDEF) und beim Vorgabe-Wert
kannst du dann ein Schriftfeld einfügen (Kategorie Objekt, Blockplatzhalter..)

Das ist mir bekannt, wende ich bei dyn. Blöcken auch an. Mein Ziel wäre es, bei der Beschriftung in der Prozedur verschiedene Parameter abzufragen und als Schriftfeld in die Multiführung einzufügen, so dass das manuelle Beschriften entfällt.
Alternativ kann man natürlich auch ein "Beschriftungs-Attribut" mit mehreren Schriftfeldern erstellen und das abgreifen, aber auch da weiß ich nicht, wie ich das beim Einfügen des Blocks zu fassen kriege und wie sich das als dynamisches Schriftfeld ausgeben lässt...

Zitat:
Original erstellt von cadffm:

>>"Beim einzufügenden Block hab ich das über "-layer" "se" gelöst, da man beim (command "._insert") ja keinen Layer festlegen kann"
>>"und ich nicht weiß, wie ich den gerade eingefügten Block ansprechen kann (vielleicht geht's nach der pause mit entlast...?)"

Es würde auch mit entlast gehen, ja.  Ich selbst hätte es wohl aber einfach über den Layer-vorher-setzen Weg gemacht,
so wie du beim Einfügen, aber eben auch für den MLeader. Wenn ich schon (command für Einfügen und MLeader verwende,
dann kann ich das für die Layer doch auch machen.

 


Ja, werde ich aus Gründen der Einheitlichkeit so machen...

Grüße René

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

cadffm
Moderator
良い精神




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

Alles

erstellt am: 21. Apr. 2022 10: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 ReneReichel 10 Unities + Antwort hilfreich

>>" als Schriftfeld in die Multiführung einzufügen"
Jetzt habe auch ich es verstanden, lasse dich aber mit folgender Aussage allein damit:

Wenn es nicht um MLeader gehen würde: Klares JA (aber da ich es für MLeader nicht 100% weiss, halte ich mich etwas zurück)

Hier mit Links zu den grundsätzliche Funktionen, also kein Plug&Play, sondern zum Testen und Abschauen.

du erzeugst die Blockreferenz,
liest die dynamischen Parameter Objekte aus
erzeugst natürlich auch deinen MLeader
und änderst dann dessen Textwerte -> erstellst Schriftfelder welche auf
die ermittelten Parameter verweisen.

Mein Tip um nicht unnötig über Probleme zu stolpern:
1. Teste mit einem simplen "statischen" Schriftfeldcode, so umgehst du zunächst potentielle Probleme beim Schriftfeldcode erzeugen.
  Nimm einfach irgendeinen, zB. %<\AcVar ctab>% also  "%<\\AcVar ctab>%"


2. Test das Ganze zunächst mit einem Text Objekt statt mit deinem MLeader,
  wenn du das hinbekommst, dann kannst du dasselbe mit einem MLeader testen

-

Klappt das dann mit CTAB und dem TEXT, dann kannst du es mit einem MLeader testen und
dann auch mit den richtigen Block-Parametern.

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

ReneReichel
Mitglied
Technischer Projektleiter


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

Beiträge: 58
Registriert: 07.02.2018

ACAD 2019
Win10, Intel Xeon CPU E3-1275 v6, 3.80 GHz, 32 GB RAM, NVIDIA Quadro P4000

erstellt am: 21. Apr. 2022 10: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

Hallo cadffm,

Zitat:
Original erstellt von cadffm:
>>" als Schriftfeld in die Multiführung einzufügen"
Jetzt habe auch ich es verstanden, lasse dich aber mit folgender Aussage allein damit:

allein lassen sieht anders aus... 

Da hab ich jetzt auf jeden Fall mal Futter für die nächste Zeit und einen Ansatz, wie's gehen kann.

Danke Dir für Deine umfangreiche Mühe und Deine schnellen Antworten.

Grüße René

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