| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Ersatzteilwesen optimieren mit CIDEON Sparify, eine Pressemitteilung
|
Autor
|
Thema: LISP, FIltern und kopieren v. P-Linien ab bestimmter Länge. (1639 mal gelesen)
|
Christian01 Mitglied Technischer Zeichner
Beiträge: 281 Registriert: 17.04.2007
|
erstellt am: 19. Dez. 2012 10:19 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe Community Wie bereits oben im Betreff zu lesen ist, suche ich ein LISP Programm das folgendes macht: 1) Filtern nach Polylinien, aber nur diese welche Länger sind als z.B.: 60,0m 2) Neuen Layer anlegen: z.B.: _P-Linie>60 3) Die gefilteren P-Linien auf den neuen Layer kopiert (nicht verschiebt bzw. verändert) Ich brauche eine Übersicht über diese Linien. Habe schon viel herumprobiert und die Community durchsucht. Auch versucht bestehende LISPs umgeschrieben, wie z.B.: Dieses hier Aber in diesem Bereich bin ich absolut neu und probiere und lerne aus bestehende LISPs, aber irgendwann steht man an und weis nicht mehr weiter. Kann mir vielleicht jemand helfen, oder dieses LISP schreiben. Danke ------------------ Grüße Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 19. Dez. 2012 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
|
Christian01 Mitglied Technischer Zeichner
Beiträge: 281 Registriert: 17.04.2007
|
erstellt am: 19. Dez. 2012 10:39 <-- editieren / zitieren --> Unities abgeben:
Hallo Lutz Danke wusst ich auch noch nicht. Aber wie mache ich das dann mit dem neuen Layer anlegen, Kopieren und die kopierten P-Linien auf den neuen Layer legen? Einfacher währe es über LISP- Routine.
------------------ Grüße Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 19. Dez. 2012 10:46 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
ok .. was zum Lernen ( hoffentlich ) (defun PSELECT(LAENGE LAYER / AWS) (vl-load-com) (if(and(setq AWS(ssget "_X" (list'(0 . "*POLYLINE")(cons 410(getvar"CTAB"))))) (=(type LAYER)'STR) (setq LISTE(vl-remove-if 'null (mapcar '(lambda(X / OBJ L) (if(and(setq OBJ (cadr X)) (setq OBJ(vlax-ename->vla-object OBJ)) (setq L (vlax-curve-getdistatparam OBJ(vlax-curve-getendparam OBJ))) (> L 60.0) ) OBJ ) ) (ssnamex AWS) ) ) ) ) (progn (command "_-layer" "_m" LAYER "") (mapcar '(lambda(X)(vla-put-layer X LAYER)) LISTE) (setq AWS (ssadd)) (mapcar '(lambda(X)(ssadd (vlax-vla-object->ename X)AWS))LISTE) (sssetfirst AWS AWS) ) ) (princ) ) ------------------ Also ich finde Unities gut ... und andere sicher auch --------------------------------------- - 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 |
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 19. Dez. 2012 10:49 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
Zitat: Original erstellt von Christian01: ...Aber wie mache ich das dann mit dem neuen Layer anlegen, Kopieren und die kopierten P-Linien auf den neuen Layer legen?...
Befehl AUFLAYKOP - kommt ehemals aus den E-Tools. Ist aber mittlerweile ins ACAD gewandert. MFL -> Start -> Layer (aufklappen). Aber Du hast ja nun ein Lisp. Frohe Weihnachten... ------------------ Viele Grüße Lutz Glück Auf! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian01 Mitglied Technischer Zeichner
Beiträge: 281 Registriert: 17.04.2007
|
erstellt am: 19. Dez. 2012 12:13 <-- editieren / zitieren --> Unities abgeben:
@CADmium Für PSELECT habe ich TRASSESELCT genommen. PSELECT ist bereits ein Befehl in ACAD Wie kann ich diesen Befehl ausführen? Mittels "APPLOAD" lade ich den Befehl. Bei der Behlseingabe: "TRASSESELCT" eingebe --> Befehl nicht vorhanden. Bei der Änderung der Lisp auf:
(defun C:TRASSESELCT(LAENGE LAYER / AWS) kommt die Fehlermeldung: ; Fehler: Zu wenig Argumente Mache ich irgendetwas falsch?
------------------ Grüße Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 19. Dez. 2012 12:17 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
|