找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5409|回复: 37

[已解决] 如何提取动态块中的查询参数并标注在图框旁边?

[复制链接]

已领礼包: 24个

财富等级: 恭喜发财

发表于 2016-10-22 17:19:50 | 显示全部楼层 |阅读模式
悬赏50D豆已解决
本帖最后由 ljfzx 于 2016-10-22 17:27 编辑

本人小白,自己按照大神们的方法做了一个动态块,通过查询参数将各个尺寸的图框合成了一个,现在觉得查看图纸大小太不方便了,有没有什么办法能够批量提取动态块里面的查询参数生成一段文字标注在图框旁边,可以将图框大小标示出来?

QQ20161020114237.png



这是一个前辈做的,但是没有源码,想达到这样的效果,能在旁边标注出图纸大小(A2,A2+1/4等等)比例。
11111.gif



请点击此处下载

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

您的用户组是:游客

文件名称:图框.rar 
下载次数:42  文件大小:65.22 KB 
下载权限: 不限 以上  [免费赚D豆]





最佳答案

查看完整内容

你把上面代码 (strcat "图纸尺寸:" (xdrx_prompt (/ y 100) "X" (/ x 100) t ) "\\P" "规 格:" (if (> (length cc1) 1) (strcat (car cc1) "加长" (last cc1)) (car cc1) ...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-22 17:19:51 | 显示全部楼层

你把上面代码

(strcat "图纸尺寸:" (xdrx_prompt (/ y 100) "X"
                                                          (/ x 100) t
                                             ) "\\P" "规    格:"
                                 (if (> (length cc1) 1)
                                   (strcat (car cc1) "加长" (last cc1))
                                   (car cc1)
                                 )
                         )


改成:

(strcat "规    格:" (if (> (length cc1) 1)
                      (strcat (car cc1) "加长" (last cc1))
                      (car cc1)
                    )
)


就行了。

API那个,你启动不了几次CAD吧,几秒的事。 如何仅让你用这个程序的时候启动API,还不是一句两句的事,多看看开发版本置顶相关的帖子,学学有关开发的知识,看看怎么手动加载API。

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-22 17:27:48 | 显示全部楼层
你这些属性 定义在哪里了? 做动态时候的截图 都贴下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2016-10-22 17:33:18 | 显示全部楼层

您好,感谢您的回复,截图已经上传了,同时我已经把图框附在了帖子下面的附件中

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-22 17:41:53 | 显示全部楼层
本帖最后由 newer 于 2016-10-22 17:53 编辑

QQ截图20161022175304.png

属性都在这里了

命令: (setq c (xdrx_dynblock_GetProperty (entlast)))
((("PropertyName" "X向距离") ("Description" "") ("ReadOnly" nil) ("Show" T)
("Value" 105100.0) ("UnitsType" 2) ("AllowedValue" nil)) (("PropertyName"
"Origin") ("Description" "") ("ReadOnly" T) ("Show" nil) ("Value" (0.0 0.0
0.0)) ("UnitsType" 0) ("AllowedValue" nil)) (("PropertyName" "图纸尺寸")
("Description" "") ("ReadOnly" nil) ("Show" T) ("Value" "A1+1/4") ("UnitsType"
0) ("AllowedValue" "A2" "A2+1/4" "A2+1/2" "A2+3/4" "A2+1" "A1" "A1+1/4"
"A1+1/2" "A1+3/4" "A1+1" "A0" "A0+1/8" "A0+1/4")) (("PropertyName" "Y向距离")
("Description" "") ("ReadOnly" nil) ("Show" T) ("Value" 59400.0) ("UnitsType"
2) ("AllowedValue" nil)) (("PropertyName" "Origin") ("Description" "")
("ReadOnly" T) ("Show" nil) ("Value" (105100.0 0.0 0.0)) ("UnitsType" 0)
("AllowedValue" nil)) (("PropertyName" "距??) ("Description" "") ("ReadOnly"
nil) ("Show" T) ("Value" 38790.0) ("UnitsType" 2) ("AllowedValue" nil))
(("PropertyName" "Origin") ("Description" "") ("ReadOnly" T) ("Show" nil)
("Value" (51600.0 0.0 0.0)) ("UnitsType" 0) ("AllowedValue" nil)))


命令: (nth 0 c)
(("PropertyName" "X向距离") ("Description" "") ("ReadOnly" nil) ("Show" T)
("Value" 105100.0) ("UnitsType" 2) ("AllowedValue" nil))

命令: (nth 1 c)
(("PropertyName" "Origin") ("Description" "") ("ReadOnly" T) ("Show" nil)
("Value" (0.0 0.0 0.0)) ("UnitsType" 0) ("AllowedValue" nil))

命令: (nth 2 c)
(("PropertyName" "图纸尺寸") ("Description" "") ("ReadOnly" nil) ("Show" T)
("Value" "A1+1/4") ("UnitsType" 0) ("AllowedValue" "A2" "A2+1/4" "A2+1/2"
"A2+3/4" "A2+1" "A1" "A1+1/4" "A1+1/2" "A1+3/4" "A1+1" "A0" "A0+1/8" "A0+1/4"))

命令: (nth 3 c)
(("PropertyName" "Y向距离") ("Description" "") ("ReadOnly" nil) ("Show" T)
("Value" 59400.0) ("UnitsType" 2) ("AllowedValue" nil))

命令: (nth 4 c)
(("PropertyName" "Origin") ("Description" "") ("ReadOnly" T) ("Show" nil)
("Value" (105100.0 0.0 0.0)) ("UnitsType" 0) ("AllowedValue" nil))

命令: (nth 5 c)
(("PropertyName" "距离") ("Description" "") ("ReadOnly" nil) ("Show" T) ("Value"
38790.0) ("UnitsType" 2) ("AllowedValue" nil))

命令: (nth 6 c)
(("PropertyName" "Origin") ("Description" "") ("ReadOnly" T) ("Show" nil)
("Value" (51600.0 0.0 0.0)) ("UnitsType" 0) ("AllowedValue" nil))

你标注那个   折1000张A1, 这个是根据什么来的?

                    1:30 图纸比例 这个值在哪保存的?

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-22 19:00:56 | 显示全部楼层
本帖最后由 newer 于 2016-10-22 19:24 编辑

测试

动态图框文字2.gif

下载 XDRX API 安装后,执行下面代码:

(defun c:tt ()
  (if (and
        (setq e (car (xdrx_entsel "\n拾取图框<退出>:" '((0 . "insert")))))
        (xdrx_dynblock_isDyn e)
        (setq #height (getreal "\n文字高度<退出>:"))
        (setq pt (getpoint "\n文字插入点<退出>:"))
      )
    (progn
      (setq x (xdrx_dynblock_GetValue e "X向距离")
            y (xdrx_dynblock_GetValue e "Y向距离")
            cc (xdrx_dynblock_GetValue e "图纸尺寸")
            cc1 (xdrx_string_regexps "[^+]+" cc)
      )
      (setq lst (list (list "" "") (list "图纸尺寸" (xdrx_prompt
                                                                  (/ y 100)
                                                                  "X"
                                                                  (/ x 100)
                                                                  t
                                                     )
                                   ) (list "规    格" (if (>
                                                             (length cc1) 1
                                                          )
                                                        (strcat
                                                                (car cc1)
                                                                "加长"
                                                                (last cc1)
                                                        )
                                                        (car cc1)
                                                      )
                                     )
                )
      )
      (xd::text:init 1)
      (xd::table:makefromlist lst pt #height (/ #height 2.0))
    )
  )
  (princ)
)

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

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2016-10-22 22:41:53 | 显示全部楼层

您好,这个折1000张A1  只是那个前辈做的程序里面的,我希望的只是显示多少多少加长的就可以了,比例的话希望可以根据图框大小自动来判断,毕竟1:50的A2图框只有普通图框的一半,如果这个功能不能实现也是没关系的,主要是可以显示是什么样的图框就可以了,非常感谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2016-10-22 23:03:41 | 显示全部楼层

您好前辈,为什么我无法使用您的程序呢,提示输入高度和位置之后并没有结果出来,XDAPI也装过了

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

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2016-10-22 23:08:48 | 显示全部楼层
而且我每次打开CAD都提示
***   ≡ AutoCAD 应用程序开发接口XDRX_API For AutoCAD Build 2016.10.19 ≡  ***
晓东通用LISP函数库Build 2016.10.28加载完毕...; 错误: Automation 错误。 加载应用程序时出现问题

输入要加载的自定义文件的名称:

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-22 23:11:32 | 显示全部楼层

去下载下 最新 的 晓东通用LISP函数库,再试试。http://bbs.xdcad.net/thread-669133-1-1.html
把它覆盖到XDRX API 安装的 SYS目录下面。重启CAD。

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

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2016-10-22 23:15:59 | 显示全部楼层

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-22 23:19:00 | 显示全部楼层

你这个提示, XDRX API 加载成功了, 加载 通用LISP函数库时候出现问题了,这个就奇怪了,函数库是LISP,你命令行输入 (vl-load-com) 看出现错误提示不?

如果你下载最新的 通用LISP函数库还不能加载,你去 http://bbs.xdcad.net/thread-705792-1-1.html , 拷贝下生成表格函数 xd::table:makefromlist ,加载它。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2016-10-22 23:19:05 | 显示全部楼层

您好,替换了并且重启了CAD之后还是无法使用的,不过有个提示:
文字插入点<退出>:; 错误: no function definition: XD::TEXT:INIT

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

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

 楼主| 发表于 2016-10-22 23:21:34 | 显示全部楼层

我输入了(vl-load-com) 之后什么提示都没有的,前辈,我可不可以不需要这个表格,只需要有一行稍微大点的字写明是“A2”还是“A2+1/4”之类的就可以了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-22 23:21:35 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 23:57 , Processed in 0.537437 second(s), 62 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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