Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Schriftfeld austauschen in MDT2009

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:  Schriftfeld austauschen in MDT2009 (2409 mal gelesen)
Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

CPU: Intel core i5-2400CPU3.10GHz
8Gb RAM
Grafikkarte: AMD RADEON HD 6350
Betriebsystem: Windows 7 Professional 64 bit SP3
CAD:
Inventor 2015 Professional

erstellt am: 07. Sep. 2010 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

Hallo zusammen,

mit Lisp kenne ich mich noch nicht sonderlich aus...

Ich versuche ein Script zu schreiben, in dem die Ansichten aktuallisiert werden (das hab ich auch hinbekommen), dann soll das Schriftfeld über amtitle ausgetauscht werden und dann die Datei über amviewout als DXF exportiert werden.
Beim Austauschen des Schriftfeldes kommt mir aber ein Dialogfeld in den Weg. Kann man das irgendwie ausschalten?? Das gleiche Problem wird beim Exportieren auf mich zukommen...

Bin für jeden Tip dankbar!!

LG Bianca

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 07. Sep. 2010 15:21    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 Biondaza 10 Unities + Antwort hilfreich

Hallo Bianca,
mit MDT kenne ich mich nicht sonderlich aus 
aber Du kannst ja folgendes probieren:
- viele AutoCAD-Befehle haben auch eine Commandozeilenversion. Diese lauten immer wie der Befehl, bloß mit vorangestelltem - (minus). also z.B. bei Layer -layer
- viele der Datei-Dialoge lassen sich mit der Systemvariablen FILEDIA ausschalten.

HTH,
Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 07. Sep. 2010 15: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 Biondaza 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Biondaza:
... Beim Austauschen des Schriftfeldes kommt mir aber ein Dialogfeld in den Weg. Kann man das irgendwie ausschalten??...

Das Schriftfeld kannst du nicht unterdrücken. Du musst die internen Strukturen, die durch AMTITLE geschaffen werden analysieren und dann mit deinem Programm nachstellen, wenn du die Funktionalität erhalten willst.
Helfen können dir dabei die vielen noch aus Genius-Zeiten stammenden Mechanical-Lisp-Funktionen (leider nicht kommentiert)

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

erstellt am: 08. Sep. 2010 05: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

Danke für die Antworten

Zitat:
Original erstellt von wronzky:
- viele AutoCAD-Befehle haben auch eine Commandozeilenversion. Diese lauten immer wie der Befehl, bloß mit vorangestelltem - (minus). also z.B. bei Layer -layer

