找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1009|回复: 6

[建议]:理正面积标注

[复制链接]

已领礼包: 58个

财富等级: 招财进宝

发表于 2008-1-9 16:54:46 | 显示全部楼层 |阅读模式

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

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

×
理正面积标注,文字标注位置建议如下,在屏幕上选点,如果该点处有文字,则自动替换这个文字,如果没有文字,自动生成新的文字,这样使用非常方便
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2008-1-21 22:04:16 | 显示全部楼层
这个是好主意!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 58个

财富等级: 招财进宝

 楼主| 发表于 2008-2-2 10:06:04 | 显示全部楼层
不一定 任何图层上文字都行 这样兼容性更好一些
举例:如果建筑布局修改了 我们需要修改相应表格中的建筑面积(这个表格可能是做的,只是普通文字,不一定在指定的图层上) 这样直接点击文字 自动修改了 省去复制粘贴的麻烦
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-2-2 10:17:18 | 显示全部楼层
那这样就只能加选项了,否则可能会给人带来不必要的麻烦。
加选项有两种方法:1、在“Q改参数”对话框里面加,需要两种用法来回切换;2、在标注时增加命令行参数,但每次选文字都要按热键。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 58个

财富等级: 招财进宝

 楼主| 发表于 2008-2-3 08:54:10 | 显示全部楼层
