乐筑天下

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

[编程交流] 取消块的动力学

[复制链接]

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 06:48:04 | 显示全部楼层 |阅读模式
你好
 
当我尝试使用此代码时:
  1. (defun c:UnDynamic
  2.    (   /
  3.        _get_item
  4.        _right
  5.        _make_key
  6.        _dynamic->static_block
  7.        _get_locked
  8.        _get_dynamic_inserts
  9.        _main
  10.    )
  11.    (defun _get_item ( collection key / item )
  12.        (vl-catch-all-apply
  13.           '(lambda ( ) (setq item (vla-item collection key)))
  14.        )
  15.        item
  16.    )
  17.    (defun _right ( str n / len )
  18.        (if (< n (setq len (strlen str)))
  19.            (substr str (1+ (- len n)))
  20.            str
  21.        )
  22.    )
  23.    (defun _make_key ( collection prefix len / key )
  24.        (   (lambda ( i pad )
  25.                (while
  26.                    (_get_item collection
  27.                        (setq key
  28.                            (strcat prefix
  29.                                (_right
  30.                                    (strcat pad (itoa (setq i (1+ i))))
  31.                                    len
  32.                                )
  33.                            )
  34.                        )
  35.                    )
  36.                )
  37.                key
  38.            )
  39.            0
  40.            (   (lambda ( pad )
  41.                    (while (< (strlen pad) len)
  42.                        (setq pad (strcat "0" pad))
  43.                    )
  44.                    pad
  45.                )
  46.                ""
  47.            )
  48.        )
  49.    )
  50.    (defun _dynamic->static_block ( blocks insert len )
  51.        (vla-ConvertToStaticBlock
  52.            insert
  53.            (_make_key blocks "STATIC_" len)
  54.        )
  55.    )
  56.    (defun _get_locked ( layers / locked )
  57.        (vlax-for layer layers
  58.            (if (eq :vlax-true (vla-get-lock layer))
  59.                (setq locked (cons layer locked))
  60.            )
  61.        )
  62.        locked
  63.    )
  64.    (defun _get_dynamic_inserts ( blocks / inserts )
  65.        (vlax-for block blocks
  66.            (vlax-for object block
  67.                (if (eq "AcDbBlockReference" (vla-get-objectname object))
  68.                    (if (eq :vlax-true (vla-get-isdynamicblock object))
  69.                        (setq inserts (cons object inserts))
  70.                    )
  71.                )
  72.            )
  73.        )
  74.        inserts
  75.    )
  76.    (defun _main ( document / blocks inserts locked len )
  77.        (if
  78.            (setq inserts
  79.                (_get_dynamic_inserts
  80.                    (setq blocks (vla-get-blocks document))
  81.                )
  82.            )
  83.            (progn
  84.                (foreach layer (setq locked (_get_locked (vla-get-layers document)))
  85.                    (vla-put-lock layer :vlax-false)
  86.                )
  87.                (setq len (strlen (itoa (length inserts))))
  88.                (foreach insert inserts
  89.                    (_dynamic->static_block blocks insert len)
  90.                )
  91.                (foreach layer locked
  92.                    (vla-put-lock layer :vlax-true)
  93.                )
  94.            )
  95.        )
  96.        (princ)
  97.    )
  98.    (_main (vla-get-activedocument (vlax-get-acad-object)))
  99. )

 
来自这里:
http://www.theswamp.org/index.php?topic=32681.msg382548#msg382548
 
我收到以下消息:
  1. ; error: Automation Error. Duplicate key

 
有人有什么想法吗?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 08:00:12 | 显示全部楼层
我认为,如果你在2011年之前将其另存为任何版本,你就会“取消”动态块-大卫
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 15:20 , Processed in 0.832316 second(s), 56 queries .

© 2020-2025 乐筑天下

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