明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6208|回复: 25

[源码] 信.cad图库管理插入的块如何炸开?一行代码搞得我头发都掉了。

[复制链接]
发表于 2019-12-5 00:35:37 | 显示全部楼层 |阅读模式
1明经币
(defun EF-Lib-BlockInsert ();图块插入
  (command "insert"
           (cadddr (assoc $EF_LibIndex $EF_BlockList))
           "X" $EF_LibScaleX
           "Y" $EF_LibScaleY
           "Z" $EF_LibScaleZ
           "R" (angtos $EF_LibROTATE)
           )
  (command "EXPLODE" (SSGET "x" '((0 . "insert"))));用这个不行 "L"也不行。一行代码搞得我头发都掉了。
  )

发表于 2019-12-5 08:46:40 | 显示全部楼层
试试下面的写法:
(defun EF-Lib-BlockInsert ();图块插入
  (command "insert"
           ;;
           (strcat "*" (cadddr (assoc $EF_LibIndex $EF_BlockList)))
           "X" $EF_LibScaleX
           "Y" $EF_LibScaleY
           "Z" $EF_LibScaleZ
           "R" (angtos $EF_LibROTATE)
           )
  )
回复

使用道具 举报

 楼主| 发表于 2019-12-5 09:28:54 | 显示全部楼层
satan421 发表于 2019-12-5 08:46
试试下面的写法:
(defun EF-Lib-BlockInsert ();图块插入
  (command "insert"

大佬,插入的块没有问题。我想知道的是在代码最后一行,我炸开了块(我自己加的代码),不知道因为什么会失败,要怎么写才会炸开块。
回复

使用道具 举报

 楼主| 发表于 2019-12-5 09:29:58 | 显示全部楼层
satan421 发表于 2019-12-5 08:46
试试下面的写法:
(defun EF-Lib-BlockInsert ();图块插入
  (command "insert"

少了""吗?
回复

使用道具 举报

发表于 2019-12-5 09:51:21 | 显示全部楼层
(command "EXPLODE" (entlast))

评分

参与人数 1明经币 +1 收起 理由
tfanghui + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2019-12-5 10:31:37 | 显示全部楼层

不同版本插入块需要的参数不一样,自己测试需要几个""。块名前加"*",代表插入时分解块。
如果非要用explode炸开,先注意你获取的选择集,ssget "X"是选择所有的块。explode命令炸开选择集的时候,需要把系统变量qaflags设置为1。
(defun EF-Lib-BlockInsert ();图块插入
  (setvar 'qaflags 1)
  (command "insert"
           (cadddr (assoc $EF_LibIndex $EF_BlockList))
           "X" $EF_LibScaleX
           "Y" $EF_LibScaleY
           "Z" $EF_LibScaleZ
           "R" (angtos $EF_LibROTATE)
           )
  (command "EXPLODE" (SSGET "x" '((0 . "insert"))) "");注意选择集是所有块
  )
回复

使用道具 举报

 楼主| 发表于 2019-12-5 16:53:50 | 显示全部楼层
大佬可以看一下整个完整的附件。调用COMMAND的时候竟然是COMMand还没有执行完毕。就先执行后面的代码了。相当神奇。看不懂。想加个炸开块的代码都找不着怎么加。太神奇了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 2019-12-5 18:15:05 | 显示全部楼层
start4444 发表于 2019-12-5 09:51
(command "EXPLODE" (entlast))

大佬你看下我上传的附件源码。在插入块代码后面加入您刚刚发的那句代码上去,竟然是先执行炸开命令,然后再返回去执行插入块。很神奇,看得我一脸懵逼?
回复

使用道具 举报

发表于 2019-12-5 19:20:36 | 显示全部楼层
XTdwynij 发表于 2019-12-5 18:15
大佬你看下我上传的附件源码。在插入块代码后面加入您刚刚发的那句代码上去,竟然是先执行炸开命令,然后 ...

插件有很多关联的东西,测试不了,炸开命令你放在哪里
回复

使用道具 举报

 楼主| 发表于 2019-12-5 20:29:21 | 显示全部楼层
start4444 发表于 2019-12-5 19:20
插件有很多关联的东西,测试不了,炸开命令你放在哪里

这个是一个完整的程序,直接运行就可以了。我把它放在插入块代码的后面。但是我调试过后竟然块还没有插入进去,放在插入块后面的代码竟然运行了。真是神奇。大佬你也调试下就知道了,长见识了。就是看不懂代码。
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 22:42 , Processed in 0.160318 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表