乐筑天下

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

[编程交流] 需要LISP程序来选择al

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 19:01:13 | 显示全部楼层
 
考虑一下这一点。
 
  1. (defun c:sall (/ s ss)
  2. (if (and (setq s (car (entsel "\nSelect object on layer to select All : ")))
  3.           (setq ss (ssget "_X" (list (assoc 8 (entget s)))))
  4.           )
  5.    (alert (strcat "Items selected < " (itoa (sslength ss)) " >"))
  6.    )
  7. (sssetfirst nil ss)
  8. (princ)
  9. )
回复

使用道具 举报

21

主题

155

帖子

135

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 19:04:45 | 显示全部楼层
太好了,这很有效。
 
不过我做了一些小改动,删除了“_X”,因为我需要选择要选择的内容&从“警报”更改为“普林斯”。希望你不介意
 
  1. (defun c:SALL  (/ s ss)
  2. (if (and (setq s (car (entsel "\nSelect object on layer to select : ")))
  3.           (setq ss (ssget (list (assoc 8 (entget s)))))
  4.           )
  5. (princ (strcat "\n "(itoa (sslength ss))" items selected"))
  6.    )
  7. (sssetfirst nil ss)
  8. (princ)
  9. )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 19:08:14 | 显示全部楼层
 
当然不介意,快乐编码。
回复

使用道具 举报

13

主题

146

帖子

136

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
62
发表于 2022-7-5 19:10:59 | 显示全部楼层
 
很多时候,我需要更改层上所有文本的高度或大小,我发现Tharwat的程序可以完美地实现这一目的,但有一个例外:它选择层上的所有内容,而不仅仅是文本。
在进行了大量搜索并试图理解这个简单的程序后,一些心理障碍使我无法使其仅选择图层上的文本对象。可悲的是,在绝望中,我发现自己希望ssget有一个“T”选项。
请你们中的一个善良的灵魂解释一下怎么做?
 
谢谢
史蒂夫
回复

使用道具 举报

21

主题

155

帖子

135

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 19:14:01 | 显示全部楼层
尝试将第3行更改为:
  1. (setq ss (ssget "_X" (list (assoc 8 (entget s)) '(0 . "TEXT,MTEXT"))))

 
或者,如果您不想包括多行文字,那么:
  1.    (setq ss (ssget "_X" (list (assoc 8 (entget s)) '(0 . "TEXT"))))
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 19:15:32 | 显示全部楼层
 
嗨,史蒂夫。
 
试试这个:
 
  1. (defun c:Test (/ s h ss doc i e)
  2. ;;    Tharwat 24.10.2015    ;;
  3. (princ
  4.    "\nSelect Text on layer to change height for all texts on the same layer :"
  5. )
  6. (if (and (setq s (ssget "_+.:S:L:E" '((0 . "TEXT,MTEXT"))))
  7.           (setq h (getdist "\nSpecify text height :"))
  8.           (setq ss
  9.                  (ssget "_X"
  10.                         (list '(0 . "TEXT,MTEXT") (assoc 8 (entget (ssname s 0))))
  11.                  )
  12.           )
  13.      )
  14.    (progn
  15.      (vla-startUndomark
  16.        (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  17.      )
  18.      (repeat (setq i (sslength ss))
  19.        (entmod
  20.          (subst (cons 40 h)
  21.                 (assoc 40 (setq e (entget (ssname ss (setq i (1- i))))))
  22.                 e
  23.          )
  24.        )
  25.      )
  26.      (vla-Endundomark doc)
  27.    )
  28. )
  29. (princ)
  30. )(vl-load-com)
回复

使用道具 举报

13

主题

146

帖子

136

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
62
发表于 2022-7-5 19:19:08 | 显示全部楼层
哈比人的修改建议和塔尔瓦特的新计划都很好地发挥了作用,非常感谢你们的回应。
然而,关于
快乐的霍比特人和
  1. 12
和Tharwat's
它们在各自的例程中工作正常,但不可互换。
 
史蒂夫
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 19:24:22 | 显示全部楼层
不客气,史蒂夫。
 
关于你对差异的疑问,实际上,如果你在上述例程中替换DXf代码的位置,结果不会有任何差异。
回复

使用道具 举报

21

主题

155

帖子

135

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 19:26:11 | 显示全部楼层
很高兴我能帮助史蒂夫
 
这里有一节关于AfrsLIST中的过滤器
 
在李的优秀网站上
回复

使用道具 举报

2

主题

15

帖子

13

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 19:30:45 | 显示全部楼层
 
检查这个
这是一个最好的lisp有选择,它有很多选择,我不能没有它。。希望你喜欢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 20:20 , Processed in 0.366536 second(s), 70 queries .

© 2020-2025 乐筑天下

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