找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1151|回复: 5

[编程申请]:梁配筋与面积---文字关联的程序

[复制链接]
发表于 2009-3-24 09:17:42 | 显示全部楼层 |阅读模式

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

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

×
如图,3根20和面积9关联,如果将20改成18或者小于20的数,自动计算面积和9比较,如果小于9,字体颜色自动变成红色,希望论坛里的大侠能编一下,或者给出思路,越详细越好。谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2009-3-24 09:49:45 | 显示全部楼层
最初由 carrot1983 发布
[B]好想法。
第一反应就是用到反应器。

问题是:也是第一步

如何实现一一对应。

让图形中的3根20与9对应,4根25与19对应。。。等等

一个一个选择吗?

楼主,有思路的话,应该就可以写出程序来 [/B]

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

使用道具 举报

发表于 2009-3-24 09:47:21 | 显示全部楼层
好想法。
第一反应就是用到反应器。

问题是:也是第一步

如何实现一一对应。

让图形中的3根20与9对应,4根25与19对应。。。等等

一个一个选择吗?

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

使用道具 举报

发表于 2009-3-24 12:59:01 | 显示全部楼层
参考了: http://www.xdcad.net/forum/showthread.php?s=&threadid=658253

写出了这个代码:但是有不足,不能改颜色。
;;如果使用(vla-put-color NOTIFIER-OBJECT 1);改成红色 会出现提示 ; 错误: AutoCAD.Application: 对象正在通知

[php]
(vl-load-com)
                                        ;(vlr-remove-all)
;;梁配筋与面积---文字关联的程序  By carrot1983 2009-03-24
(defun C:TT (/ A D DATA_LIST E E1 I N PAT V1 VLA_OWN_LIST)
  (setq E1 (car (entsel "\n选择satwe计算值: ")))
  (setq E (car (entsel "\n选择平法梁配筋文字: ")))

  (setq DATA_LIST (list (cdr (assoc 5 (entget E1))))) ;_句柄表,它们将是反应器的关联数据

  (setq VLA_OWN_LIST (list (vlax-ename->vla-object E))) ;_vla对象表,它们将是反应器的所有者

  ;;反应器链接到<平法梁配筋文字 E>,<satwe计算值 E1>为关联数据,当修改<平法梁配筋文字 E>时,调用函数@CJW-BEAM-AREA
  ;;永久反应器
  (vlr-pers
    (vlr-object-reactor
      VLA_OWN_LIST
      DATA_LIST
      '((:vlr-modified . @CJW-BEAM-AREA))
    )
  )
  (princ)
)

(defun @CJW-BEAM-AREA (NOTIFIER-OBJECT               REACTOR-OBJECT
                       PARAMETER-LIST               /           AREA
                       D           DATA_LIST   E1           I
                       N           PAT               TXT           V1
                      )
  ;;反应器的所有者 <平法梁配筋文字>的文字内容
  (setq TXT (vla-get-textstring NOTIFIER-OBJECT))
  
  (setq DATA_LIST (vlr-data REACTOR-OBJECT)) ;_获取反应器的关联数据: 句柄表
  (setq E1 (handent (car DATA_LIST))) ;_取得<satwe计算值 E1>图元名

  ;;反应器的关联数据<satwe计算值>的文字内容
  (setq V1 (CJW-DXF 1 (entget E1)))

  ;;计算平法梁配筋文字面积 AREA
  (cond        ((vl-string-search "%%130" TXT)
         (setq PAT "%%130")
        )
        ((vl-string-search "%%131" TXT)
         (setq PAT "%%131")
        )
        ((vl-string-search "%%132" TXT)
         (setq PAT "%%132")
        )
  )
  (setq I (vl-string-search PAT TXT))
  (setq N (atoi (substr TXT 1 I)))
  (setq D (atoi (substr TXT (+ 1 5 I) (strlen TXT))))
  (setq AREA (* 0.01 (* N pi (expt D 2) 0.25))) ;_梁筋面积

  (if (< AREA (read V1)) ;_配筋值小于计算值时提示
    ;;如果使用(vla-put-color NOTIFIER-OBJECT 1);改成红色 会出现提示 ; 错误: AutoCAD.Application: 对象正在通知
    (alert "\n配筋值小了。。")
  )
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-3-24 16:44:10 | 显示全部楼层
期待后面的内容,包括程序的思路
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 04:24 , Processed in 0.201440 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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