乐筑天下

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

[编程交流] dim舍入选择lisp

[复制链接]

4

主题

9

帖子

5

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 06:22:58 | 显示全部楼层 |阅读模式
大家好,
我正在搜索一种方法来选择(过滤)尺寸,尺寸舍入值不同于0。知道吗?Ssget或如何?谢谢
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 06:46:29 | 显示全部楼层
也许这个,如果我理解正确的话。。。
 
 
  1. [color=#FF0000]([/color][color=BLUE]defun[/color] [color=BLUE]c:ssfiltdimdecimal[/color] [color=#80FF00]([/color] [color=BLUE]/[/color] sss ss i dim d [color=#80FF00])[/color]
  2. [color=#80FF00]([/color][color=BLUE]setq[/color] sss [color=#00FFFF]([/color][color=BLUE]ssadd[/color][color=#00FFFF])[/color][color=#80FF00])[/color]
  3. [color=#80FF00]([/color][color=BLUE]setq[/color] ss [color=#00FFFF]([/color][color=BLUE]ssget[/color] [color=BROWN]"_:L"[/color] '[color=#0080FF]([/color][color=#FF00FF]([/color]0 . [color=BROWN]"DIMENSION"[/color][color=#FF00FF])[/color][color=#0080FF])[/color][color=#00FFFF])[/color][color=#80FF00])[/color]
  4. [color=#80FF00]([/color][color=BLUE]if[/color] ss
  5.    [color=#00FFFF]([/color][color=BLUE]repeat[/color] [color=#0080FF]([/color][color=BLUE]setq[/color] i [color=#FF00FF]([/color][color=BLUE]sslength[/color] ss[color=#FF00FF])[/color][color=#0080FF])[/color]
  6.      [color=#0080FF]([/color][color=BLUE]setq[/color] dim [color=#FF00FF]([/color][color=BLUE]ssname[/color] ss [color=#FF0000]([/color][color=BLUE]setq[/color] i [color=#80FF00]([/color][color=BLUE]1-[/color] i[color=#80FF00])[/color][color=#FF0000])[/color][color=#FF00FF])[/color][color=#0080FF])[/color]
  7.      [color=#0080FF]([/color][color=BLUE]if[/color] [color=#FF00FF]([/color][color=BLUE]not[/color] [color=#FF0000]([/color][color=BLUE]equal[/color] [color=#80FF00]([/color][color=BLUE]fix[/color] [color=#00FFFF]([/color][color=BLUE]setq[/color] d [color=#0080FF]([/color][color=BLUE]cdr[/color] [color=#FF00FF]([/color][color=BLUE]assoc[/color] 42 [color=#FF0000]([/color][color=BLUE]entget[/color] dim[color=#FF0000])[/color][color=#FF00FF])[/color][color=#0080FF])[/color][color=#00FFFF])[/color][color=#80FF00])[/color] d[color=#FF0000])[/color][color=#FF00FF])[/color]
  8.        [color=#FF00FF]([/color][color=BLUE]ssadd[/color] dim sss[color=#FF00FF])[/color]
  9.      [color=#0080FF])[/color]
  10.    [color=#00FFFF])[/color]
  11.    [color=#00FFFF]([/color][color=BLUE]prompt[/color] [color=BROWN]"\nEmpty selection set - restart routine"[/color][color=#00FFFF])[/color]
  12. [color=#80FF00])[/color]
  13. [color=#80FF00]([/color][color=BLUE]prompt[/color] [color=BROWN]"\nDimensions with decimal places are highlighted"[/color][color=#80FF00])[/color]
  14. [color=#80FF00]([/color][color=BLUE]sssetfirst[/color] [color=BLUE]nil[/color] sss[color=#80FF00])[/color]
  15. [color=#80FF00]([/color][color=BLUE]princ[/color][color=#80FF00])[/color]
  16. [color=#FF0000])[/color]
  17. [color=#FF0000]([/color][color=BLUE]defun[/color] [color=BLUE]c:ssfdd[/color] [color=BLUE]nil[/color] [color=#80FF00]([/color][color=BLUE]c:ssfiltdimdecimal[/color][color=#80FF00])[/color][color=#FF0000])[/color]
  18. [color=#FF0000]([/color][color=BLUE]prompt[/color] [color=BROWN]"\nInvoke with : ssfdd"[/color][color=#FF0000])[/color]
  19. [color=#FF0000]([/color][color=BLUE]princ[/color][color=#FF0000])[/color]

 
M、 R。
回复

使用道具 举报

4

主题

9

帖子

5

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 06:55:50 | 显示全部楼层
我有一个44毫米的尺寸,然后我四舍五入到45(使用dim舍入5)。我想过滤这种维度。
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-6 07:01:13 | 显示全部楼层
  1. (defun filter_round_distance (ss r / ss1 e o)
  2. (setq ss1 (ssadd))
  3. (repeat (setq i (sslength ss))
  4.    (if
  5.      (and
  6.        (vlax-property-available-p (setq o (vlax-ename->vla-object (setq e (ssname ss (setq i (1- i)))))) 'RoundDistance)
  7.        (equal (vla-get-RoundDistance o) r 1e-
  8.        )
  9.      (setq ss1 (ssadd e ss1))
  10.      )
  11.    )
  12. ss1
  13. )
  14. (defun C:TEST ( / s n)
  15. (if
  16.    (and
  17.      (setq s (ssget '((0 . "*DIM*"))))
  18.      (setq n (getreal "\nRoundoff value: "))
  19.      )
  20.    (sssetfirst nil (filter_round_distance s n))
  21.    )
  22. (princ)
  23. )
回复

使用道具 举报

4

主题

9

帖子

5

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 07:22:26 | 显示全部楼层
谢谢Stefan,太好了!
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 07:23:05 | 显示全部楼层
试试这个:
  1. [b]
  2. [color=#FF0000]([/color][color=BLUE]defun[/color] c:ssfiltdimround [color=#80FF00]([/color] [color=BLUE]/[/color] _round sss ss i dim round d [color=#80FF00])[/color]
  3. [color=#80FF00]([/color][color=BLUE]vl-load-com[/color][color=#80FF00])[/color]
  4. [color=#80FF00]([/color][color=BLUE]defun[/color] _round [color=#00FFFF]([/color] n d [color=#00FFFF])[/color]
  5.    [color=#00FFFF]([/color][color=BLUE]if[/color] [color=#0080FF]([/color][color=BLUE]<[/color] [color=#FF00FF]([/color][color=BLUE]-[/color] n [color=#FF0000]([/color][color=BLUE]*[/color] [color=#80FF00]([/color][color=BLUE]fix[/color] [color=#00FFFF]([/color][color=BLUE]/[/color] n d[color=#00FFFF])[/color][color=#80FF00])[/color] d[color=#FF0000])[/color][color=#FF00FF])[/color] [color=#FF00FF]([/color][color=BLUE]/[/color] d 2.0[color=#FF00FF])[/color][color=#0080FF])[/color]
  6.      [color=#0080FF]([/color][color=BLUE]*[/color] [color=#FF00FF]([/color][color=BLUE]fix[/color] [color=#FF0000]([/color][color=BLUE]/[/color] n d[color=#FF0000])[/color][color=#FF00FF])[/color] d[color=#0080FF])[/color]
  7.      [color=#0080FF]([/color][color=BLUE]*[/color] [color=#FF00FF]([/color][color=BLUE]+[/color] 1.0 [color=#FF0000]([/color][color=BLUE]fix[/color] [color=#80FF00]([/color][color=BLUE]/[/color] n d[color=#80FF00])[/color][color=#FF0000])[/color][color=#FF00FF])[/color] d[color=#0080FF])[/color]
  8.    [color=#00FFFF])[/color]
  9. [color=#80FF00])[/color]
  10. [color=#80FF00]([/color][color=BLUE]setq[/color] sss [color=#00FFFF]([/color][color=BLUE]ssadd[/color][color=#00FFFF])[/color][color=#80FF00])[/color]
  11. [color=#80FF00]([/color][color=BLUE]setq[/color] ss [color=#00FFFF]([/color][color=BLUE]ssget[/color] [color=BROWN]"_:L"[/color] '[color=#0080FF]([/color][color=#FF00FF]([/color]0 . [color=BROWN]"DIMENSION"[/color][color=#FF00FF])[/color][color=#0080FF])[/color][color=#00FFFF])[/color][color=#80FF00])[/color]
  12. [color=#80FF00]([/color][color=BLUE]if[/color] ss
  13.    [color=#00FFFF]([/color][color=BLUE]repeat[/color] [color=#0080FF]([/color][color=BLUE]setq[/color] i [color=#FF00FF]([/color][color=BLUE]sslength[/color] ss[color=#FF00FF])[/color][color=#0080FF])[/color]
  14.      [color=#0080FF]([/color][color=BLUE]setq[/color] dim [color=#FF00FF]([/color][color=BLUE]ssname[/color] ss [color=#FF0000]([/color][color=BLUE]setq[/color] i [color=#80FF00]([/color][color=BLUE]1-[/color] i[color=#80FF00])[/color][color=#FF0000])[/color][color=#FF00FF])[/color][color=#0080FF])[/color]
  15.      [color=#0080FF]([/color][color=BLUE]if[/color] [color=#FF00FF]([/color][color=BLUE]vlax-property-available-p[/color] [color=#FF0000]([/color][color=BLUE]vlax-ename->vla-object[/color] dim[color=#FF0000])[/color] 'rounddistance[color=#FF00FF])[/color]
  16.        [color=#FF00FF]([/color][color=BLUE]progn[/color]
  17.          [color=#FF0000]([/color][color=BLUE]setq[/color] round [color=#80FF00]([/color][color=BLUE]vla-get-rounddistance[/color] [color=#00FFFF]([/color][color=BLUE]vlax-ename->vla-object[/color] dim[color=#00FFFF])[/color][color=#80FF00])[/color][color=#FF0000])[/color]
  18.          [color=#FF0000]([/color][color=BLUE]if[/color] [color=#80FF00]([/color][color=BLUE]not[/color] [color=#00FFFF]([/color][color=BLUE]equal[/color] [color=#0080FF]([/color][color=BLUE]setq[/color] d [color=#FF00FF]([/color][color=BLUE]vla-get-measurement[/color] [color=#FF0000]([/color][color=BLUE]vlax-ename->vla-object[/color] dim[color=#FF0000])[/color][color=#FF00FF])[/color][color=#0080FF])[/color] [color=#0080FF]([/color][color=BLUE]vl-catch-all-apply[/color] '_round [color=#FF00FF]([/color][color=BLUE]list[/color] d round[color=#FF00FF])[/color][color=#0080FF])[/color][color=#00FFFF])[/color][color=#80FF00])[/color]
  19.            [color=#80FF00]([/color][color=BLUE]if[/color] [color=#00FFFF]([/color][color=BLUE]/=[/color] round 0.0[color=#00FFFF])[/color] [color=#00FFFF]([/color][color=BLUE]ssadd[/color] dim sss[color=#00FFFF])[/color][color=#80FF00])[/color]
  20.          [color=#FF0000])[/color]
  21.        [color=#FF00FF])[/color]
  22.      [color=#0080FF])[/color]
  23.    [color=#00FFFF])[/color]
  24.    [color=#00FFFF]([/color][color=BLUE]prompt[/color] [color=BROWN]"\nEmpty selection set - restart routine"[/color][color=#00FFFF])[/color]
  25. [color=#80FF00])[/color]
  26. [color=#80FF00]([/color][color=BLUE]prompt[/color] [color=BROWN]"\nDimensions witch are rounded and have rounddistance are highlighted"[/color][color=#80FF00])[/color]
  27. [color=#80FF00]([/color][color=BLUE]sssetfirst[/color] [color=BLUE]nil[/color] sss[color=#80FF00])[/color]
  28. [color=#80FF00]([/color][color=BLUE]princ[/color][color=#80FF00])[/color]
  29. [color=#FF0000])[/color]
  30. [color=#FF0000]([/color][color=BLUE]defun[/color] c:ssfdr [color=BLUE]nil[/color] [color=#80FF00]([/color]c:ssfiltdimround[color=#80FF00])[/color][color=#FF0000])[/color]
  31. [color=#FF0000]([/color][color=BLUE]prompt[/color] [color=BROWN]"\nInvoke with : ssfdr"[/color][color=#FF0000])[/color]
  32. [color=#FF0000]([/color][color=BLUE]princ[/color][color=#FF0000])[/color]
  33. [/b]

M、 R。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 17:48 , Processed in 0.345836 second(s), 64 queries .

© 2020-2025 乐筑天下

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