乐筑天下

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

[编程交流] 向心聚爆Lsp修改(需求

[复制链接]

9

主题

37

帖子

28

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 10:13:24 | 显示全部楼层 |阅读模式
大家好,
 
下面是我经常使用的代码,用于快速阻止/分组对象(与分解相反)。我很久以前从网上得到的,这是丹尼斯·基拉科夫先生提供的。我试图与作者取得联系,但我在谷歌上的搜索一直没有结果。
 
我的修改是在选择之前或之后添加一个提示,以指定块名,例如“键入块名”。
 
对不起,我是lisp新手。我也试图理解每行代码并自己修改,但那些“rtos”、“strcat”、“CDATEX”让我有些头痛,我在短序列中迷路了哈哈。
 
非常感谢。:)
 
------------------
 
;  内爆。LSP内爆©1996,Dennis Kiracofe
; 更改^v^CAD Studio
 
(定义C:IMP(/SLCT CDATE BNAME)
(setvar“cmdecho”0)
(princ“\n选择要内爆的项目:”)
(setq SLCT(ssget))
(setq)
CDATEX(rtos(getvar“cdate”)2 9)
BNAME(strcat(substr CDATEX 10)
)
(命令“_block”BNAME“0,0”SLCT”)
(命令
“u插入”BNAME“0,0”“”“”
)
)
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 10:34:14 | 显示全部楼层
试试这个
  1. (defun C:IMP (/ SLCT CDATE BNAME)
  2. (setvar "cmdecho" 0)
  3. (princ "\nSelect items to IMPLODE: ")
  4. (setq SLCT (ssget))
  5. (setq BName (getstring "\nWhat is block name? "))
  6. (setq BP (getpoint "\n Insertion Point:"))
  7. (command "_block" BNAME BP SLCT "")
  8. (command "_insert" BNAME BP "" "" "")
  9. )
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 10:47:56 | 显示全部楼层
这个可以多次插入
  1. (defun C:IMP (/ SSel BN BP BP2)
  2. (setvar "cmdecho" 0)
  3. (princ "\nSelect items to IMPLODE: ")
  4. (setq SSel (ssget))
  5. (setq BN (getstring "\nWhat is block name? "))
  6. (setq BP (getpoint "\nBase Point of Block:"))
  7. (command "_block" BN BP SSel "")
  8. (while
  9.    (setq BP2 (getpoint "\n Insertion Point of Block:"))
  10.    (command "_insert" BN BP2 "" "" ""))
  11. )

 
 
这个用来保存原始物体
  1. (defun C:IMP (/ SSel BN BP BP2)
  2. (setvar "cmdecho" 0)
  3. (princ "\nSelect items to IMPLODE: ")
  4. (setq SSel (ssget))
  5. (setq BN (getstring "\nWhat is block name? "))
  6. (setq BP (getpoint "\nBase Point of Block:"))
  7. (command "_block" BN BP SSel "")
  8. (command "_insert" BN BP "" "" "")
  9. (command "Explode" "l")
  10. (while
  11.    (setq BP2 (getpoint "\n Insertion Point of Block:"))
  12.    (command "_insert" BN BP2 "" "" ""))
  13. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:59:32 | 显示全部楼层
如果你只是在做随机块(带有随机插入点),谁在乎它们叫什么名字。
实际上,通过选择所需的对象,按住鼠标右键并拖动对象,可以快速生成匿名块。从那里,您将收到移动、复制、粘贴为块的提示。
 
如。
111324qrr1x821xeiiz7xi.png
 
 
但是,如果要指定名称,则需要考虑检查以确保名称有效(使用snvalid函数),并确保块名称不存在(tblsearch“block”)。
回复

使用道具 举报

9

主题

37

帖子

28

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 11:23:36 | 显示全部楼层
@Asos2000-谢谢!这些比我要求的要多。它工作得很好,非常有用!
 
@alanjt-我从不知道它的存在。。它很快。谢谢分享!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 21:47 , Processed in 1.132607 second(s), 75 queries .

© 2020-2025 乐筑天下

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