明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4898|回复: 5

[求助]如何在图上标注坐标?

[复制链接]
发表于 2003-3-1 02:05:00 | 显示全部楼层 |阅读模式
我是学测量的菜鸟,想直接在图上标注某点坐标:
                                             X=1111111.111
                                             Y=1111111.111(小数点取后三位)
        我用LISP写了一点,不过不能实现引出线和坐标X,Y,小数点也不能取后三位,
        那位大虾能帮一下。我的EMAIL:SUPEID@163.NET
(defun C:spl ()
    (setq p1 (getpoint"坐标点"))
    (setq p2 (getpoint "标注位置"))
(command "line" p1 p2 "@0.5<0" "")

  (setq xval (car p1))
(setq yval (cadr p1))
(command "text" p2 0.5 90  xval  "")               
(command "text" p1 0.5 90  yval  "")
  (princ)  )
发表于 2003-3-1 09:03:00 | 显示全部楼层

看看是不是你要的

(defun C:spl (/ p1 p2 p3)
  (setq p1 (getpoint"\n坐标点:"))
  (setq p2 (getpoint p1 "\n标注位置:"))
  (setq p3 (getpoint p2 "\n标注方向:"))
  (command ".qleader" p1 p2 p3 "" (strcat (rtos (car p1) 2 3) "," (rtos (cadr p1) 2 3)) "")
  (princ)
)
发表于 2003-3-1 10:42:00 | 显示全部楼层

程序中的idd,你使用试试。

本帖子中包含更多资源

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

x
 楼主| 发表于 2003-3-1 12:13:00 | 显示全部楼层

谢谢各位啦,我先试试再说了

谢谢各位啦,我先试试再说了
发表于 2003-3-13 14:42:00 | 显示全部楼层

这可是我用了半年时间才完善的(不过比天正5.0的还是差了点)

(setq bzhome "Xy")
(setq Newtextsize (getvar "textsize"))
(setq bz_angtype "固定")
(setq sstr1 "X=")
(setq sstr2 "Y=")
(setq prog_dimzb T)

