yoin

EddyBeerke

Ik zoek een oplossing voor het volgende:
Ik wil in één selectie diverse line's, polyline's en lwpolyline's selecteren, maar geen bv 3dpolyline of hatch.

(defun c:test()

  (setq ss1 (ssget '((0 . "LWPOLYLINE"))))
  (setq ss2 (ssget '((0 . "POLYLINE"))))
  (setq ss3 (ssget '((0 . "LINE"))))
);end defun
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

WebRacer

Probeer deze maar eens...

(prompt "\nSelekteer de lijnen")
(setq selektie (ssget)
      teller 0
      lijst nil
      lijnen (ssadd))
(repeat (sslength selektie)
  (setq entdata (entget (setq lijn (ssname selektie teller)))
   entdata_more entdata
   teller (1+ teller))
  (while
    (setq entdata_more (member (assoc 100 entdata_more) entdata_more))
    (setq lijst (cons (cdar entdata_more) lijst))
    (setq entdata_more (cdr entdata_more))) 
  (if (or (member "AcDbPolyline" lijst)
     (member "AcDb2dPolyline" lijst)
     (member "AcDbLine" lijst))
    (setq lijnen (ssadd lijn lijnen)))
  (setq lijst nil))
?

EddyBeerke

WebRacer,

Bedankt, dit was wat ik zocht.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

EddyBeerke

Ik heb de code iets aangepast.
Dit is wat ik ervan gemaakt heb:

(defun lijnsel()
(prompt "\nSelecteer de lijnen:")
(princ)
(setq selektie (ssget)
      teller 0
ents 0
foutsel 0
      lijst nil
      lijnen (ssadd))
(repeat (sslength selektie)
  (setq entdata (entget (setq lijn (ssname selektie teller)))
   entdata_more entdata
   teller (1+ teller))
  (while
    (setq entdata_more (member (assoc 100 entdata_more) entdata_more))
    (setq lijst (cons (cdar entdata_more) lijst))
    (setq entdata_more (cdr entdata_more))
);end while

  (if (or (member "AcDbPolyline" lijst)
      (member "AcDb2dPolyline" lijst)
          (member "AcDbLine" lijst)
(member "AcDbArc" lijst)
);end or
      (progn
(setq lijnen (ssadd lijn lijnen))
(setq ents (+ ents 1))
);end progn...if true
(setq foutsel (+ foutsel 1)); if false
);end if
  (setq lijst nil))
(setq ss1 lijnen)
(princ "\nAantal elementen gefilterd: ")(princ ents)
(princ "\nAantal elementen die niet in de selecite: ")(princ foutsel)(princ)

);end defun
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/