Hab ich ausprobiert, klaptt leider nicht :(


Zitat:
Original erstellt von wronzky:
- viele der Datei-Dialoge lassen sich mit der Systemvariablen FILEDIA ausschalten.

auch das hab ich leider erfolglos schon probiert gehabt...

Zitat:
Original erstellt von Brischke:
Du musst die internen Strukturen, die durch AMTITLE geschaffen werden analysieren und dann mit deinem Programm nachstellen, wenn du die Funktionalität erhalten willst.

    Wie gesagt, ich kenne mich damit nicht sonderlich aus...
Wie sieht es denn mit dem konvertieren nach dxf aus? geht das einfacher?

LG Bianca

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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

CPU: Intel core i5-2400CPU3.10GHz
8Gb RAM
Grafikkarte: AMD RADEON HD 6350
Betriebsystem: Windows 7 Professional 64 bit SP3
CAD:
Inventor 2015 Professional

erstellt am: 08. Sep. 2010 06: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

Also das Exportieren nach DXF hab ich nun auch geschafft.   
man kann das Dialogfeld mit cmddia ausschalten. Dann wird nur noch am Ende gefragt, wie es heißen und wo es hin soll, aber das ist ja ok.
Lg Bianca

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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

erstellt am: 08. Sep. 2010 07: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

Ich hätte da noch eine Frage:
Gibt es eine Möglichkeit aus dem Script heraus eine von Mechanical vorgeschlagene Eingabe so wie sie ist zu akzeptieren??
LG Bianca

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: 08. Sep. 2010 07:38    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 Biondaza 10 Unities + Antwort hilfreich

einfach eine Leerzeile für ein Enter ?

um was geht es denn genau ?

------------------
  - 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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

erstellt am: 08. Sep. 2010 08:10    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 dem Bestätigen hat sich gerade erledigt, ein Kollege konnte mir da weiterhelfen.

Zitat:
Original erstellt von CADmium:
einfach eine Leerzeile für ein Enter ?

Das hatte ich auch gedacht, gab aber eine Fehlermeldung der richtige Befehl in der Zeile ist einfach "" ohne Leerzeichen.
Es ging darum, dass MDTMechanical Desktop einen Namen und einen Speicherort vorschlägt und ich diese Angaben einfach so übernehmen wollte.

LG Bianca

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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

CPU: Intel core i5-2400CPU3.10GHz
8Gb RAM
Grafikkarte: AMD RADEON HD 6350
Betriebsystem: Windows 7 Professional 64 bit SP3
CAD:
Inventor 2015 Professional

erstellt am: 08. Sep. 2010 08:13    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

Jetzt fehlt mir noch noch das Austauschen des Schriftfeldes...
wie kann man denn die internen Strukturen analysieren, die durch amtitle erzeugt werden??

LG Bianca

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: 08. Sep. 2010 08:38    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 Biondaza 10 Unities + Antwort hilfreich

Das Schriftfeld ist auch bloß ne Blockreferenz , jedoch mit Xdatas , die es mit dem Rahmen (der auch Xdatas hat) verknüpft ... das Nachzubilden erfordert aber doch etwas Lisperfahrung. Vielleicht reicht aber auch ein einfacher Blocktauscher.

------------------
      - 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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

erstellt am: 08. Sep. 2010 09:13    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 eigentlich muss nur das Logo im Schrftfeld ausgetauscht werden, das ist das Hauptproblem und das haben wir bisher immer mit dem Austauschen des gesamten Schriftfeldes gemacht, weil die alten Einträge in das neue Schriftfeld übernommen wurden.
Kann man also auch nur das Logo, das in das Schriftfeld integriert ist, über einen Blochtausch austauschen?
Lg Bianca

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 08. Sep. 2010 09:21    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 Biondaza 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Biondaza:
Also eigentlich muss nur das Logo im Schrftfeld ausgetauscht werden...

... dann tauscht man doch auch nur das Logo aus.
1) rein in die Blockdefinition
2) Elemente, die zum Logo gehören löschen
3) Elemente des neuen Logo's rein
-fertig-
Somit gibt's überhaupt keine Schwierigkeiten.

ich überlege gerade .. das müsste doch mit einer Aktualisierung der Blockdefinition auch schon gehen.
das bekommst du im einfachsten fall mit einem (command "_.INSERT" ..) hin. Die gerade eingefügte Blockreferenz (INSERT) wieder löschen - fertig.

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

erstellt am: 08. Sep. 2010 09:37    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

Habs ausprobiert, funktioniert leider nicht, weil ein Teil des Logos als Text direkt im Schriftfeld steht...
muss also doch das ganze Schriftfeld austauschen, hat da jemand einen Ansatz für mich?
LG Bianca

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 08. Sep. 2010 12: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 Biondaza 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Biondaza:
Habs ausprobiert, funktioniert leider nicht, weil ein Teil des Logos als Text direkt im Schriftfeld steht...
muss also doch das ganze Schriftfeld austauschen, hat da jemand einen Ansatz für mich?
LG Bianca

ähmmm .. dann musst du eben diesen Text aus der Blockdefinition des Schrifteldes löschen. Diese Textobjekt sollte eindeutig über den Inhalt des Textes identifizierbar sein.
Also)
1) rein in die Blockdefinition des Schriftfeldes
2) Textobjekt aus den Elementen raussuchen
3) Textobjekt löschen
-fertig-
Im übrigen sollte dieser Text jedoch mit der Neudefinition des Schriftfeldblockes funktionieren.
So wie es scheint, habt ihr im Block Schriftfeld, den Block Logo
dann kannst du mit der Neudefinition des Blockes Logo die Geometrie des Logos ändern -- mit der Neudefinition des Blockes Schriftfeld die Geometrie des Schriftfeldes (Test verschwinden lassen) ändern. --> 2x Neudefinieren, für jeden Block einmal.

So richtig weiß ich nicht wo dein Problem ist.

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

erstellt am: 08. Sep. 2010 12: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

Hallo Holger,

Mein Problem ist nicht, das ganze so durchzuführen, sondern das ganze in Lisp reinzubekommen.
Ich progammiere sowas zum ersten mal...
LG Bianca

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 08. Sep. 2010 13:09    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 Biondaza 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Biondaza:
..., sondern das ganze in Lisp reinzubekommen. ...

Was hast du denn bis jetzt an Code geschrieben? Poste den am besten, dann wird's mit der Hilfestellung auch konkreter.

