Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  LISP, FIltern und kopieren v. P-Linien ab bestimmter Länge.

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:  LISP, FIltern und kopieren v. P-Linien ab bestimmter Länge. (1580 mal gelesen)
Christian01
Mitglied
Technischer Zeichner


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

Beiträge: 281
Registriert: 17.04.2007

Briscad V22
ACAD MAP 2019
Win 10 Pro 64bit
Intel, 4x 3,0 GHz, 8GB RAM
2 x 24" TFT

erstellt am: 19. Dez. 2012 10: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

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



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

Beiträge: 5833
Registriert: 27.02.2003

DWG TrueView 2014

erstellt am: 19. Dez. 2012 10:22    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 Christian01 10 Unities + Antwort hilfreich

Muss es ein Lisp sein? Das geht doch auch über die Schnellauswahl.

------------------
Viele Grüße Lutz

Glück Auf!

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

Christian01
Mitglied
Technischer Zeichner


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

Beiträge: 281
Registriert: 17.04.2007

erstellt am: 19. Dez. 2012 10: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

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




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

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 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 Christian01 10 Unities + Antwort hilfreich

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



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

Beiträge: 5833
Registriert: 27.02.2003

DWG TrueView 2014

erstellt am: 19. Dez. 2012 10: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 Christian01 10 Unities + Antwort hilfreich

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


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

Beiträge: 281
Registriert: 17.04.2007

erstellt am: 19. Dez. 2012 12: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

@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




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

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 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 Christian01 10 Unities + Antwort hilfreich

Aufruf mit
(TrasseSELECT 60 "LAYERNAME")

nimmt alle PLs mit Länge > 60 und schmeißt sie auf den LAYER "Layername"

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

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