(defun c:zbbz (/           tmp               textstyle_old
               DIMZIN_OLD  TEXTEVAL_old                   TEXTFILL_old
               TEXTQLTY_old               TEXTSIZE_old
               old_lay           ptx1               pty1           PTZ1
               op1           op2               op3           downtemp
               pt1           pt2               pt3           bzang
               ucsx           ucsy zbbz_liberty zbbz_fixup setini_zb
               sethome settexth setzbangle setclose_zb err_new
              )
;;;变量说明
;;;全局变量:
;;;bz_angtype-标注方向模式;Newtextsize-字高;
;;;GDang-固定模式下的角度值;bzhome-坐标前缀变量
;;;
;;;局部变量:  
;;;netbeetmp1、netbeetmp2为临时量
;;;*_old为各环境变量的旧变量
;;;ptx1 pty1 ptz1 为点位的X、Y、Z坐标值变量  
;;;OP1、OP2、OP3为三个图元量
;;;downtemp为逻辑量
;;;pt1 pt2 pt3 为选取点的变量
;;;
;;;函数说明:
;;;setini_zh-坐标标注初始化;zbbz_liberty-动态模式;zbbz_fixup-固定模式
;;;sethome-设置坐标前缀函数;settexth-设置字高;setzbangle-设置标注模式
;;;setclose-恢复系统环境
;;;====================================================
(defun setclayer (slist / cname cor ctmp tmp)
  (setq        ctmp (strcat "\n(setclayer '(层名 颜色))!"
                     "\n(setclayer \"轴线\")设置当前图层"
             ) ;_ end of strcat
  ) ;_ end of setq
  (cond        ((= (type slist) 'LIST)
         (setq cname (car slist)
               cor   (cadr slist)
         ) ;_ end of setq
        )
        ((= (type slist) 'STR)
         (setq cname slist)
        )
  ) ;_ end of cond
  (cond        ((= slist '?)
         (alert ctmp)
        )
        ((not slist)
         (if clayer_old
           (setvar "clayer" clayer_old)
           (setvar "clayer" "0")
         ) ;_ end of if
        )
        ((and cname cor (= (type cname) 'STR) (= (type cor) 'INT))
         (if (and (tblobjname "LAYER" cname)
               (setq tmp (entget(tblobjname "LAYER" cname))))
           (progn (setq        tmp (subst (cons 62 cor)
                                   (assoc 62 tmp)  

                                   tmp
                            )
                        tmp (subst (cons 70 0) (assoc 70 tmp) tmp)
                  )
                  (entmod tmp)
           )
           (entmake (list
                      '(0 . "LAYER")
                      '(100 . "AcDbSymbolTableRecord")
                      '(100 . "AcDbLayerTableRecord")
                      '(6 . "CONTINUOUS")
                      (cons 62 cor)
                      '(70 . 0)
                      (cons 2 cname)
                    ) ;_ end of list
           ) ;_ end of entmake

         ) ;_ end of if
         (setq clayer_old (getvar "clayer"))
         (setvar "clayer" cname)
        )
        ((and (= (type cname) 'STR))
         (if (setq tmp (entget(tblobjname "LAYER" cname)))
           (progn (setvar "clayer" cname)
                  (setq        tmp (subst (cons 62 cor)
                                   (assoc 62 tmp)
                                   tmp
                            )
                        tmp (subst (cons 70 0) (assoc 70 tmp) tmp)
                  )
                  (entmod tmp)
           )
           (progn (entmake (list
                             '(0 . "LAYER")
                             '(100 . "AcDbSymbolTableRecord")
                             '(100 . "AcDbLayerTableRecord")
                             '(6 . "CONTINUOUS")
                             (cons 62 7)
                             '(70 . 0)
                             (cons 2 cname)
                           ) ;_ end of list
                  ) ;_ end of entmake
           ) ;_ end of progn
         ) ;_ end of if
         (setq clayer_old (getvar "clayer"))
         (setvar "clayer" cname)
        )
        (T (progn (alert (strcat "\n数据错误:" ctmp))))
  ) ;_ end of cond
  (princ)
) ;_ end of defun
;;;========================================
(defun setstyle        (slist / tlist textn textf ctmp tf)
  (setq        ctmp (strcat
               "\n(setstyle '((2. \"宋体\")(3 . \"SIMSUN.TTF\")(40 . 0)(41 . 0.8)...)!"
               "\n(setstyle \"宋体\")设置当前字体"
               "\n各参数意义如下:"
               "\n2        样式名称"
               "\n40        固定文字高度;如果高度不固定则值为 0"
               "\n41        宽度因子"
               "\n50        倾斜角"
               "\n71        文字生成标志:"
               "\n        2 = 文字反向(X 轴方向镜像)"
               "\n        4 = 文字倒置(Y 轴方向镜像)"
               "\n42        最后使用的高度"
               "\n3        主字体文件名"
               "\n4        大字体文件名;如果没有则为空"
              ) ;_ end of strcat
        tf   nil
  ) ;_ end of setq

  (if (= (type slist) 'LIST)
    (setq textn        (if (assoc 2 slist)
                  (cdr (assoc 2 slist))
                ) ;_样式名称
          textf        (if (assoc 3 slist)
                  (cdr (assoc 3 slist))
                ) ;_主字体名称
;_文字生成标志2=文字反向(X轴方向镜像)4=文字倒置(Y轴方向)
          slist        (if (not (assoc 3 slist))
                  (progn (setq textf "txt") (append slist '((3 . "txt"))))
                  slist
                ) ;_ end of if
          slist        (if (not (assoc 40 slist))
                  (append slist '((40 . 0.0)))
                  slist
                ) ;_ end of if
          slist        (if (not (assoc 41 slist))
                  (append slist '((41 . 1.0)))
                  slist
                ) ;_ end of if
          slist        (if (not (assoc 50 slist))
                  (append slist '((50 . 0.0)))
                  slist
                ) ;_ end of if
          slist        (append        '((0
                           .
                           "STYLE"
                          )
                         ) '((100
                              .
                              "AcDbSymbolTableRecord"
                             )
                            ) '((100
                                 .
                                 "AcDbTextStyleTableRecord"
                                )
                               ) '((70
                                    .
                                    0
                                   )
                                  ) slist) ;_ end of append

    ) ;_ end of setq
  ) ;_ end of if
  (if (= (type slist) 'STR)
    (setq textn        slist
    ) ;_ end of setq
  ) ;_ end of if
  (cond        ((= slist '?)
         (alert ctmp)
        )
        ((not slist)
         (if style_old
           (setvar "TEXTSTYLE" clayer_old)
           (setvar "TEXTSTYLE" "standard")
         ) ;_ end of if
         (setq tf t)
        )
        ((and textn textf (= (type slist) 'LIST))
         (if (tblobjname "STYLE" textn)
           (progn (setq
                    slist (append
                            (list (assoc -1 (entget (tblobjname "style" textn))))
                            slist
                          ) ;_ end of append
                    test  slist
                  ) ;_ end of setq

                  (entmod slist)
                  (setq tf t)
           ) ;_ end of progn
           (progn (entmake slist) (setq tf t))
         ) ;_ end of if
         (setq style_old (getvar "TEXTSTYLE"))
         (setvar "TEXTSTYLE" textn)
        )
        ((and (= (type slist) 'STR))
         (if (tblobjname "STYLE" textn)
           (progn (setvar "TEXTSTYLE" textn)
                  (setq tf T)
                  (setq style_old (getvar "TEXTSTYLE"))
                  (setvar "TEXTSTYLE" textn)
           )
         )
        )
        (T
         t
        )
  ) ;_ end of cond
  tf
) ;_ end of defun

;;;--------------------------------------------------
;;;动态标注角度模式
  (defun zbbz_liberty ()

    ;;用while控制标注的循环,回车退出标注
    (while
      (progn
        (while
          (progn
            (setq tmp
                   (strcat "\n[坐标前缀(C):"
                           bzhome
                           "][字高(H):"
                           (rtos Newtextsize)
                           "][方向模式(F):"
                           bz_angtype
                           "]选择标注基点:"
                   )
            )
            (initget "C H F")
            (setq pt1 (getpoint tmp))
            (if        (= (type pt1) 'STR)
              (cond ((= pt1 "C") (sethome) (not nil))
                    ((= pt1 "H") (settexth) (not nil))
                    ((= pt1 "F")
                     (setzbangle)
                     (if (= bz_angtype "固定")
                       (not t)
                       (not nil)
                     )
                    )
                    (t t)
              )

              (not t)
            )

          )
        )
        (if (or (= bz_angtype "固定") (not pt1))
          (not t)
          (not nil)
        )
      )

       (setq pt2 (getpoint pt1 "\n选择标注于何处:"))
       (command "_.line" pt1 pt2 "")
       (setq pt3 (getpoint pt2 "\n标注方向:"))

       ;;关闭捕捉方式
       (setq osmode_old (getvar "osmode"))
       (setvar "osmode" 0)

       ;;提取点pt1至pt2的方位角到变量xy1
       (setq xy1 (angle pt1 pt2))
       ;;提取点pt2至p3的方位角到变量bzang
       (setq bzang (angle pt2 pt3))

       ;;提取点piont1的X、Y坐标并分别转换为字符串
       (setq ptx1 (rtos (car pt1) 2 4))
       (setq pty1 (rtos (cadr pt1) 2 4))
       (SETQ PTZ1 (Rtos (CADDR PT1) 2 4))

       ;;把坐标字符串加缀
       ;;若不为测量坐标系则XY互换
       (if (= ucscfg 1)
         (progn
           (setq strx1 (strcat " " sstr1 ptx1 " "))
           (setq stry1 (strcat " " sstr2 pty1 " "))
         )
         (progn
           (setq strx1 (strcat " " sstr1 ptY1 " "))
           (setq stry1 (strcat " " sstr2 ptX1 " "))
         )
       )
       (setq
         linel (rtos
                 (* Newtextsize
                    (MAX (STRLEN strx1) (STRLEN strY1))
                    0.9
                 )
               )
       )
       (setq linesize (strcat "@" linel "<0d"))
       (command "_.line" pt2 linesize "")
       (setq op1 (entlast))
       ;;根据两点方位角决定插入块的式
       (if (= ucscfg 1)
         (progn
           ;;若为测量坐标系
           (if (and (>= bzang 0.0) (< bzang 3.1415926))
             (progn (setq pt4 (list (+ (car pt2) 0.0)
                                    (+ (cadr pt2) (/ Newtextsize 3.0))
                              )
                    )
                    (command "_.text"  "S"         cTstyle1  "J"
                             "bl"      pt2         Newtextsize
                             0               strx1
                            )
                    (setq op2 (entlast))
                    (command "_.text"  "S"         cTstyle1  "J"
                             "tl"      pt4         Newtextsize
                             0               stry1
                            )
                    (setq op3 (entlast))
             )
             (progn (setq pt4 (list (- (car pt2) 0.0)
                                    (- (cadr pt2) (/ Newtextsize 3.0))
                              )
                    )
                    (command "_.text"  "S"         cTstyle2  "j"
                             "br"      pt2         Newtextsize
                             0               strx1
                            )
                    (setq op2 (entlast))
                    (command "_.text"  "S"         cTstyle2  "j"
                             "tr"      pt4         Newtextsize
                             0               stry1
                            )
                    (setq op3 (entlast))
             )
           )
           (command "_.rotate" op1 op2 op3 "" pt2 pt3)

           ;;恢复捕捉方式
           (setvar "osmode" osmode_old)
           (terpri)

         )
       )
       ;;若不为测量坐标系
       (progn
         ;;若在2 3象限
         (if (and (>= bzang (/ pi 2.0)) (< bzang (* pi (/ 3 2.0))))
           (progn (setq        pt4 (list (- (car pt2) 0.0)
                                  (+ (cadr pt2) (/ Newtextsize 3.0))
                            )
                  )
                  (command "_.text"  "S"       cTstyle1         "J"
                           "br"             pt2       Newtextsize
                           180             strx1
                          )
                  (setq op2 (entlast))
                  (command "_.text"  "S"       cTstyle1         "J"
                           "tr"             pt4       Newtextsize
                           180             stry1
                          )
                  (setq op3 (entlast))
           )
           ;;1 4象限
           (progn (setq        pt4 (list (- (car pt2) 0.0)
                                  (- (cadr pt2) (/ Newtextsize 3.0))
                            )
                  )
                  (command "_.text"  "S"       cTstyle2         "j"
                           "bl"             pt2       Newtextsize
                           0             strx1
                          )
                  (setq op2 (entlast))
                  (command "_.text"  "S"       cTstyle2         "j"
                           "tl"             pt4       Newtextsize
                           0             stry1
                          )
                  (setq op3 (entlast))
           )
         )
         (command "_.rotate" op1 op2 op3 "" pt2 pt3)

         ;;恢复捕捉方式
         (setvar "osmode" osmode_old)
         (terpri)

       )
    )

  )

;;;----------------------------------------------------------------
;;;固定角度模式
  (defun zbbz_fixup ()

    ;;确定标注方向
    (if        (= GDang nil)
      (if (= ucscfg 1)
        (setq GDang (/ pi 2.0))
        (setq GDang 0)
      )
    )
    (if        (setq tmp (getangle (strcat "\n确定标注方向<"
                                    (angtos GDang 1 5)
                                    ">:"
                            )
                  )
        )
      (setq GDang tmp)
    )


    (if        (= ucscfg 1)
      (progn (if (> (rem GDang (* pi 2.0)) pi)
               (setq GDang (- GDang pi))
             )
      )
      (progn
        (IF (AND (>= GDang (/ pi 2.0)) (< GDang (* pi (/ 3 2.0))))
          (setq GDang (+ GDang pi))
        )
      )
    )
    ;;用while控制标注的循环,回车退出标注
    (while
      (progn
        (while
          (progn
            (setq tmp
                   (strcat "\n[坐标前缀(C):"
                           bzhome
                           "][字高(H):"
                           (rtos Newtextsize)
                           "][方向模式(F):"
                           bz_angtype
                           "]选择标注基点:"
                   )
            )
            (initget "C H F")
            (setq pt1 (getpoint tmp))
            (if        (= (type pt1) 'STR)
              (cond ((= pt1 "C") (sethome) (not nil))
                    ((= pt1 "H") (settexth) (not nil))
                    ((= pt1 "F")
                     (setzbangle)
                     (if (= bz_angtype "动态")
                       (not t)
                       (not nil)
                     )
                    )
                    (t t)
              )


              (not t)
            )

          )
        )
        (if (or (= bz_angtype "动态") (not pt1))
          (not t)
          (not nil)
        )
      )


       (setq pt2 (getpoint pt1 "\n选择标注于何处:"))
       (command "_.line" pt1 pt2 "")

       ;;提取点pt1至pt2的方位角到变量xy1
       (setq xy1 (angle pt1 pt2))

       ;;关闭捕捉方式
       (setq osmode_old (getvar "osmode"))
       (setvar "osmode" 0)

       ;;提取点piont1的X、Y坐标并分别转换为字符串
       (setq ptx1 (rtos (car pt1) 2 4))
       (setq pty1 (rtos (cadr pt1) 2 4))
       (SETQ PTZ1 (Rtos (CADDR PT1) 2 4))
       ;;把坐标字符串加缀
       ;;若不为测量坐标系则XY互换
       (if (= ucscfg 1)
         (progn
           (setq strx1 (strcat " " sstr1 ptx1 " "))
           (setq stry1 (strcat " " sstr2 pty1 " "))
         )
         (progn
           (setq strx1 (strcat " " sstr1 ptY1 " "))
           (setq stry1 (strcat " " sstr2 ptX1 " "))
         )
       )

       (setq linel nil)
       (setq linesize nil)
       (setq
         linel (rtos
                 (* Newtextsize
                    (MAX (STRLEN strx1) (STRLEN stry1))
                    0.9
                 )
               )
       )
       (setq linesize (strcat "@" linel "<0d"))
       (command "_.line" pt2 linesize "")
       (setq op1 (entlast))

       ;;根据两点方位角决定插入块的形式
       ;;AutoCAD函数中角度值以弧度为单位,而在命令中却以角度为单位!
       ;;注意:在所有角度的返回值中大于360度的值均会先化简,360会化为0度!

       (if (= ucscfg 1)
         ;;若为测量坐标系
         (progn
           (if (and (< (+ xy1 (* 2 pi)) (+ GDang (/ pi 2) pi (* 2 pi)))
                    (>= (+ xy1 (* 2 pi)) (+ GDang (/ pi 2) (* 2 pi)))
               )
             (progn (setq pt4 (list (- (car pt2) 0.0)
                                    (- (cadr pt2) (/ Newtextsize 3.0))
                              )
                    )
                    (command "_.text"  "S"         cTstyle2  "j"
                             "br"      pt2         Newtextsize
                             0               strx1
                            )
                    (setq op2 (entlast))
                    (command "_.text"  "S"         cTstyle2  "j"
                             "tr"      pt4         Newtextsize
                             0               stry1
                            )
                    (setq op3 (entlast))
                    (command "_.rotate"
                             op1
                             op2
                             op3
                             ""
                             pt2
                             (angtos (+ GDang pi) 1 5)
                    )
             )
             (progn
               (setq pt4 (list (+ (car pt2) 0.0)
                               (+ (cadr pt2) (/ Newtextsize 3.0))
                         )
               )
               (command        "_.text"  "S"            cTstyle1  "J"
                        "bl"          pt2            Newtextsize
                        0          strx1
                       )
               (setq op2 (entlast))
               (command        "_.text"  "S"            cTstyle1  "J"
                        "tl"          pt4            Newtextsize
                        0          stry1
                       )
               (setq op3 (entlast))
               (command "_.rotate" op1 op2 op3 "" pt2 (angtos GDang 1 5))
             )
           )
         )
         ;;若不为测量系
         (progn
           ;;若小于GDang
           (princ
             (and
               (< (+ xy1 (* 2.0 pi)) (+ GDang (/ pi 2.0) pi (* 2.0 pi)))
               (>= (+ xy1 (* 2.0 pi)) (+ GDang (/ pi 2.0) (* 2.0 pi)))
             )
           )
           (if
             (and
               (< (+ xy1 (* 2.0 pi)) (+ GDang (/ pi 2.0) pi (* 2.0 pi)))
               (>= (+ xy1 (* 2.0 pi)) (+ GDang (/ pi 2.0) (* 2.0 pi)))
             )
              ;;若标注位置在3 4象限
              (progn (setq pt4 (list (- (car pt2) 0.0)
                                     (+ (cadr pt2) (/ Newtextsize 3.0))
                               )
                     )
                     (command "_.text"        "S"          cTstyle2  "j"
                              "br"        pt2          Newtextsize
                              180        strx1
                             )
                     (setq op2 (entlast))
                     (command "_.text"        "S"          cTstyle2  "j"
                              "tr"        pt4          Newtextsize
                              180        stry1
                             )
                     (setq op3 (entlast))
                     (command "_.rotate"
                              op1
                              op2
                              op3
                              ""
                              pt2
                              (angtos (+ GDang pi) 1 5)
                     )
              )
              (progn
                (setq pt4 (list        (+ (car pt2) 0.0)
                                (- (cadr pt2) (/ Newtextsize 3.0))
                          )
                )
                (command "_.text"  "S"             cTstyle1  "J"
                         "bl"           pt2             Newtextsize
                         0           strx1
                        )
                (setq op2 (entlast))
                (command "_.text"  "S"             cTstyle1  "J"
                         "tl"           pt4             Newtextsize
                         0           stry1
                        )
                (setq op3 (entlast))
                (command "_.rotate" op1 op2 op3 "" pt2 (angtos GDang 1 5))
              )
           )
         )
       )
       ;;恢复捕捉方式
       (setvar "osmode" osmode_old)
       (terpri)
    )


  )

;;;-----------------------------------------------------------------
;;;初始化函数
  (defun setini_zb ()
    (setq textstyle_old (getvar "textstyle"))
    (setq TEXTEVAL_old (getvar "TEXTEVAL"))
    (setq TEXTFILL_old (getvar "TEXTFILL"))
    (setq TEXTQLTY_old (getvar "TEXTQLTY"))
    (setq TEXTSIZE_old (getvar "TEXTSIZE"))
    (setq DIMZIN_OLD (GETVAR "DIMZIN"))
    (setq old_lay (getvar "clayer"))
    (setq ucsx (getvar "ucsxdir"))
    (setq ucsy (getvar "ucsydir"))
    (setq err_old *error*
          *error* err_new
    )
    (SETVAR "DIMZIN" 0)
    (setvar "cmdecho" 0)

    ;;判断坐标系统是否为测量系
    ;;是则ucscfg=1
    (if        (and (< (abs (car ucsx)) (abs (car ucsy)))
             (> (abs (cadr ucsx)) (abs (cadr ucsy)))
        )
      (progn (setq ucscfg 1)
             (setq cTstyle1 "ZB1")
             (setq cTstyle2 "ZB2")
             (princ "\n 测量坐标系!")
      )
      (progn (setq ucscfg 0)
             (setq cTstyle1 "TXT")
             (setq cTstyle2 "TXT")
             (princ "\n 其他坐标系![X Y将会互换!!!!!!!!!!!!]")
      )
    )
    ;;判断有无图层Coord_bz
    (setclayer '("Coord_bz" 3))
    ;;判断有无字类型ZB1
    (setstyle (list
                '(3 . "txt")
                '(41 . 1)
                '(71 . 4)
                (cons 2 "ZB1")
              )
    )
    ;;判断有无字类型TXT
    (setstyle (list
                '(3 . "txt")
                '(41 . 1)
                '(71 . 0)
                (cons 2 "TXT")
              )
    )
    ;;判断有无字类型ZB2
    (setstyle (list
                '(3 . "txt")
                '(41 . 1)
                '(71 . 2)
                (cons 2 "ZB2")
              )
    )
  )
;;;-----------------------------------------------------------------
;;;设置坐标前缀函数
  (defun sethome (/ tmp)
    (if        (setq tmp
               (progn
                 (initget 6 "No Xy  Ab")
                 (getkword (strcat "用何前缀:No or Xy or Ab<" bzhome ">:"))
               )
        )
      (setq bzhome tmp)
    )
    (cond ((= bzhome "No")
           (setq sstr1 "")
           (setq sstr2 "")
          )
          ((= bzhome "Xy")
           (setq sstr1 "X=")
           (setq sstr2 "Y=")
          )
          ((= bzhome "Ab")
           (setq sstr1 "A=")
           (setq sstr2 "B=")
          )
    )
  )
;;;-------------------------------------------------------
;;;设置字高函数
  (defun settexth (/ tmp)
    (if        (setq
          tmp (getreal (strcat "\n输入字高:<" (rtos Newtextsize) ">:"))
        )
      (setq Newtextsize tmp)
    ) ;_结束if

  ) ;_结束defun
;;;--------------------------------------------------------------
;;;设置坐标标注方向模式函数
  (defun setzbangle (/ tmp)
    (initget 6 "G S")
    (if        (setq tmp (getkword (strcat "\n标注方向模式[固定(G)][动态(S)]<"
                                    bz_angtype
                                    ">:"
                            )
                  )
        )
      (cond ((= tmp "G")
             (setq bz_angtype "固定")
            )
            ((= tmp "S")
             (setq bz_angtype "动态")
            )
      )
    )
  )


;;;--------------------------------------------------------------
;;;恢复初始环境
  (defun setclose_zb ()

    (setvar "textstyle" textstyle_old)
    (setvar "TEXTEVAL" TEXTEVAL_old)
    (setvar "TEXTFILL" TEXTFILL_old)
    (setvar "TEXTQLTY" TEXTQLTY_old)
    (setvar "TEXTSIZE" TEXTSIZE_old)
    (SETVAR "DIMZIN" DIMZIN_OLD)
    (setvar "clayer" old_lay)
    (setq *error* error_old)
    (setvar "cmdecho" 1)
    (princ)
  )


  (defun err_new (msg)
    (setclose_zb)
  )
;;;=========================  
  (prompt "\n测量坐标标注程序")

;;;调用初始化函数
  (setini_zb)

  (setq        downtemp nil
        downtemp T
  )
  (while downtemp
    (cond ((= bz_angtype "动态")
           (zbbz_liberty)
           (if (= bz_angtype "动态")
             (setq downtemp nil)
             (setq downtemp T)
           )
          )
          ((= bz_angtype "固定")
           (zbbz_fixup)
           (if (= bz_angtype "固定")
             (setq downtemp nil)
             (setq downtemp T)
           )

          )

    )
  )

  (setclose_zb)
)
发表于 2003-3-20 21:47:00 | 显示全部楼层

YAD建筑的坐标标注是位置关联的。试试看!

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 07:25 , Processed in 0.211490 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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