乐筑天下

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

[编程交流] 在20中替换动态块

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:49:01 | 显示全部楼层 |阅读模式
我已经用动态积木工作了一年了。我是LISP编程新手。我从tek tips的vbcad中找到了这段代码,从我在MATLAB中的工作经验中,我似乎认识到了一些事情。
 
因为ACAD 2010仍然缺少支持
 
该例程应该用另一个块替换动态块。用户选择块,并将预定义的替换块插入其位置。
 
但是,当我使用例程并选择一个块时,它将不允许我选择块,无论是常规块还是动态块,返回“0个选定块”。然后,该函数继续返回“未选择可替换块”
 
它还将设置可见性,但如果我无法选择要替换的块,则该可见性既不在这里也不在那里。
 
有没有关于如何使动态块可替换的想法,或者我在这里遗漏了什么。
 
rec.dwg将是要插入的块。test是我试图替换其中块的dwg。
 
-克格勃
测验图纸
记录.dwg
dyntemp。lsp
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

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

铜币
310
发表于 2022-7-6 12:42:45 | 显示全部楼层
在此处找到http://forums.autodesk.com/t5/AutoCAD-Express-Tools/Block-Replace-possible-wishlist-item/m-p/361602
 
  1. defun c:TEST (/ ENT1 BL1 NWNM OLD ODNM)
  2. ;;LOOKS LIKE robkimross WROTE IT IN 06-09-2005
  3. (prompt "Select blocks to replace: ")
  4. (and
  5.    (setq ENT1 (ssget "_:S" '((0 . "INSERT"))))
  6.    (setq NEWBL "[color=darkred][b]NAME OF BLOCK WHICH TAKES THE PLACE OF OLD BLOCK[/b][/color]")
  7.    (not (command "insert" NEWBL nil))
  8.    (setq N (sslength ENT1))
  9.    (setq I 0)
  10.    (repeat N
  11.      (setq BL1 (entget (ssname ENT1 I)))
  12.      (setq NWNM (cons 2 NEWBL))
  13.      (setq OLD (assoc 2 BL1))
  14.      (setq ODNM (cdr OLD))
  15.      (entmod (subst NWNM OLD BL1))
  16.      (setq I (1+ I))
  17.    ) ;_ repeat
  18. ) ;_ and
  19. (prin1)
  20. ) ;_ defun]
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 17:12 , Processed in 0.316231 second(s), 56 queries .

© 2020-2025 乐筑天下

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