乐筑天下

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

[编程交流] 修改块

[复制链接]

32

主题

87

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
164
发表于 2022-7-6 09:25:27 | 显示全部楼层 |阅读模式
我有一些积木。我是否可以将块中的所有层更改为层“0”?
包括文本。。。并且对匿名区块有不利影响。你能帮助我吗!谢谢大家!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:53:11 | 显示全部楼层
我不久前写的一个例子:
 
  1. ;;---------------=={ Apply to Block Objects }==---------------;;
  2. ;;                                                            ;;
  3. ;;  Applies a supplied function to all objects in a block     ;;
  4. ;;  definition.                                               ;;
  5. ;;------------------------------------------------------------;;
  6. ;;  Author: Lee Mac, Copyright © 2011 - www.lee-mac.com       ;;
  7. ;;------------------------------------------------------------;;
  8. ;;  Arguments:                                                ;;
  9. ;;  _acblocks  - block collection in which block resides      ;;
  10. ;;  _blockname - name of block to apply function              ;;
  11. ;;  _function  - function to apply to all objects in block    ;;
  12. ;;------------------------------------------------------------;;
  13. ;;  Returns: List of results of evaluating function, else nil ;;
  14. ;;------------------------------------------------------------;;
  15. (defun LM:ApplytoBlockObjects ( _acblocks _blockname _function / result )
  16. (
  17.    (lambda ( _function / def )  
  18.      (if
  19.        (not
  20.          (vl-catch-all-error-p
  21.            (setq def
  22.              (vl-catch-all-apply 'vla-item (list _acblocks  _blockname))
  23.            )
  24.          )
  25.        )
  26.        (vlax-for obj def (setq result (cons (_function obj) result)))
  27.      )
  28.    )
  29.    (eval _function)
  30. )
  31. (reverse result)
  32. )
  33. ;; Test Function to Move all Objects in a Block to Layer "0"
  34. (defun c:test ( / acdoc acblk ss l ) (vl-load-com)
  35. (setq acdoc (vla-get-activedocument (vlax-get-acad-object))
  36.        acblk (vla-get-blocks acdoc)
  37. )
  38. (if (setq ss (ssget "_+.:E:S" '((0 . "INSERT"))))
  39.    (progn   
  40.      (LM:ApplytoBlockObjects acblk (cdr (assoc 2 (setq l (entget (ssname ss 0)))))
  41.        (function
  42.          (lambda ( obj ) (vla-put-Layer obj "0"))
  43.        )
  44.      )
  45.    )
  46. )
  47. (princ)
  48. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:01:02 | 显示全部楼层
为什么所有的匿名街区?
回复

使用道具 举报

32

主题

87

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
164
发表于 2022-7-6 10:18:04 | 显示全部楼层
嗨,李。
我有一个区块:一个循环,2个文本。使用LISP,我只更改文本的图层,但不更改彩色文本和循环。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:26:48 | 显示全部楼层
我的Lisp程序只会改变图层,而不会改变颜色。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-7 07:50 , Processed in 1.207639 second(s), 62 queries .

© 2020-2025 乐筑天下

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