找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6480|回复: 29

[求助] LISP能实现框选文本赋给动态块数值的功能吗?

[复制链接]

已领礼包: 1077个

财富等级: 财源广进

发表于 2013-8-10 12:35:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
能实现如下图这个功能吗?
无标题.gif
附上dwg文件,由CAD2012版本创建。
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:测试块.rar 
下载次数:15  文件大小:15.9 KB 
下载权限: 不限 以上  [免费赚D豆]


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-10 12:46:25 | 显示全部楼层
LISP肯定能做,楼主,我觉得你应该总结下,你的动态块都需要什么工具,比如批量修改长度了,赋值什么信息了,最好都说出来,然后看看大侠们总结下写一个更通用的工具来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1077个

财富等级: 财源广进

 楼主| 发表于 2013-8-10 14:03:26 | 显示全部楼层
希望实现功能一:
   能否按动态参数选择 动态块  高手们已解决。拜谢!
希望实现功能二:
   能否批量插入动态块?如下图。
2.gif
希望实现功能三:
   能否通过指定两点插入特定动态块?如下图。
3.gif
希望实现功能四:
   能否通过框选赋予动态块特定参数特定数值?及本帖第一个问题。
希望实现功能五:
   能否通过类似格式刷,刷新动态块的参数。
5.gif
希望实现功能六:
   能否让某参数实现自动排序?
    分两种,纯排序
            根据参数排序
6.jpg
一时想到这么多,如果能实现,我觉得结合优秀的动态块和特定lisp都可以去卖软件了~~
附上dwg文件,由CAD2012创建
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:动态块1.rar 
下载次数:13  文件大小:32.42 KB 
下载权限: 不限 以上  [免费赚D豆]


不敢奢求大侠们解决,就当我提供下动态块高级使用的一些思路吧,,

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-10 14:25:46 来自手机 | 显示全部楼层
利用 getpropertyvalue setpropertyvalue试试来自: Android客户端
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-12 09:12:44 | 显示全部楼层
楼主,你能提供个2008下的动态块吗,我测试下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1077个

财富等级: 财源广进

 楼主| 发表于 2013-8-12 09:36:55 | 显示全部楼层
newer 发表于 2013-8-12 09:12
楼主,你能提供个2008下的动态块吗,我测试下。

好的,我得下载08,然后再做一下,晚上我回去搞...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-12 12:39:40 | 显示全部楼层
hardthinking 发表于 2013-8-12 09:36
好的,我得下载08,然后再做一下,晚上我回去搞...

