乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: Emily_83

[编程交流] 删除指定长度的行

[复制链接]

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 20:36:54 | 显示全部楼层
不客气,塔瓦特现在离线了,但我相信他会回来的,或者是一个
其他lisperati将收集您的帖子并帮助您解决问题。
回复

使用道具 举报

9

主题

46

帖子

37

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 20:40:12 | 显示全部楼层
谢谢你堆
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 20:42:17 | 显示全部楼层
您在第一篇文章中提到,对象是线,这就是为什么我只包括线和实体。
 
无论如何,试试这个更新版本,也包括多段线。
 
  1. (defun c:Test (/ ss i sn l) (vl-load-com)
  2. (if (setq ss (ssget "_:L" '((0 . "LINE,*POLYLINE"))))
  3.    (repeat (setq i (sslength ss))
  4.      (setq sn (ssname ss (setq i (1- i))))
  5.      (if (eq (cdr (assoc 0 (entget sn))) "LINE")
  6.        (setq l (distance (cdr (assoc 10 (entget sn)))
  7.                          (cdr (assoc 11 (entget sn)))
  8.                )
  9.        )
  10.        (setq
  11.          l (vlax-curve-getdistatparam
  12.              sn
  13.              (fix (vlax-curve-getendparam sn))
  14.            )
  15.        )
  16.      )
  17.      (if (or (eq l 1.25) (eq l 3.0) (and (> l 1.25) (< l 3.0)))
  18.        (entdel sn)
  19.      )
  20.    )
  21. )
  22. (princ)
  23. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:45:43 | 显示全部楼层
另一个变体:
 
  1. (defun c:eraselines ( / s )
  2.    (if (ssget "_:L" '((0 . "LINE,*POLYLINE")))
  3.        (progn
  4.            (vlax-for o
  5.                (setq s
  6.                    (vla-get-activeselectionset
  7.                        (vla-get-activedocument (vlax-get-acad-object))
  8.                    )
  9.                )
  10.                (if (<= 1.25 (vla-get-length o) 3.0) (vla-delete o))
  11.            )
  12.            (vla-delete s)
  13.        )
  14.    )
  15.    (princ)
  16. )
  17. (vl-load-com) (princ)
回复

使用道具 举报

9

主题

46

帖子

37

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 20:48:39 | 显示全部楼层
  1. (defun c:Test (/ ss i sn l)
  2. (vl-load-com)
  3. (if (setq ss (ssget "_:L" '((0 . "LINE,*POLYLINE"))))
  4.    (repeat (setq i (sslength ss))
  5.      (setq sn (ssname ss (setq i (1- i))))
  6.      (if (eq (cdr (assoc 0 (entget sn))) "LINE")
  7.        (setq l (distance (cdr (assoc 10 (entget sn))) (cdr (assoc 11 (entget sn)))))
  8.        (setq l (vlax-curve-getdistatparam sn (fix (vlax-curve-getendparam sn))))
  9.        )
  10.      (if (or (eq l 0.5) (eq l 1.25) (eq l 1.5) (eq l 3.0))
  11.        (entdel sn)
  12.        )
  13.      )
  14.    )
  15. (princ)
  16. )
210403kr2y7n83i0rjnnyr.jpg
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 20:52:02 | 显示全部楼层
Tharwat、Lee Mac、,
 
你们俩都很聪明,非常感谢你们,两个动作都很完美。。。。。。。。然而我知道我很抱歉我还有一个问题,
在所附的图像中,LISP不会删除这些行。。。。。它们的长度为3.0,但似乎是椭圆外观的非闭合/连接多段线类型,有一个区域,无论我是否闭合它们并禁用线型,lisp仍然不会删除这些多段线(当我选择对象时,它会在“属性”框中告诉我它们是多段线)。
 
你知道为什么吗?
如果没有,不用担心,你们俩和达加德都帮了大忙。
 
干杯
艾米丽
[ATTACH=CONFIG]37068[/ATTACH]
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:55:50 | 显示全部楼层
由于某种原因,我无法查看图像Emily,当单击您的附件时,我收到以下消息:
 

 
你能附上一张样图吗?
回复

使用道具 举报

9

主题

46

帖子

37

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 20:58:16 | 显示全部楼层
 
这里也是一样。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 21:01:40 | 显示全部楼层
210405ljeltgb02gnnebum.png
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 21:06:11 | 显示全部楼层
 
Same thing here .
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 09:22 , Processed in 0.640175 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表