Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  QSELECT oder SUCHEN im Skript einbinden

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
Autor Thema:   QSELECT oder SUCHEN im Skript einbinden (279 mal gelesen)
beex
Mitglied



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

Beiträge: 12
Registriert: 20.03.2012

Voll 2018 und 2020

erstellt am: 27. Mai. 2020 18: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

Hallo,

wie immer fummel ich mich hier alleine durch und somit muss ich euch mal fragen da meine Internet-Suchen keinen Erfolg gebracht haben.


Also ich würde gerne die Befehle "qselect" oder "suchen" in ein Skript einbauen.

Leider basieren meine Kenntnisse alle auf "selber machen" und somit hänge ich da.


Mein genaues Problem ist, dass sich bei diesen Befehlen immer ein Popup Fenster öffnet und das kann ich nicht verhindern.
Bei dem Befehl "bereinig" kann man das verhindern mit in dem man den Befehl "-bereinig" nutzt, aber das geht bei den o.g. Befehlen nicht.

Es gibt noch ein kleines Problem, noch habe ich keine Ahnung von LISP, so wirklich gar keine.
Und ich kann keine kleinen Programme auf meinen Firmen Rechner ziehen. Sorry.
Deswegen Arbeite ich mit Skripten so wie diesem hier:
-bereinig;alles;*;nein;

So und jetzt noch zum Hintergrund.
Einmal möchte ich Texte verändern. Aus einer "DN 100 GG" soll eine "M DN 100 GG" werden und das für über 50 Dimensionen.
Und ein anderer Grund ist, dass ich Text von einem Layer auf einen andren schieben will. Leider gibt es auf den Layern auch noch anderes Zeug.


So jetzt bin ich gespannt ob euch etwas einfällt.


Grüsse aus der Hauptstatt


P.S. wenn einer ein cooles Lernvideo für LISP kennt. Ja da hätte ich auch ein offenes Ohr für.


------------------
Oni ni Kanabo

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: 19868
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 27. Mai. 2020 20:55    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 beex 10 Unities + Antwort hilfreich

Hi,
wenn man es jetzt genau nehmen möchte bedarf es etwas mehr,
oberflächlich betrachtet wäre das aber schnell zu lernen.

1. Es gibt keinen Standardbefehl

2. Was meinst du mit Dimensionen und was für Objekte sind es wirklich?
  Eine DWG mit einem dieser Beispielobjekte wäre ein leichter Weg es anderen besser zu erklären.

3. Auswählen ist das eine, aber wie willst du es ändern?
  Suchen&Ersetzen gibt es auch nicht als Befehlszeilenbefehl.


Zeige erst einmal was es wirklich ist, dann wirst du Hilfe bei der Lösung bekommen.

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

spider_dd
Mitglied



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

Beiträge: 1026
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 28. Mai. 2020 08:41    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 beex 10 Unities + Antwort hilfreich

Hallo beex,

um solche kleinen Aufgaben auch in Zukunft schnell und flexibel zu lösen, wirst Du um Lisp nicht drumrum kommen. Und glaube mir, das erleichtert die Sache ungemein.
Als Einstieg sie Dir dieses hier an's Herz gelegt.
Aber auch die AutoLisp Hilfe von Acad ist zum nachschlagend der einzelnen Befehle ganz gut.

Zur Auswahl von Elementen mit verschiedensten Kriterien gibt es dann z. B. den (ssget ...) Befehl.
Ansonsten sieh dir mal den Befehl FILTER an.

Gruß
Thomas

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

beex
Mitglied



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

Beiträge: 12
Registriert: 20.03.2012

Voll 2018 und 2020

erstellt am: 29. Mai. 2020 10: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


cad.de.dwg

 
Hi

@cadffm
Also es geht um Rohr Dimensionen (DN=Nenndurchmesser).
Ich habe verschiedene Texte die alle auf einen Layer liegen
z.B.
100 GG
225 GGG
32 PE
32,52
ST 50,36
Manche sind Nenndurchmesser und vor diese will ich etwas davor schreiben.
T 100 GG
T 225 GGG
T 32 PE
32,52
ST 50,36
Ich habe jetzt auch mal eine DWG hochgeladen (ich hoffe es hat geklappt)

Zitat: "Suchen&Ersetzen gibt es auch nicht als Befehlszeilenbefehl."
genau das wäre aber mein Traum. 