Zitat:
Original erstellt von Biondaza:
...Ich progammiere sowas zum ersten mal...

Das ist kein Problem - ist auch kein Problem, wenn du meinst dass dein Code nicht 'schön genug' für's Forum ist.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

erstellt am: 08. Sep. 2010 13:13    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

(defun c:blocktausch ( / e1 e2 e3 st1 st2 blk cnt iiss iissn iiatt regenmode attreq osmode)
  (setvar "cmdecho" 0)
  ; Referenz BLOCK angeben ....
  (setq typ "" flg T)
  (while (and flg (/= typ "INSERT"))
    (prompt (strcat "\r-- zu tauschenden BLOCK wählen ...."))
    (setq e1 (entsel))
    (if e1
      (progn
        (setq st1 (entget (car e1)))
        (setq typ (cdr (assoc 0 st1)))
        (if (/= typ "INSERT")
          (prompt (strcat "  ### '" typ "' gewählt - nicht akzeptiert !\n"))
          (setq blk (cdr (assoc 2 st1)))
        ) 
      )
      (setq flg nil)
    )
  )
  ; Referenz-WBLOCK (DWG-Datei) wählen  ....
  (if flg
    (progn
      (setq wblk nil)
      (while (and flg (null wblk))
        (setq st1 (strcat "-- BLOCK '" blk "' tauschen mit ..."))
        (setq st2 ".\\")
        (if (null (member (substr st2 (strlen st2)) (list "\\" "/")))
          (setq st2 (strcat st2 "\\"))
        )
        (setq st2 (strcat st2 blk ".dwg")) 
        (if (null (setq wblk (getfiled st1 st2 "dwg" 2)))
          (setq flg nil)
        )
      )
    )
  )
  ;Auswahlsatz mit BLOCK's w„hlen lassen ....
  (if flg
    (progn
      (prompt (strcat "--: BLOCK '" blk "' wird neudefiniert mit WBLOCK: " wblk " !\n"))
      (prompt "\r-- CAD-Elemente wählen ....")
      (setq sset (ssget))
      (if (and sset (> (sslength sset) 0))
        (progn
          (setq iiss -1 cnt 0)
          (setq regenmode (getvar "regenmode"))
          (while (< (setq iiss (1+ iiss)) (sslength sset))
            (setq e1 (ssname sset iiss))
            (setq st1 (entget e1 (list "*")))
            (if (and (assoc 2 st1) (= (cdr (assoc 2 st1)) blk))
              (progn
                (setq attreq (getvar "attreq"))
                (setq osmode (getvar "osmode"))
                (setq aunits (getvar "AUNITS"))
                (setvar "attreq" 0)
                (setvar "osmode" 0)
                (setvar "aunits" 0)
                (command "._ucs" "_world")
                ; INSERT-Element aktualisieren ....
                (if (= cnt 0)
                  (progn
                    (prompt (strcat "\r-- definiere BLOCK:'" blk "' neu ....\n"))
                    (command "._insert" (strcat blk "=" wblk)
                                          (list 0.0 0.0 0.0) 1.0 1.0 0.0)
                    (entdel (entlast))
                  )
                )
                ; - AttributWerte auslesen .....
                (setq attll nil)
                (if (= (cdr (assoc 66 st1)) 1)
                  (progn
                    (setq e2 (entnext e1))
                    (while (and e2 (setq st2 (entget e2)) (/= (cdr (assoc 0 st2)) "SEQEND"))
                      (if (member (cdr (assoc 0 st2)) (list "ATTDEF" "ATTRIB"))
                        (setq attll (cons (cdr (assoc 1 st2)) attll))
                      ) 
                      (setq e2 (entnext e2))
                    )
                    (if attll (setq attll (reverse attll)) )
                  )
                )
                ; - 'alten' BLOCK löschen ....
                (entdel e1)
                ; - 'neuen' BLOCK einfügen ....
                (command "._insert" blk (cdr (assoc 10 st1))
                                        "XYZ" (cdr (assoc 41 st1)) (cdr (assoc 42 st1)) (cdr (assoc 43 st1))
                                        (/ (* (cdr (assoc 50 st1)) 180.0) PI) )
                ; - Layer etc. aus 'altem' BLOCK bernehmen ...
                (setq st2 (entget (setq e2 (entlast))))
                (setq st2 (subst (cons  8 (cdr (assoc  8 st1))) (assoc  8 st2) st2))
                ; - EED-Infos aus 'altem BLOCK übernehmen ....
                (if (assoc -3 st1)
                  (setq st2 (append st2 (list (assoc -3 st1))))
                )
                ; - Werte in CAD eintragen ...
                (entmod st2)
                ; - 'alte' AttributWerte übernehmen ....
                (setq iiatt 0)
                (if (= (cdr (assoc 66 st2)) 1)
                  (progn
                    (setq iissn -1 e3 (entnext e2))
                    (while (and e3 (setq st2 (entget e3)) (/= (cdr (assoc 0 st2)) "SEQEND"))
                      (if (member (cdr (assoc 0 st2)) (list "ATTDEF" "ATTRIB"))
                        (progn
                          (if (< (setq iissn (1+ iissn)) (length attll))
                            (entmod (subst (cons 1 (nth iissn attll)) (assoc 1 st2) st2))
                          )
                          (setq iiatt (1+ iiatt))
                        )
                      )
                      (setq e3 (entnext e3))
                    )
                    (entupd e3)
                  )
                ) 
                ; Fehlerdiagnose ....
                (if (> (length attll) iiatt)
                  (prompt (strcat "\r  ## ACHTUNG: (" (itoa (- (length attll) iiatt))
                                  ") AttributWerte gehen verloren !\n"))
                )
                (setq cnt (1+ cnt))
                (setvar "attreq" attreq)
                (setvar "osmode" osmode)
                (setvar "aunits" aunits)
                (command "._ucs" "_prev")
              )
            )
          )
          (prompt        "\r                                    \r")
          (prompt (strcat "\r--: " (itoa cnt) " BLOCK's '" blk "' geändert !\n"))
          ; regenerieren ....
          (if (> cnt 0)
            (progn
              (prompt "\r-- regeneriere Zeichnung .....\n")
              (command "._regen")
            ) 
          )
          (setvar "regenmode" regenmode)
        )
      )
      (setq sset nil)
    )
  )
  (prin1)
)


