有这样一个列表,


    • (setq bbb'(
    •             ((0 . "LWPOLYLINE") (100 . "AcDbEntity") (100 . "AcDbPolyline") (90 . 4) (70 . 1) (62 . 256)
    •               (10 30623.9 50960.7)
    •               (10 30623.9 53400.7)
    •               (10 34223.9 53400.7)
    •               (10 34223.9 50960.7)
    •             )
    •             ((0 . "LWPOLYLINE") (100 . "AcDbEntity") (100 . "AcDbPolyline") (90 . 4) (70 . 1) (62 . 256)
    •               (10 35942.8 50960.7)
    •               (10 35942.8 53400.7)
    •               (10 39542.8 53400.7)
    •               (10 39542.8 50960.7)
    •             )
    •             ((0 . "LWPOLYLINE") (100 . "AcDbEntity") (100 . "AcDbPolyline") (90 . 4) (70 . 1) (62 . 256)
    •               (10 41444.6 54912.2)
    •               (10 41444.6 57352.2)
    •               (10 45044.6 57352.2)
    •               (10 45044.6 54912.2)
    •             )
    •             ((0 . "LWPOLYLINE") (100 . "AcDbEntity") (100 . "AcDbPolyline") (90 . 4) (70 . 1) (62 . 256)
    •               (10 46763.4 54912.2)
    •               (10 46763.4 57352.2)
    •               (10 50363.4 57352.2)
    •               (10 50363.4 54912.2)
    •             )
    •           )
    • )
  • 如果单纯取出四个坐点,是怎样写的?
  • 请各前辈,出手指一二。



网友答: 没有看懂
  1. (setq points-list '()) ; 用于存储所有点

  2. (foreach poly bbb
  3.   (foreach item poly
  4.     (if (and (eq (car item) 10) (listp (cdr item)))
  5.       (setq points-list (cons (cdr item) points-list))
  6.     )
  7.   )
  8. )

  9. ; 反转列表以保持原始顺序(因为 cons 是倒序添加)
  10. (setq points-list (reverse points-list))

  11. ; 此时 points-list 就是所有 (x y) 坐标的列表
  12. points-list


网友答: 提问题也是门技术活,没看懂你想表达的意思。

网友答:
qifeifei 发表于 2025-8-26 15:38
没有看懂

谢谢前辈的指点,学习了!

网友答: 这种直接给AI,很快出答案

网友答: (mapcar 'cdr (vl-remove-if-not (function(lambda(x)(equal (car x) 10))) (car bbb)))
取第一组,其它的自己完善


网友答:
Dea25 发表于 2025-8-26 16:57
(mapcar 'cdr (vl-remove-if-not (function(lambda(x)(equal (car x) 10))) (car bbb)))
取第一组,其它的 ...

谢谢前辈的指点,学习了!

网友答:
lxw320 发表于 2025-8-26 16:44
这种直接给AI,很快出答案

ai吗,暂时沒学习会!

网友答: Maybe:

acet-geom-pline-point-list
acet-geom-rect-points
acet-geom-vertex-list

网友答:
  1. (mapcar'(lambda(x)(mapcar'cdr(vl-remove-if'(lambda(y)(/=(car y)10))x)))bbb)
  • 上一篇:自设ssget关键字提示函数356版--命令行/屏幕提示两
  • 下一篇:没有了