找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2973|回复: 11

[求助] 求教: lisp 根据属性数值 修改 拉伸动态块 第三贴

[复制链接]
发表于 2018-12-22 19:15:18 | 显示全部楼层 |阅读模式

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

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

×
问题描述:我想实现这样的目的,对一个动态块输入属性值,根据属性值来控制拉伸的长度。之前我已经从论坛求得读取动态块属性以及根据数值控制拉伸长度的两个函数,但在两个函数结合起来的时候出错了。求大神帮忙,动态块见附件。


QQ截图20181222191322.jpg

示范文件.rar

70.91 KB, 下载次数: 27, 下载积分: D豆 -1 , 活跃度 1

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

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-12-22 19:17:36 | 显示全部楼层
你结合是怎么出错了啊,请把代码贴上来。你描述下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-22 19:29:04 | 显示全部楼层
newer 发表于 2018-12-22 19:17
你结合是怎么出错了啊,请把代码贴上来。你描述下。

在提取数值时出错,试了几个list 的函数都不行。
QQ截图20181222192519.jpg
QQ截图20181222192457.jpg

点评

你这个是读取块的属性值 去看看关于属性的函数 [*](XD::Attrib:ModifyStyle)修改属性实体的样式2 个回复 - 1003 次查看 2013-7-28 21:48 - XDSoft - 开源函数库 [*]( XD::Attrib:SetColor)设置属性实体颜  详情 回复 发表于 2018-12-22 22:52
(princ (list a)) 你的代码整篇,也没 a 这个变量啊,a是哪来的  详情 回复 发表于 2018-12-22 20:21
出什么错了? 哪出错了? 应该是什么?你得到什么了?  详情 回复 发表于 2018-12-22 19:59
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-12-22 19:59:50 | 显示全部楼层
本帖最后由 newer 于 2018-12-22 20:01 编辑
嘎嘎嘎123 发表于 2018-12-22 19:29
在提取数值时出错,试了几个list 的函数都不行。

出什么错了? 哪出错了? 应该是什么?你得到什么了?另外,发帖,代码你不贴,别人要帮你改,让人家看你的图片从新输入嘛?
你看到别人的帖子,链接是什么,这些你都要贴到帖子里面,这些是求助最基本应该做的,

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

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-12-22 20:21:48 | 显示全部楼层
嘎嘎嘎123 发表于 2018-12-22 19:29
在提取数值时出错,试了几个list 的函数都不行。

(princ (list a))

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

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-12-22 22:52:31 | 显示全部楼层
嘎嘎嘎123 发表于 2018-12-22 19:29
在提取数值时出错,试了几个list 的函数都不行。

你这个是读取块的属性值

去看看关于属性的函数


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

使用道具 举报

 楼主| 发表于 2018-12-24 20:57:53 | 显示全部楼层
本帖最后由 嘎嘎嘎123 于 2018-12-24 20:59 编辑
marting 发表于 2018-12-22 22:52
你这个是读取块的属性值

去看看关于属性的函数

我根据XD::Attrib:SetValues 函数进行如下修改,但是没有成功。是lst定义有问题吗?(我动态快中定义了两个属性,)
  1. (defun c:tt ()

  2. (if
  3.      (and (setq e (car (entsel "\n拾取动态块<退出>:")))        
  4.    )   
  5. (setq lst '((工序时间 350d) (工序名称 嘎嘎)))
  6. (progn   
  7.    (setq o (vlax-ename->vla-object e))   
  8.     (foreach att (vlax-invoke o 'getattributes)   
  9.           (if (setq itm (assoc (vla-get-tagstring att) lst))   
  10.               (vla-put-textstring att (cdr itm) )   
  11.       )
  12.     )  
  13.    )
  14. )
  15. (princ)
  16. )


QQ截图20181224205659.jpg

点评

你这个写为什么? (setq lst '((工序时间 350d) (工序名称 嘎嘎))) 还有,你没成功,你最好和大家说,你想得到什么,你却得到了什么  详情 回复 发表于 2018-12-24 21:04
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-12-24 21:04:41 | 显示全部楼层
嘎嘎嘎123 发表于 2018-12-24 20:57
我根据XD::Attrib:SetValues 函数进行如下修改,但是没有成功。是lst定义有问题吗?(我动态快中定义了两 ...

你这个写为什么?


(setq lst '((工序时间 350d) (工序名称 嘎嘎)))

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-12-24 22:54:05 | 显示全部楼层
(setq lst '((工序时间 350d) (工序名称 嘎嘎)))
应该改成
(setq lst '(("工序时间" "350d") ("工序名称" "嘎嘎")))

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

使用道具 举报

 楼主| 发表于 2018-12-27 11:02:27 | 显示全部楼层
Lisphk 发表于 2018-12-24 22:54
(setq lst '((工序时间 350d) (工序名称 嘎嘎)))
应该改成
(setq lst '(("工序时间" "350d") ("工序名称" ...

如果是这样该怎么改呢?运行结果这样
  1. (defun c:tt ()

  2.       (setq b (getstring "\n输入工序名称<退出>:"))
  3.       (setq a (getint "\n输入工序时间<退出>:"))
  4.           (if
  5.              (and (setq e (car (entsel "\n拾取动态块<退出>:"))) a b)        
  6.                 (progn   
  7.                    (setq lst '(("工序时间" (itoa a)) ("工序名称" b)))
  8.                     (setq o (vlax-ename->vla-object e))   
  9.                        (foreach att (vlax-invoke o 'getattributes)   
  10.                             (if (setq itm (assoc (vla-get-tagstring att) lst))   
  11.                                 (vla-put-textstring att (cadr itm) )   
  12.                             )
  13.                         )  
  14.                   )
  15.     )
  16. (princ)
  17. )


QQ截图20181227110033.jpg

点评

多看看代码,举一反三 (setq lst '(("工序时间" (itoa a)) ("工序名称" b))) 这么写不对 表前面加 ' 表里面就都得是常量,不能有函数了 ,你上面代码里面的 (itoa a) 和 后面的b 改成: (setq lst (l  详情 回复 发表于 2018-12-27 12:10
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-12-27 12:10:45 | 显示全部楼层
嘎嘎嘎123 发表于 2018-12-27 11:02
如果是这样该怎么改呢?运行结果这样

多看看代码,举一反三


(setq lst '(("工序时间" (itoa a)) ("工序名称" b))) 这么写不对

表前面加 ' 表里面就都得是常量,不能有函数和变量了 ,你上面代码里面的 (itoa a) 和 后面的b

改成:

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

使用道具 举报

 楼主| 发表于 2018-12-27 14:31:26 | 显示全部楼层
newer 发表于 2018-12-27 12:10
多看看代码,举一反三

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 04:27 , Processed in 0.262379 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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