乐筑天下

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

[编程交流] 设置所有块t的Z位置

[复制链接]

30

主题

96

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-6 08:57:38 | 显示全部楼层 |阅读模式
代码中有什么错误?我试图将图形中所有块的Z位置值设置为零;
 
  1. (defun c:B0()
  2. (setq myFilter(list (cons 0 "INSERT")))
  3. (setq ss (ssget "_X" myFilter))
  4. (setq l (sslength ss))
  5. (setq i 0)
  6. (Repeat l
  7.    (setq blk (ssname ss i))
  8.    (setq DXF (entget (car blk)))
  9.    (setq IP (cadr (assoc 0 dxf)))
  10.    (setq NewIP (subst "0" (caddr  IP) IP))
  11.    (setq NewDXF (subst NewIP IP DXF))
  12.    (entmod NewDXF)
  13. )
  14. )
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:03:32 | 显示全部楼层
  1. [color=black](defun c:B0  ()[/color]
  2. [color=black]    (setq myFilter (list (cons 0 "INSERT")))[/color]
  3. [color=black]    (setq ss (ssget "_X" myFilter))[/color]
  4. [color=black]    (setq l (sslength ss))[/color]
  5. [color=black]    (setq i 0)[/color]
  6. [color=black]    (Repeat l[/color]
  7. [color=black]          (setq blk (ssname ss i))[/color]
  8. [color=black]          (setq DXF (entget blk))[/color]
  9. [color=black]          (setq IP ([color=sienna]cdr [/color](assoc [color=sienna]10 [/color]dxf)))[/color]
  10. [color=black]          (setq NewIP (subst [color=sienna]0.00[/color] (caddr IP) IP))[/color]
  11. [color=black]          (setq NewDXF (subst [color=sienna](cons 10 NewIP) (assoc 10 dxf)[/color] DXF))[/color]
  12. [color=black]          (entmod NewDXF)[/color]
  13. [color=sienna](setq i (1+ i))[/color]
  14. [color=black]          )[/color]
  15. [color=black]    )[/color]

 
变量i保持在0。。。。“0”作为字符串不是实数。。。
除此之外。。。。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:04:41 | 显示全部楼层
试试这个。。。
  1. (defun c:Test (/ ss i sset lst)
  2. (vl-load-com)
  3. (if (setq ss (ssget "_x" '((0 . "INSERT") (410 . "model"))))
  4.    (repeat (setq i (sslength ss))
  5.      (setq sset (ssname ss (setq i (1- i))))
  6.      (setq lst (cons (vlax-ename->vla-object sset) lst))
  7.    )
  8.    (alert " << No Blocks existed in this drawing >>  ")
  9. )
  10. (foreach ml '(1e99 -1e99)
  11.    (mapcar (function (lambda (x)
  12.                        (vla-move x
  13.                                  (vlax-3d-point (list 0 0 0))
  14.                                  (vlax-3d-point (list 0 0 ml))
  15.                        )
  16.                      )
  17.            )
  18.            lst
  19.    )
  20. )
  21. (princ)
  22. )
Tharwat
回复

使用道具 举报

30

主题

96

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-6 09:08:18 | 显示全部楼层
谢谢你的评论。。我现在明白了,我应该在重复循环中添加一个(setq I(1+I))。。。!!
 
谢谢你的密码Tharwat。。。!!与我的代码相比,这是一个非常专业的解决方案。。。!!
 
快乐快乐。。。。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:13:12 | 显示全部楼层
  1. ....
  2. (1e99 -1e99).....

 
有趣的
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:15:52 | 显示全部楼层
我会这样做:
 
  1. (defun c:B0 ( / e i p s )
  2.    (if (setq s (ssget "_X" '((0 . "INSERT") (-4 . "*,*,<>") (10 0.0 0.0 0.0))))
  3.        (repeat (setq i (sslength s))
  4.            (setq e (entget (ssname s (setq i (1- i))))
  5.                  p (assoc 10 e)
  6.            )
  7.            (entmod (subst (list 10 (cadr p) (caddr p) 0.0) p e))
  8.        )
  9.    )
  10.    (princ)
  11. )

 
我认为没有必要把所有的东西都移到1e99标高,然后再移回来,只需将标高设置为零
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 09:19:02 | 显示全部楼层
对点值使用(subst)非常危险
 
(setq ip’(10)
(subst 0(caddr ip)ip)
 
返回->'(0)
 
 
  1. [b][color=BLACK]([/color][/b]defun c:iz0 [b][color=FUCHSIA]([/color][/b]/ ss en ed in[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget [color=#2f4f4f]"X"[/color] '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"INSERT"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  3.       [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  4.              [b][color=MAROON]([/color][/b]setq ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b]
  5.                    in [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  6.              [b][color=MAROON]([/color][/b]entmod [b][color=GREEN]([/color][/b]subst [b][color=BLUE]([/color][/b]list 10 [b][color=RED]([/color][/b]car in[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]cadr in[b][color=RED])[/color][/b] 0.0[b][color=BLUE])[/color][/b]
  7.                             [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b] ed[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  8.              [b][color=MAROON]([/color][/b]entupd en[b][color=MAROON])[/color][/b]
  9.              [b][color=MAROON]([/color][/b]ssdel en ss[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  10. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
我认为更多的过滤是明智的。也许至少应该添加组67和210。
 
此外,这不会将属性移动到高程0。
 
-大卫
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:21:52 | 显示全部楼层
或Ctrl+1
快速选择
位置Z
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:24:10 | 显示全部楼层
 
谢谢pBe。
 
 
为什么不呢?
 
在客场或其他比赛中,这是否有害或不正确?
 
塔瓦特
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:28:08 | 显示全部楼层
 
不客气harilalmn。
 
享受吧,伙计
 
塔瓦特
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 06:23 , Processed in 0.411094 second(s), 72 queries .

© 2020-2025 乐筑天下

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