Ich habe diese Datei gefungen um den Block des Schriftfeldes auszutauschen.
Der Blöcke die gegeneinander ausgetauscht werden sollen heißen immer gleich. Kann man da was ergänzen, um die Auswahl zu umgehen?
Das er also immer den Block mit namen X gegen den Block mit Namen Y von Speierort Z austauscht?
LG Bianca

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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

CPU: Intel core i5-2400CPU3.10GHz
8Gb RAM
Grafikkarte: AMD RADEON HD 6350
Betriebsystem: Windows 7 Professional 64 bit SP3
CAD:
Inventor 2015 Professional

erstellt am: 08. Sep. 2010 13: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

Das sollte übrigens ohne Abfrage laufen, weil folgende Befehle noch hintendran sollen

setvar "tilemode" 0)
(setvar "filedia" 0)
(command "amupdate" "ansicht" "alle")
(command "-amviewout" "q" "l" "o" "n" "t" "j" "f" "j" "e" "d" "b" "m" "w" "dxf" "v" "2004" "w" "")
(setvar "filedia" 1)
)

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 10. Sep. 2010 11: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 Biondaza 10 Unities + Antwort hilfreich

Hallo Bianca,

jetzt wollen wir mal zu der einfachsten Lösung kommen.
Du erstellst die neuen Blockdefinitionen als Zeichnung, dann kannst du dies mit die Aktualisierung deines Schriftfeldes mit der folgenden Lisp-Zeile bewerkstelligen.
(command "_.-INSERT" "XXX=c:\\XXX.dwg" '(0.0 0.0 0.0) "XYZ" 1 1 1 0)(entdel(entlast))
Das XXX ersetzt du bitte durch deinen Schriftfeldnamen.
Wahrscheinlich wirst du den Code 2x schreiben müssen, weil ja auch der Logo-Block geändert wird. Verschachtelte Blöcke werden mit dieser Methode nicht aktualisiert.
Das heißt also:
1. Logoblock an Stelle des XXX
2. SchriftfeldBlock an Stelle des XXX

Alles klar?

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

erstellt am: 10. Sep. 2010 12:46    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

Vielen Dank für die Hilfe!!

Aber diese Funktion tausche den Block nicht gegen den anderen aus. kann man die obere Lösung nicht so erweitern, dass sie automatisch Block A gegen Block B tauscht, denn bis auf die Abfragen fuktioniert das einwandfrei und übernimmt sogar die Einträge in der Stückliste.

Lg Bianca

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 10. Sep. 2010 14:25    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 Biondaza 10 Unities + Antwort hilfreich

ähm sorry,

du schreibst:
1) es ändert sich nur das Logo im Schriftfeld
2) Neu definieren geht nicht, weil noch ein Text im eigentlichen Schriftfeld enthalten ist, der weg soll.

