找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2575|回复: 18

[求助] 如何改变选择图元的方法

[复制链接]
发表于 2014-10-3 15:45:38 | 显示全部楼层 |阅读模式

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

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

×
(defun c:DAT ( / lst current_date obj)
(setq obj (vlax-ename->vla-object (car (entsel))))
(if (assoc "DATE(M-D-Y)"  (VxGetAtts Obj))
  (PROGN
  (setq cdt (rtos (getvar "cdate") 2 0))
  (setq month (substr cdt 5 2))
  (setq date (substr cdt 7 2))
  (setq year (substr cdt 1 4))
  (setq current_date (strcat month "-" date "-" year))
(VxSetAtts Obj (list (cons "DATE(M-D-Y)"  current_date)) )
  );END PROGN
  
);END IF
)


现在改为:
(defun c:DAT ( / lst current_date obj)
(setq obj (vlax-ename->vla-object (car (ssget '((2 . "A3") (66 . 1))))))
(if (assoc "DATE(M-D-Y)"  (VxGetAtts Obj))
  (PROGN
  (setq cdt (rtos (getvar "cdate") 2 0))
  (setq month (substr cdt 5 2))
  (setq date (substr cdt 7 2))
  (setq year (substr cdt 1 4))
  (setq current_date (strcat month "-" date "-" year))
(VxSetAtts Obj (list (cons "DATE(M-D-Y)"  current_date)) )
  );END PROGN
  
);END IF
)

那个出错了,为什么用不了呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2014-10-3 15:49:51 | 显示全部楼层
(defun c:DAT ( / lst current_date obj)
(setq obj (vlax-ename->vla-object (car (ssget '((2 . "PX-A3") (66 . 1))))))
(if (assoc "DATE(M-D-Y)"  (VxGetAtts Obj))
  (PROGN
  (setq cdt (rtos (getvar "cdate") 2 0))
  (setq month (substr cdt 5 2))
  (setq date (substr cdt 7 2))
  (setq year (substr cdt 1 4))
  (setq current_date (strcat month "-" date "-" year))
(VxSetAtts Obj (list (cons "DATE(M-D-Y)"  current_date)) )
  );END PROGN
  
);END IF
)

现在改为:
(defun c:DAT ( / lst current_date obj)
(setq obj (vlax-ename->vla-object (car (entsel))))
(if (assoc "DATE(M-D-Y)"  (VxGetAtts Obj))
  (PROGN
  (setq cdt (rtos (getvar "cdate") 2 0))
  (setq month (substr cdt 5 2))
  (setq date (substr cdt 7 2))
  (setq year (substr cdt 1 4))
  (setq current_date (strcat month "-" date "-" year))
(VxSetAtts Obj (list (cons "DATE(M-D-Y)"  current_date)) )
  );END PROGN
  
);END IF
)

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-10-3 16:46:34 | 显示全部楼层
以后发帖如果出现表情符号在帖子里面,编辑下帖子,附加选项里面的 去掉表情符 勾上就可以了。

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

使用道具 举报

发表于 2014-10-3 17:54:31 | 显示全部楼层
本帖最后由 Free-Lancer 于 2014-10-3 17:55 编辑

  1. (defun c:DAT (/ ss obj cdt month data year current_date obj)
  2.   (if (and (setq ss (ssget '((2 . "A3") (66 . 1))))
  3.            (setq obj (vlax-ename->vla-object (ssname ss 0)))
  4.            (assoc "DATE(M-D-Y)" (VxGetAtts Obj))
  5.       )
  6.     (PROGN
  7.       (setq cdt                 (rtos (getvar "cdate") 2 0)
  8.             month         (substr cdt 5 2)
  9.             date         (substr cdt 7 2)
  10.             year         (substr cdt 1 4)
  11.             current_date (strcat month "-" date "-" year)
  12.       )
  13.       (VxSetAtts Obj (list (cons "DATE(M-D-Y)" current_date)))
  14.     )                                        ;END PROGN
  15.   )
  16.   (princ)
  17. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-3 19:03:04 | 显示全部楼层
Free-LancerFree-Lancer大师的还是不行,运行后没反应;原lisp如下:
(defun VxGetAtts (Obj)
(mapcar
'(lambda (Att)
   (cons (vla-get-TagString Att)
         (vla-get-TextString Att)
   )
  )
  (vlax-invoke Obj 'GetAttributes)
)
)
;获取块属性
(defun VxSetAtts (Obj Lst / AttVal)
(mapcar
'(lambda (Att)
   (if (setq AttVal (cdr (assoc (vla-get-TagString Att) Lst)))
    (vla-put-TextString Att AttVal)
   )
  )
  (vlax-invoke Obj 'GetAttributes)
)
(vla-update Obj)
(princ)
)

;替换块属性
(defun c:DAT ( / lst current_date obj)
(setq obj (vlax-ename->vla-object (car (entsel))))
(if (assoc "DATE(M-D-Y)"  (VxGetAtts Obj))
  (PROGN
  (setq cdt (rtos (getvar "cdate") 2 0))
  (setq month (substr cdt 5 2))
  (setq date (substr cdt 7 2))
  (setq year (substr cdt 1 4))
  (setq current_date (strcat month "-" date "-" year))
(VxSetAtts Obj (list (cons "DATE(M-D-Y)"  current_date)) )
  );END PROGN
  
);END IF
)

原来是要一个一个点选图框,修改DATE(M-D-Y)为当前的日期,我现在想用框选PX-A3图框的形式,来修当前日期
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-3 19:05:23 | 显示全部楼层
Free-LancerFree-Lancer大师的还是不行,运行后没反应;原lisp如下:
(defun VxGetAtts (Obj)
(mapcar
'(lambda (Att)
   (cons (vla-get-TagString Att)
         (vla-get-TextString Att)
   )
  )
  (vlax-invoke Obj 'GetAttributes)
)
)
;获取块属性
(defun VxSetAtts (Obj Lst / AttVal)
(mapcar
'(lambda (Att)
   (if (setq AttVal (cdr (assoc (vla-get-TagString Att) Lst)))
    (vla-put-TextString Att AttVal)
   )
  )
  (vlax-invoke Obj 'GetAttributes)
)
(vla-update Obj)
(princ)
)

;替换块属性
(defun c:DAT ( / lst current_date obj)
(setq obj (vlax-ename->vla-object (car (entsel))))
(if (assoc "DATE(M-D-Y)"  (VxGetAtts Obj))
  (PROGN
  (setq cdt (rtos (getvar "cdate") 2 0))
  (setq month (substr cdt 5 2))
  (setq date (substr cdt 7 2))
  (setq year (substr cdt 1 4))
  (setq current_date (strcat month "-" date "-" year))
(VxSetAtts Obj (list (cons "DATE(M-D-Y)"  current_date)) )
  );END PROGN
  
);END IF
)

原来是要一个一个点选图框,修改DATE(M-D-Y)为当前的日期,我现在想用框选PX-A3图框的形式,来修当前日期

点评

不知道用【code】吗 ?另外,你不懂编辑贴子?为什么要重复发贴?  发表于 2014-10-3 21:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-10-3 20:40:35 | 显示全部楼层
liushengri1 发表于 2014-10-3 19:05
Free-LancerFree-Lancer大师的还是不行,运行后没反应;原lisp如下:
(defun VxGetAtts (Obj)
(mapcar

  1. (defun c:tt (/ cdt month date year curent_date)
  2.   (fy:begin)
  3.   (if (ssget '((2 . "A3") (66 . 1)))
  4.     (progn
  5.       (setq cdt                 (rtos (getvar "cdate") 2 0)
  6.             month         (substr cdt 5 2)
  7.             date         (substr cdt 7 2)
  8.             year         (substr cdt 1 4)
  9.             current_date (strcat month "-" date "-" year)
  10.       )
  11.       (vlax-for        blk (fy:cset)
  12.         (mapcar        '(lambda (x)
  13.                    (if (= (cadr x) "DATE(M-D-Y)")
  14.                      (progn
  15.                        (vla-put-textstring (car x) current_date)
  16.                        (vla-update blk)
  17.                      )
  18.                    )
  19.                  )
  20.                 (insert:getattribute blk)
  21.         )
  22.       )
  23.     )
  24.   )
  25.   (fy:end)
  26.   (princ)
  27. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-3 21:42:45 | 显示全部楼层
Error: no function definition: INSERT:GETATTRIBUTE,还是不行

点评

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

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-10-3 21:48:11 | 显示全部楼层
liushengri1 发表于 2014-10-3 21:42
Error: no function definition: INSERT:GETATTRIBUTE,还是不行

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

使用道具 举报

 楼主| 发表于 2014-10-3 22:13:23 | 显示全部楼层
我有下载呀,XDRX_API.R2004.arx  lib.VLX都有加载的

点评

lib.vlx 中包括一部分采集于论坛 XD::函数(不含 API 的),主要用于使用 ActiveX 的 vla 方式程序  详情 回复 发表于 2014-10-3 22:44
此外,还有一个 xd-lisp-lib.vlx , 晓东通用LISP函数库。  详情 回复 发表于 2014-10-3 22:38
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-10-3 22:38:04 | 显示全部楼层
liushengri1 发表于 2014-10-3 22:13
我有下载呀,XDRX_API.R2004.arx  lib.VLX都有加载的

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

使用道具 举报

发表于 2014-10-3 22:44:07 | 显示全部楼层
liushengri1 发表于 2014-10-3 22:13
我有下载呀,XDRX_API.R2004.arx  lib.VLX都有加载的

lib.vlx 中包括一部分采集于论坛 XD::函数(不含 API 的),主要用于使用 ActiveX 的 vla 方式程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-3 22:58:39 | 显示全部楼层
xd-lisp-lib.vlx那个没有权限,下不了哟
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-4 22:57:01 | 显示全部楼层
加载:xd-lisp-lib.vlx  XDRX_API.R2004.arx   lib.VLX后,还是无法使用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-10-4 23:33:13 | 显示全部楼层
liushengri1 发表于 2014-10-4 22:57
加载:xd-lisp-lib.vlx  XDRX_API.R2004.arx   lib.VLX后,还是无法使用

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 21:51 , Processed in 0.188367 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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