Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Automatische Auswahl aller Texte via Schaltfläche (LISP oder MAKRO). Bitte um Hilfe.

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:  Automatische Auswahl aller Texte via Schaltfläche (LISP oder MAKRO). Bitte um Hilfe. (1663 mal gelesen)
neo4matrix
Mitglied



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

Beiträge: 136
Registriert: 15.01.2008

HP™ z2 Tower G4 Workstation mit
Intel® Core™ i9-9900K 8x 3.6 GHz-5.0 GHz
32 GB Arbeitsspeicher
1 TB HP Z Turbo PCIe® SSD
NVIDIA® Quadro® P2200 mit 5 GB RAM
HP™ 24" LPS LED TFT 16:10 ZR2440w.
Windows 10 Pro, 64 Bit
AutoCAD 2019 Design Suite Standard, SP1, 64 Bit
ecscad 2019, v19.1.0.20, 64 Bit
Microstation v8 2004, 32 Bit
MicroStation CONNECT Edition Update 11
Microsoft Office 365, 32 Bit
Microsoft Visio 2013, 32 Bit

erstellt am: 15. Jan. 2008 19: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

Wie ich sehe sind hier tausende CAD Profis am Werk!

Ich habe folgende kleine Aufgabe für Euch:

Ich müsste eine Schaltfläche haben, welche eine MAKRO-Abfolge,
oder ein LISP startet, welches folgendes erledigt:

• Alle vorhandenen Texte im Modell der Zeichnung auswählen
• Textausrichtung auf "unten links" ändern (vorher waren alle auf "einpassen")
• Textstil "Arial" auswählen (Stil schon vorhanden)
• Farbe, Linientyp, Linienstärke alles auf "VonLayer"
• Dann alle Texte auf Layer "N-160_Text" (Layer schon vorhanden) setzen.
• Layer "N-160_Text" frieren

Somit sind alle Texte linksbündig, weiss, auf dem richtigen Layer
und ausgeblendet für weitere Schritte...

Bis jetzt musste ich dies mühsam von Hand machen mit:

Ablaufplan:

• In das Modell wechseln (Befehl: modell)
• Alle Texte wählen: Schnellauswahl (_qselect), Text, Alle wählen, OK
• Textausrichtung links (Befehlskette: _justifytext;l; )
• Alle Texte wählen: Schnellauswahl (_qselect), Text, Alle wählen, OK
• Textstil Arial auswählen
• Farbe: VonLayer
• Linientyp: VonLayer
• Linienstärke: VonLayer
• Layer: "N-160_Text"
• Layer frieren: "N-160_Text" (Befehlskette: -la;fr;N-160_Text;; )

Das mag für ein, zwei Pläne ok sein, aber ich muss etwa 1000 solcher Schemas
im Jahr bearbeiten!


Infos, warum das Ganze:

Es handelt sich um Elektroschemas, welche von MegaCAD 2007 in AutoCAD 2006
gewandelt wurden (Batchkonverter). Leider sind dann immer alle
Textausrichtungen auf "einpassen" und sehen verzerrt aus.

Mit Schaltflächen und Makro kenne ich mich aus, LISP ist für mich Neuland!


Wäre cool , wenn jemand won Euch helfen könnte... Auch Teillösungen sind
herzlich willkommen, wie zum Beispiel die reine Auswahl aller Texte mit
nur einem Klick...


mfg

neo

------------------
Welcome to the Real

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

carmelli76
Mitglied
CAD/GIS Teamleitung


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

Beiträge: 553
Registriert: 05.07.2004

Autodesk Civil 3D 2014
Revit 2016
Vault 2014

erstellt am: 15. Jan. 2008 19:32    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 neo4matrix 10 Unities + Antwort hilfreich

Huhu,

Ich glaub, das koenntest du auch mit einem Script hinkriegen, da brauchst du gar kein Lisp zu koennen, sondern nur die Befehlsnamen.
Schreib all deine Befehle (inclusive aller erfordlerlichen enter (=return)) in eine neue Datei im Notepad. Speichere die datei mit der Endung .scr. Nun rufe die Datei ueber den Befehl "script" auf.

Zur Fehlerminimierung wuerd ich das Script in kleinen Schritten schreiben und am Ende zusammensetzen.

Hoffentlich klappt es.

Viel Glueck.

LG aus Dublin.

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


Ex-Mitglied

erstellt am: 15. Jan. 2008 22:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat


chtext.lsp.txt

 
Einen großen Teil Deiner Aufgaben dürfte mit der CHTEXT.lsp aus den Bonustools von R14 zu erschlagen sein. Ich nutze diese Routine heute noch gern.

Aufruf mit (load"chtext") ( und vergiß die Klammern nicht!), dann steht der Befehl CHT zur Verfügung. Der filtert nicht nur die Textelemente (bei der Frage Objekte? -> alle eintippen), sondern ändert auch Höhe/Ausrichtung/Position/Drehen/Stil/Text/Breite. Das kannst Du dann über ein Buttonmakro ablaufen lassen.

Na dann, an die Tasten, fertig, los!


Lutz

------------------
Menschen mit T21 sind von Natur aus freundlich.
Wir sollten von ihnen lernen ...

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

System: F1
und Google

erstellt am: 16. Jan. 2008 07: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 neo4matrix 10 Unities + Antwort hilfreich

Hi Neo,

wenn du dich mich Acad und Makros auskennst dann benötigst du nur
folgendes: (ssget "_X") '((0 . "*TEXT")))

Dies wählt alle TEXT oder auch MTEXTe aus, auf diesen Auswahlsatz
kannst du wie gewohnt mit V bzw. __P zugreifen bei einer Objektwahl.

