乐筑天下

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

[编程交流] Flter非均匀缩放blo

[复制链接]

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 17:43:32 | 显示全部楼层 |阅读模式
使用“ssget”,我想过滤非均匀缩放块。
  1. (setq ss (ssget (list '(0 . "INSERT"))))

 
有什么好主意吗?谢谢
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:49:38 | 显示全部楼层
你好
 
您可能需要将1.0的值更改为所需的值。
  1. (setq ss (ssget '((-4 . "<NOT")
  2.                  (-4 . "<AND")
  3.                  (0 . "INSERT")
  4.                  (41 . 1.0)
  5.                  (42 . 1.0)
  6.                  (43 . 1.0)
  7.                  (-4 . "AND>")
  8.                  (-4 . "NOT>")
  9.                  )
  10.                )
  11.      )
回复

使用道具 举报

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 17:52:26 | 显示全部楼层
 
谢谢塔瓦。
但这不是我需要的。
我需要选择均匀缩放的块。
例(41.1.0)(42.1.0)(43.1.0)
(41 . 2.0)(42 . 2.0)(43 . 2.0)
(41 . 3.0)(42 . 3.0)(43 .3.0).... 等
回复

使用道具 举报

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 17:55:10 | 显示全部楼层
我知道使用“entsel”函数可以做到这一点:
  1. (setq blkref (car (entsel "\n>>>Choose a block:")))

 
  1. (if (not(= (cdr(assoc 41 (entget blkref))) (cdr(assoc 42 (entget blkref))) (cdr(assoc 43 (entget blkref)))))
  2.                                 (progn
  3.                                         (alert "\nNOT support non-uniformly scaled block.")
  4.                                         t
  5.                                 )
  6.                                 (progn
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:57:37 | 显示全部楼层
我真的不确定你能用不同的X、Y和Z比例值过滤许多块,但你只能有一个,正如我在第一个回复中所演示的那样。
 
否则,您可以创建一个块选择集,然后在每个块对象之间循环,并在其比例X、Y、Z匹配时将对象添加到列表中。
回复

使用道具 举报

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 18:00:24 | 显示全部楼层
 
可能需要编写一个子函数。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:04:58 | 显示全部楼层
 
试试看,如果你需要帮助,请告诉我。
回复

使用道具 举报

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 18:08:22 | 显示全部楼层
 
可能需要1天或更长时间。我会努力的。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:11:50 | 显示全部楼层
 
不,很简单。
 
如果你不尝试给出至少75%的代码正确,我将不再回复你的任何帖子。
回复

使用道具 举报

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 18:12:14 | 显示全部楼层
 
这有什么建议吗?谢谢
 
  1. (defun newss(/ ss i ename )
  2. (while
  3.         (if (null(setq ss (ssget (list '(0 . "INSERT")))))
  4.                 (progn
  5.                         (alert "\nNothing select. Try again.")
  6.                         t
  7.                 )
  8.                 (progn
  9.                         (repeat (setq i (sslength ss))
  10.                                 (setq ename (ssname ss (setq i (1- i))))
  11.                                 (if
  12.                                         (not
  13.                                                 (= (cdr(assoc 41 (entget ename)))(cdr(assoc 42 (entget ename)))(cdr(assoc 43 (entget ename))))
  14.                                         )
  15.                                         (setq ename(ssdel ename ss))
  16.                                 )
  17.                         )
  18.                         nil
  19.                 )
  20.         )
  21. )
  22. ename
  23. )

 
因此,如果需要,请使用此新选择集。
  1. ; test
  2. (setq en (newss))
  3. (command "_.move" en "")
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 04:57 , Processed in 1.073931 second(s), 72 queries .

© 2020-2025 乐筑天下

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