一个简单的动态块匹配属性
  1. (defun c:matdyn (/ e obj dynProperties ss sl i obj1)
  2.   (defun ssdynblk (bn ss)
  3.     (setq sl (sslength ss)
  4.    i  -1
  5.     )
  6.     (repeat sl
  7.       (setq e (ssname ss (setq i (1+ i))))
  8.       (if
  9. (and e
  10.       (/= (vla-get-effectivename (vlax-ename->vla-object e)) bn)
  11. )
  12.   (ssdel e ss)
  13.       )
  14.     )
  15.     ss
  16.   )
  17.   (if (and (setq
  18.       e (car (xdrx_entsel "\n选择源动态块: " '((0 . "Insert"))))
  19.     )
  20.     (setq obj (vlax-ename->vla-object e))
  21.     (vlax-property-available-p obj 'IsDynamicblock)
  22.     (setq bn (vla-get-effectivename obj))
  23.     (progn
  24.       (princ "\n选择匹配动态块...")
  25.       (setq ss (ssget '((0 . "insert"))))
  26.     )
  27.     (setq ss (ssdynblk bn ss))
  28.       )
  29.     (progn
  30.       (setq
  31. dynProperties
  32.   (mapcar
  33.     '(lambda (x) (vla-get-value x))
  34.     (safearray-value
  35.       (variant-value
  36.         (vla-getdynamicblockproperties obj)
  37.       )
  38.     )
  39.   )
  40.       )
  41.       (setq sl (sslength ss)
  42.      i  -1
  43.       )
  44.       (repeat sl
  45. (setq obj1 (vlax-ename->vla-object (ssname ss (setq i (1+ i)))))
  46. (mapcar '(lambda (x y)
  47.      (if (/= (vla-get-readonly x) :vlax-true)
  48.        (vla-put-value x y)
  49.      )
  50.    )
  51.   (safearray-value
  52.     (variant-value (vla-getdynamicblockproperties obj1))
  53.   )
  54.   dynProperties
  55. )
  56.       )
  57.     )
  58.   )
  59.   (princ)
  60. )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-12 12:43:49 | 显示全部楼层
简单交点插柱
  1. (defun c:Inskz (/ ms pts)
  2.   (if (setq ss (ssget))
  3.     (progn
  4.       (xd::begin)
  5.       (setq ms (vla-get-modelspace
  6.                  (vla-get-activedocument (vlax-get-acad-object))
  7.                )
  8.       )
  9.       (setq pts (xdrx_curve_getinters ss))
  10.       (foreach p pts
  11.         (vla-insertblock
  12.           ms
  13.           (vlax-3d-point p)
  14.           "kz"
  15.           1.
  16.           1.
  17.           1.
  18.           0.
  19.         )
  20.       )
  21.       (xd::end)
  22.     )
  23.   )
  24.   (princ)
  25. )

其他的柱子排序就简单了,用 value 大小排序,或者 Box 排序,改名字就是是改属性名

点评

感谢st788796的帮助!您写的这两个程序是需要XDRX支持的吧?我电脑上只有2012x64和2014x64,2014我没资格下载,2012的下载下来了,可加载“XDRX_API.R18.X64”出现问题。纯2012X64新文件时可成功加载,可一打  详情 回复 发表于 2013-8-12 13:13
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1077个

财富等级: 财源广进

 楼主| 发表于 2013-8-12 12:45:10 | 显示全部楼层
newer 发表于 2013-8-12 09:12
楼主,你能提供个2008下的动态块吗,我测试下。

中午找同事机子在08上整了下,有几个块08做不了,我都在dwg上标记了,其它都行,现在传上.请您测试...
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:08动态块1.rar 
下载次数:8  文件大小:54.69 KB 
下载权限: 不限 以上  [免费赚D豆]


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1077个

财富等级: 财源广进

 楼主| 发表于 2013-8-12 13:13:34 | 显示全部楼层
st788796 发表于 2013-8-12 12:43
简单交点插柱
其他的柱子排序就简单了,用 value 大小排序,或者 Box 排序,改名字就是是改属性名

       感谢st788796的帮助!您写的这两个程序是需要XDRX支持的吧?我电脑上只有2012x64和2014x64,2014我没资格下载,2012的下载下来了,可加载“XDRX_API.R18.X64”出现问题。纯2012X64新文件时可成功加载,可一打开文件就“致命错误”。很是郁闷。导致崩溃的文件就是我刚回复newer的那个文件...有兴趣大侠们可以研究下...

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-12 13:19:39 | 显示全部楼层
hardthinking 发表于 2013-8-12 12:45
中午找同事机子在08上整了下,有几个块08做不了,我都在dwg上标记了,其它都行,现在传上.请您测试...

楼主,看了你的图,有几个问题:

1、2008不能做的,是什么? 2012以上可以做?
2、 你带KL1 KL2的图,并不是动态块,KL1...是属性,你想根据属性后面的数字排序?
3、 窗户的那三个动态块,你想刷成一样的? 我看 有 距离1,距离2,间距1,间距2四个参数,你想刷完窗户都变成一样的了?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-12 13:21:54 | 显示全部楼层
hardthinking 发表于 2013-8-12 13:13
感谢st788796的帮助!您写的这两个程序是需要XDRX支持的吧?我电脑上只有2012x64和2014x64,2014 ...

你下载的是什么版本的XDRX_API,加载API后的提示贴上论坛。

我用的是2008的API,正在打开你给的图看,没问题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-12 13:26:02 | 显示全部楼层
hardthinking 发表于 2013-8-12 13:13
感谢st788796的帮助!您写的这两个程序是需要XDRX支持的吧?我电脑上只有2012x64和2014x64,2014 ...

(xd::begin)
(xd::end)
在 lisp-lib 中,注释掉仅加载 API 就可以使用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-12 13:32:07 | 显示全部楼层
newer 发表于 2013-8-12 13:21
你下载的是什么版本的XDRX_API,加载API后的提示贴上论坛。

我用的是2008的API,正在打开你给的图看, ...

Windows 7 + 2012 32位 加载 8.11 api 正常,打开LZ的动态块CAD崩溃,CAD2014 + 8.07 版本api打开LZ图正常

点评

那CAD2014,API 8.11,正常吗? 你说的是两个不同的环境。  详情 回复 发表于 2013-8-12 17:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1077个

财富等级: 财源广进

 楼主| 发表于 2013-8-12 13:46:51 | 显示全部楼层
newer 发表于 2013-8-12 13:19
楼主,看了你的图,有几个问题:

1、2008不能做的,是什么? 2012以上可以做?

回答:1.08没有的参数如下图红圈标记处:
08不能做的.gif
2.KL1 KL2(功能6附图)那两个图 如果用2012打开的话,是能看出来是动态块的。他有两个d1、d2的参数,用来调长、宽的。
  08虽然也可以做两个参数调矩形的长宽。但和后面版本的区别是,不能做参数运算。还是有本质区别的。

3.窗户的那三个动态块,额..其实我的设想是梁,距离1、距离2是两个梁的半宽,其它两个参数是“位置1”,"位置2",是两端定位用的。我想刷完之后,距离1、距离2几个块都一样了就行了。

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 08:28 , Processed in 0.497956 second(s), 71 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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