乐筑天下

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

[编程交流] lisp修改

[复制链接]

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 11:20:03 | 显示全部楼层 |阅读模式
我有这个由kpblc编写的lisp,它将所有内容都包含在一个块中,并将其属性更改为“按层”。效果很好,除了属性,然后你必须返回并分别对每个块进行attsync,是否有一种使用lisp的方法可以同时对dwg中的所有块进行attsync,并将其添加到下面的lisp中,或者仅使用一个单独的lisp来执行此操作,或者完全缺少一个命令。另一个问题是多行文字,如果在“多行文字编辑器”对话框中选择了多行文字颜色,是否有方法将其更改回“按层”而不单独进入每个多行文字,也可以将其添加到该lisp中,但您有一个单独的lisp也可以做同样的事情。我对lisp有一点了解,所以我可以添加到我的lisp中,以便它在最后调用其他lisp来引入这些。
  1. Author kpblc
  2. changes all blocks inserted in a dwg from by block/color to by layer.
  3. (defun c:norm (/ *error* adoc lst_layer func_restore-layers)
  4. (defun *error* (msg)
  5.    (func_restore-layers)
  6.    (vla-endundomark adoc)
  7.    (princ msg)
  8.    (princ)
  9.    ) ;_ end of defun
  10. (defun func_restore-layers ()
  11.    (foreach item lst_layer
  12.      (vla-put-lock (car item) (cdr (assoc "lock" (cdr item))))
  13.      (vl-catch-all-apply
  14.        '(lambda ()
  15.           (vla-put-freeze (car item) (cdr (assoc "freeze" (cdr item))))
  16.           ) ;_ end of lambda
  17.        ) ;_ end of vl-catch-all-apply
  18.      ) ;_ end of foreach
  19.    ) ;_ end of defun
  20. (vl-load-com)
  21. (vla-startundomark
  22.    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  23.    ) ;_ end of vla-startundomark
  24. (vlax-for item (vla-get-layers adoc)
  25.    (setq lst_layer (cons (list item
  26.                                (cons "lock" (vla-get-lock item))
  27.                                (cons "freeze" (vla-get-freeze item))
  28.                                ) ;_ end of list
  29.                          lst_layer
  30.                          ) ;_ end of cons
  31.          ) ;_ end of setq
  32.    (vla-put-lock item :vlax-false)
  33.    (vl-catch-all-apply '(lambda () (vla-put-freeze item :vlax-false)))
  34.    ) ;_ end of vlax-for
  35. (vlax-for blk (vla-get-blocks adoc)
  36.    (if (and (equal (vla-get-islayout blk) :vlax-false)
  37.             (equal (vla-get-isxref blk) :vlax-false)
  38.             ) ;_ end of and
  39.      (progn
  40.        (vlax-for subent blk
  41.           ;(vla-put-layer subent "0");edit-> removed force to layer 0
  42.          (vla-put-color subent 256)
  43.          (vla-put-lineweight subent aclnwtbyblock)
  44.          (vla-put-linetype subent "byblock")
  45.          ) ;_ end of vlax-for
  46.        ) ;_ end of progn
  47.      ) ;_ end of if
  48.    ) ;_ end of vlax-for
  49. (func_restore-layers)
  50. (vla-endundomark adoc)
  51. (command "_regenall")
  52. (princ)
  53. ) ;_ end of defun
回复

使用道具 举报

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 11:37:21 | 显示全部楼层
巴特曼和同步按钮的工作速度有点快,然后attsync每一个单独的块,但仍在寻找一些方法来做到这一切一次
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:46:46 | 显示全部楼层
Attsync>N>*
 
 
 
回复

使用道具 举报

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 11:51:15 | 显示全部楼层
很简单,谢谢李。对多行文字问题有什么想法吗?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:06:16 | 显示全部楼层
看看这个。
回复

使用道具 举报

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 12:11:17 | 显示全部楼层
谢谢alan这很有魅力
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:23:24 | 显示全部楼层
乔和史蒂夫做得很好。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 02:38 , Processed in 0.466278 second(s), 66 queries .

© 2020-2025 乐筑天下

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