是否可以这样
(setq pt (getpoint "\n输入文字标注点<不标注>:"))
(if pt
    (progn
        (if (setq ss (ssget pt '(0 . "text")))
            (progn
                (setq text (ssname ss 0))
                (改变text组码)
            )
            (progn
                (command "dtext" . . . .)
            )
        )
    )
    (princ "\n面积为:......")
)

;;;---------------------------------------------------------------------------------------
;而是怕在注面积的附近会有其它文字;如果只是替换已有面积标注,那么出麻烦的几率会比闲
;我觉得不会出现这种情况,下面一段小程序是个例子,欢迎网友测试一下,看看是否方便,给
;Qun老大一个参考意见
;此例是文字标注时,如果选点位置有文字,则替换该文字,如果没有,则生成新文字,功能是
;进行简单的+-*/计算
(defun c:plus
              (/       ss1     ss2     i       str     sum     total-ss1
               total-ss2       aa      bb      pt      text    weishu
               loop
              )
    (defun zgx-nhbl (/ nhbl)
        (if (setq nhbl (tblsearch "dimstyle" "normal"))
            (setq nhbl (cdr (assoc 40 nhbl)))
            (setq nhbl 1.0)
        )
    )
    (defun zgx-grread (msg track allkeys curtype / k)
        (prompt (strcat "\n" msg))
        (if (= (car (setq k (grread track allkeys curtype))) 12)
            (setq k (grread track allkeys curtype))
            k
        )
    )
    (defun zgx-getstring (msg / str)
        (while (or (not str) (= "" str))
            (setq str (getstring (strcat "\n" msg)))
        )
    )
    (defun zgx-get-dxf (code entname kk)
        (if (= kk 2)
            (assoc code (entget entname))
            (cdr (assoc code (entget entname)))
        )
    )
    (defun zgx-select (msg lst1 lst2)
        (prompt (strcat "\n" msg))
        (ssget (mapcar 'cons lst1 lst2))
    )
    (defun zgx-chg-dxf (en code newdata / endata)
        (setq endata (entget en))
        (setq
            endata (subst (cons code newdata)
                          (assoc code endata)
                          endata
                   )
        )
        (entmod endata)
    )
    (if        (not (setq weishu (vlax-ldata-get "zgx-preset" "weishu"))
        )
        (progn
            (setq weishu 2)
            (vlax-ldata-put "zgx-preset" "weishu" weishu)
        )
    )
    (setq str (zgx-getstring "请输入+ - * /:"))
    (setq ss1
             (zgx-select "选择第1组数字:" (list 0) (list "text"))
    )
    (setq i 0)
    (setq total-ss1 0)
    (setq total-ss2 0)
    (repeat (sslength ss1)
        (setq en (ssname ss1 i))
        (setq total-ss1        (+
                            total-ss1
                            (atof (zgx-get-dxf 1 en 1))
                        )
        )
        (setq i (1+ i))
    )
    (setq ss2
             (zgx-select "选择第2组数字:" (list 0) (list "text"))
    )
    (if        ss2
        (progn
            (setq i 0)
            (repeat (sslength ss2)
                (setq en (ssname ss2 i))
                (setq
                    total-ss2 (+
                                  total-ss2
                                  (atof (zgx-get-dxf 1 en 1))
                              )
                )
                (setq i (1+ i))
            )
        )
    )
    (if        total-ss2
        (setq sum ((eval (read str))
                      total-ss1
                      total-ss2
                  )
        )
        (setq sum total-ss1)
    )
    (if        ss2
        (progn
            (while
                (and
                    (princ (strcat
                               "\n----当前计算结果为"
                               (rtos sum 2 3)
                               "----"
                           )
                    )
                    (/=        ""
                        (setq str
                                 (getstring
                                     "\n请输入+ - * / :{右键退出求值}"
                                 )
                        )
                    )
                )
                   (setq ss2 (zgx-select
                                 "选择下一组数字:"
                                 (list 0)
                                 (list "text")
                             )
                   )
                   (setq total-ss2 0.0)
                   (setq i 0)
                   (repeat (sslength ss2)
                       (setq en (ssname ss2 i))
                       (setq total-ss2
                                (+
                                    total-ss2
                                    (atof (zgx-get-dxf 1 en 1)
                                    )
                                )
                       )
                       (setq i (1+ i))
                   )
                   (setq sum ((eval (read str))
                                 sum
                                 total-ss2
                             )
                   )
            )
        )
    )
    (princ (strcat
               "\n"
               (rtos sum 2 3)
           )
    )
    (setq loop t)
    (while loop
        (setq aa (zgx-grread
                     (strcat
                         "选择文字位置{可点取文字,q改变位数,当前保留"
                         (rtos weishu 2 0)
                         "位}"
                     )
                     nil
                     4
                     0
                 )
        )
        (setq bb (car aa))
        (cond
            ((member bb '(11 12))        ;鼠标右键
             (progn
                 (princ        (strcat
                            "\n----计算结果为"
                            (rtos sum 2 weishu)
                            "----"
                        )
                 )
                 (setq loop nil)
             )
            )
            ((= 3 bb)
             (progn
                 (setq loop nil)
                 (setq text (ssget (cadr aa)))
                 (if text
                     (setq text (ssname text 0))
                 )
                 (if (and
                         text
                         (= (zgx-get-dxf 0 text 1) "TEXT")
                     )
                     (zgx-chg-dxf
                         text
                         1
                         (rtos sum 2 weishu)
                     )
                     (progn
                         (setq pt (cadr aa))
                         (entmake
                             (mapcar
                                 'cons
                                 (list 0 8 10 40 1 41 7)
                                 (list
                                     "text"
                                     "area"
                                     pt
                                     (* (zgx-nhbl) 300.0)
                                     (rtos sum 2 weishu)
                                     0.7
                                     (if (not (tblsearch "style" "s")
                                         )
                                         (getvar "textstyle")
                                         "s"
                                     )
                                 )
                             )
                         )
                     )
                     ;;progn
                 )
             )
            )
            ((= 2 bb)
             (progn
                 (cond
                     ((member (cadr aa) '(13 32))
                                        ;空格或回车键
                      (progn (princ (strcat
                                        "\n----计算结果为"
                                        (rtos sum 2 weishu)
                                        "----"
                                    )
                             )
                             (setq loop nil)
                      )
                     )
                     ((member (cadr aa) '(81 113))
                      (progn
                          (setq weishu (1+ weishu))
                          (if (> weishu 3)
                              (setq weishu 0)
                          )
                          (vlax-ldata-put
                              "zgx-preset"
                              "weishu"
                              weishu
                          )
                          (setq loop t)
                      )
                     )
                     (t (setq loop t))
                 )
             )
            )                                ;cond = 2 bb
            (t
             (progn
                 (princ        (strcat
                            "\n----计算结果为"
                            (rtos sum 2 weishu)
                            "----"
                        )
                 )
             )
            )
        )
    )                                        ;while   
    (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-2-3 10:21:38 | 显示全部楼层
不是技术上实现不了的问题!而是怕在注面积的附近会有其它文字;如果只是替换已有面积标注,那么出麻烦的几率会比较小。
如果你需要的这种替换比较少,就用5楼的方法2;如果多就用方法1。另外,不是什么文字都可以替换出平方符号的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 05:33 , Processed in 0.441404 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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