Daraus schließe ich:
A) das Logo ist ein extra Block innerhalb des Schriftfeld-Blocks
B) Wir haben es also mit 2 Blöcken zu tun: Logo und Schriftfeld

Wenn du nun sagst, das geht so nicht, dann sind die von dir genannten Rahmenbedingungen nicht korrekt.

So lange sich an den Attributen bzw. deren Definition nichts ändert, kannst du jeden Block neu definieren, ohne dass ein Attsync durchgeführt werden müsste. Die Änderung der Geometrie wird direkt (spätestens nach einer Regenerierung) sichtbar.

Bedingung für das von mir vorgeschlagene Vorgehen ist jedoch, dass der Neue Logo- und der neue Schriftfeldblock genauso heißen, wie die alten Blöcke! Wenn dir das nicht gefällt, dann musst du ein Umbenennen integrieren, entweder vor der Neudefinition oder nach der Neudefinition.

Wenn das hier alles nichts hilft .. ruf einfach an(Tel Nr solltest du rausbekommen). Dann können wir via Teamviewer mal schauen, was bei dir schief läuft.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

erstellt am: 10. Sep. 2010 14:54    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,

ich hab das alles nochmal durchprobiert und glaube ich weiß jetzt wo das Problem liegt: in unserem neuen Schriftfeld ist das Logo nicht als Block sondern gezeichnet. Und an unseren Vorlagen darf ich nichts verändern...
mit dem Blocktausch funktioniert das austauschen reibungslos, nur dass zuerst die Abfrage kommt, welchen Bock ich wegtauschen möchte und dann, welchen ich statt dessen einsetzen möchte (mit Dialogfeld).
Wenn ich dieses Dialogfeld mit einer Änderung im Text umgehen könnte und dafür fest definierte Namen und Speicherorte eingeben könnte, wäre mit geholfen. Ich glaube, ich weiß auch an welcher Stelle ich was ändern muss. was mir noch fehlt ist, dass ich nicht weiß, wie ich über LISP einen bestimmten Block anwählen kann.

LG Bianca

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 10. Sep. 2010 15: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 Biondaza 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Biondaza:
ich hab das alles nochmal durchprobiert und glaube ich weiß jetzt wo das Problem liegt: in unserem neuen Schriftfeld ist das Logo nicht als Block sondern gezeichnet. Und an unseren Vorlagen darf ich nichts verändern...

Bianca, drücke ich mich so unverständlich aus?
Wenn in der neuen Schriftfelddefinition nun das Logo nicht mehr als Block enthalten ist, dann musst du dieses Logo auch nicht mehr aktualisieren - soweit ist das logisch.
Folglich ändert sich in deinem Schriftfeld reine Geometrie, so dass du das Thema mit einer Neudefinition des Blocks auf einfachste Art und Weise lösen kannst.
Alles was ich jetzt noch schreiben könnte wären Wiederholungen ... ich klinke mich hier auf dem Weg des Forums aus, weil ich keine Chance einer wirklichen Hilfe sehe.
Den Code werde ich nicht ändern, weil es damit durchaus möglich ist, dass du die Mechanical-Funktionalität zerschießt (ich habe es nicht getestet) und weil du den Code nicht verstanden hast. Das ist kein Problem, aber gerade in diesem Fall solltest du dich mit dieser einen Code-Zeile, die nichts anderes als Darstellung der notwendigen Befehlszeileneingaben ist wirklich mal beschäftigen und die Voraussetzungen, dass du diese anwenden kannst in deinem System herstellen. Es vrlangt niemand von dir, dass du irgendeine Vorlage änderst.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 10. Sep. 2010 15: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 Biondaza 10 Unities + Antwort hilfreich

letzter Versuch: Die Änderung auf deine Umgebung solltest du hinbekommen.
Code:

(command "_.RENAME" "_BL" "ALTERNAME" "NEUERNAME")
(command "_.-INSERT" "NEUERNAME=c:\\NEUERNAME.dwg" '(0.0 0.0 0.0) "XYZ" 1 1 1 0)
(entdel(entlast))

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

Biondaza
Mitglied
CAD Konstrukteurin


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

Beiträge: 89
Registriert: 25.04.2008

erstellt am: 13. Sep. 2010 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

Hat prima funktioniert!!!
Vielen, vielen Dank für die Hilfe!!!!

LG Bianca

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