(SSGET ist in Acad, Menü Hilfe, zusätzl.Ressourcen,Entwicklerhilfe beschrieben)


Bei dir also dann zB.: _CHANGE;_p;;_P;_CO _BYLAYER;;

------------------
die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk)

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



Produktentwickler (m/w/d)

Als internationaler Automobilzulieferer versorgen wir nahezu alle namhaften Automobilhersteller. An unseren weltweit zehn Produktionsstandorten entwickeln und fertigen wir hochwertige Module und einbaufertige Systeme. Durch den Einsatz von modernsten Techniken und bestem Know-how sind wir ein bedeutender Partner der globalen Automobilindustrie.

Sie möchten Teil eines echten Global Players ...

Anzeige ansehenFahrzeugtechnik
neo4matrix
Mitglied



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

Beiträge: 136
Registriert: 15.01.2008

HP™ z2 Tower G4 Workstation mit
Intel® Core™ i9-9900K 8x 3.6 GHz-5.0 GHz
32 GB Arbeitsspeicher
1 TB HP Z Turbo PCIe® SSD
NVIDIA® Quadro® P2200 mit 5 GB RAM
HP™ 24" LPS LED TFT 16:10 ZR2440w.
Windows 10 Pro, 64 Bit
AutoCAD 2019 Design Suite Standard, SP1, 64 Bit
ecscad 2019, v19.1.0.20, 64 Bit
Microstation v8 2004, 32 Bit
MicroStation CONNECT Edition Update 11
Microsoft Office 365, 32 Bit
Microsoft Visio 2013, 32 Bit

erstellt am: 28. Jan. 2008 18: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

Erstmal ein FETTES DANKESCHÖÖÖÖÖÖN an alle!


Sorry, das mein Feedback sooo lange gedauert hat... musste sehr lange befehle "auspröbeln", bis ich eine vernünftige schaltfläche hatte...


@carmelli76:

leider ist scripten nicht möglich, da einige meiner befehle als dialogfeld erscheinen... _qselect zum beispiel... dann muss ich dort wieder mit der maus TEXT und ALLE auswählen, was ich ja vermeiden möchte...

@Lutz_G:

dieses CHTEXT.lsp ist schlichtwegs genial! BIG THX! es hat leider einige fehler / ungereimtheiten... ich hab es aber in meine schaltfläche integrieren können! gibt es davon eine neuere version? hab schon überall gesucht... neuer als deine version (1997) hab ich leider nicht gefunden...

@cadffm:


Dein LIST-Ausdruck (ssget "_X") '((0 . "*TEXT"))) schien nicht zu funktionieren, ahb dann aber anhand der Entwicklerhilfe  (welche ich nun dank dir kenne) folgenden ausdruck getestet: (setq ss1 (ssget "X" '((0 . "*TEXT"))) dieser scheint alle texte in die auswahl zu nehmen, und ich kann mit _p oder v (vorherige auswahl) die texte auf den gewünschten layer setzen... BIG THX!


Fazit:

SSGET kann texte auswählen, danach kann mann layer, farbe, linientyp der texte ändern (mit _p).
SSGET kann aber nicht Textausrichtung, Textbreite usw. anpassen, was aber wiederum CHTEXT kann.


Lösung:

Nun, mit Hilfe von CHTEXT UND SSGET sieht nun meine fertige Schaltfläche folgendermassen aus:

^C^C_model(setq ss1 (ssget "X" '((0 . "*TEXT"))) );ändern;_p;;ei;la;N-160_Text;f;vonlayer;ls;vonlayer;lty;vonlayer;;^C(Load "CHTEXT");cht;_all;;a;l;b;1;s;;Arial;;

Und macht also genau DAS:

• Alle vorhandenen Texte im Modell der Zeichnung auswählen
• alle Texte auf Layer "N-160_Text" (Layer schon vorhanden) setzen.
• Farbe, Linientyp, Linienstärke alles auf "VonLayer"
• Textausrichtung auf "unten links" ändern (vorher waren alle auf "einpassen")
• Textstil "Arial" auswählen (Stil schon vorhanden)


CHTEXT.lsp muss im haupt-support-verzeichnis sein (z.b. C:\Programme\AutoCAD 2006\Support)


Fertig erweitert mit nützlichen Funktionen wie:

alle Blöcke auf Ursprung (explodieren), Prüfen, Bereinigen, Liniten setzen, raster setzen fang setzen, mm statt zoll, layer erstellen, textstil erstellen

sieht die schaltfläche so aus:

^C^C_model;measurement;1;burst;_all;;^Craster;5;fang;1;_limits;-5000,-5000;5000,5000;_-la;m;N-160_Text;ls;0.25;N-160_Text;se;0;;(setq ss1 (ssget "X" '((0 . "*TEXT"))) );ändern;_p;;ei;la;N-160_Text;f;vonlayer;ls;vonlayer;lty;vonlayer;;^C^C_-style;Arial;Arial.ttf;0;1;0;n;n;(Load "CHTEXT");cht;_all;;a;l;b;1;s;;Arial;;_audit;j;_-purge;_all;*;n;

Nicht schlecht, oder?

info: burst ist von den express tools und explodiert blöcke mit attributen in normale texte (attribusinhalt)


Das ich die fertige Lösung hier präsentiere hat den Grund, das ich allen anderen MegaCAD-in-AutoCAD-Konverter-Geplagten auch helfen möchte...


THX2ALL und einen schönen Tag! Gruss aus den schöönen, verschneiten Schweizer Alpen!

neo


------------------
Welcome to the Real

[Diese Nachricht wurde von neo4matrix am 28. Jan. 2008 editiert.]

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