@spider_dd
Danke für den Link.

Den Befehl Filter kenne ich noch nicht so genau. Aber auch dieser wird in einem Popup Fenster geöffne und somit bekomme ich ihn nicht in mein Skript.


Ich habe jetzt ein DWG angehangen.
Das ober Beispiel zeigt die Texte die ich bekomme und wo ich hin muss.


Das untere Beispiel zeigt mein zweites Problem.
Ich habe einen Layer mit unterschiedlichsten Objekten und  ich muss die Objekte alle trennen und auf unterschiedliche Layer packen.

Bis jetzt ist das eine händische Arbeit mit der "Schnellauswahl"

Hier ist noch ein Beispiel wie ich meine Skripte schreibe. Die Skripte sind teilweise bis zu 5 DIN A4 Seiten lang. 

^C^C-layzusf;name;M_H_T;name;M_S_T;name;
T_H_T;name;T_V_T;;name;0;ja;-layer;frieren;*;
tauen;0;;skaltext;alle;;links;0.45;-layer;tauen;*;;


LG Christoph aus der Hauptstadt  


------------------
Oni ni Kanabo

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

spider_dd
Mitglied



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

Beiträge: 1026
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 29. Mai. 2020 13:19    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 beex 10 Unities + Antwort hilfreich

Hallo Christoph,

Lisp wäre Dir da echt hilfreich. Hier mal was zum "anfüttern"  

Code:

;  praefix.lsp
;  Präfix vor Text setzen
;  erstellt 10/06  Th.Jakob
;
;
(defun c  raefix()
;
;
  (princ "PRAEFIX  -  Präfix vor Texte setzen")
  (print )
  (initget 1)     ; keine Leereingaben
  (setq prae_txt (getstring "Präfix: "))
  (setq tl (ssget  '((0 . "TEXT"))))
  (setq anz (sslength tl))
  (setq x 0)
  (while (< x anz)
    (setq ct (ssname tl x))
    (setq ctl (entget ct))
;
;   alten Text holen
    (setq alt_txt (cdr (assoc 1 ctl)))
    (setq neu_txt (strcat prae_txt alt_txt))


;   textinhalt setzen auf neu_txt
    (setq ctl (subst (cons 1 neu_txt) (assoc 1 ctl) ctl))

    (entmod ctl)
    (entupd ct)
    (setq x (1+ x))

  ) 

)


Damit kannst Du einen beliebigen Präfix vor eine beliebige Anzahl ausgewählter Texte setzen.
Probiere es aus und arbeite es mal durch, dann kannst Du gewiss auch schnell andere Aufgaben lösen (Layer ändern, Farbe ändern, ...)
Bei Fragen einfach fragen!

Wie Du eine Lisp speicherst und lädst weiß Du? Ansonsten hier nachlesen.

Gruß
Thomas

ps. trotz Code smilies gemacht. Das oben wo :P ist muss heißen  c: praefix  (ohne Leerzeichen zwischen : und p)

[Diese Nachricht wurde von spider_dd am 29. Mai. 2020 editiert.]

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

beex
Mitglied



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

Beiträge: 12
Registriert: 20.03.2012

Voll 2018 und 2020

erstellt am: 02. Jun. 2020 17: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

@Thomas

       

Danke, ich habe es nach einigen Schwierigkeiten echt zum laufen gebracht.

Und du hast Recht, es macht Lust auf mehr und ich würde am liebsten die nächsten 14 Tage rund um die Uhr mich damit beschäftigen.


Das würde die Arbeit für mich und meine Kollegen sicher einfacher machen.
Aber ob der Chef das auch so sieht. 

Danke

------------------
Oni ni Kanabo

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

spider_dd
Mitglied



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

Beiträge: 1026
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 03. Jun. 2020 09: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 beex 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von beex:
Das würde die Arbeit für mich und meine Kollegen sicher einfacher machen.
Aber ob der Chef das auch so sieht.

Du musst ihm nur klar machen, das jede Stunde, die Du dort reinsteckst, im Laufe der Zeit durch schnelleres abarbeiten von ständigen Abläufen vielfach wieder zurück kommt. 

Mann kann ja mit kleinen Problemen anfangen, komplexer wird es dann von alleine mit der Zeit. 

Gruß
Thomas

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)2020 CAD.de | Impressum | Datenschutz