明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2634|回复: 3

请大家帮忙写个小程序!谢谢!

[复制链接]
发表于 2002-7-25 16:33:00 | 显示全部楼层 |阅读模式
我用acad,但是老是发现要输入直径符号比较烦,麻烦各位能否写一个专门用来修改标注的程序,只需运行后,点哪,哪里的标注前就添加一个直径符号??
我知道这很不好意思,希望有高手来帮忙!谢谢了!
发表于 2002-7-26 08:08:00 | 显示全部楼层

哪需写什么程序呀?

另建一个标注样式,主单位中设置前缀%%C,只要在需要加直径符号的标注时选用这个样式来标注就行了。
发表于 2002-7-26 08:41:00 | 显示全部楼层

你那种是事后补救,事前办好的...

你那种是事后补救,事前办好的如下:
(defun C:DIML ()
  (command "_.DIMLINEAR" PAUSE PAUSE "T" "%%c<>" PAUSE)
)
(defun C:DIMALI        ()
  (command "_.DIMALIGNED" PAUSE PAUSE "T" "%%c<>" PAUSE)
)
事后补救的很久没有用要找找看!!
发表于 2002-7-26 11:25:00 | 显示全部楼层

事后补救,从某软件截录出来,希望能用!!

(defun C:ADD_MARK ()
  (defun RKADERROR (RKADES)
    (if        (/= RKADES "Function cancelled")
      (princ (strcat "\nError: " RKADES))
    )
    (setvar "cmdecho" RKAD_CMDECHO)
    (setq RKAD_CMDECHO NIL
          RKADDIMPOST NIL
          RKADDST NIL
          RKADELI NIL
          RKADENT NIL
          RKADLAST NIL
          RKADLST NIL
          RKADN        NIL
          RKADPOST NIL
          RKADDIMMOD NIL
          RKADOVR NIL
          RKADFTXT NIL
          RKADCNT NIL
          RKADT0 NIL
          RKADT1 NIL
          RKADT2 NIL
          RKADTR NIL
          RKADTF NIL
    )
    (setq *ERROR* RKADOLDERROR
          RKADOLDERROR NIL
    )
  )

  (defun RKADFTXT (RKADT1 RKADT2)
    (setq RKADTF NIL
          RKADTR NIL
    )
    (cond
      ((= (strlen RKADT1) (strlen RKADT2))
       (if (= (strcase RKADT1) (strcase RKADT2))
         (setq RKADTF ""
               RKADTR ""
         )
       )
      )
      (t
       (progn
         (setq RKADCT 0)
         (while        (/= RKADCT -1)
           (setq RKADT0 (substr RKADT2 1 (+ (strlen RKADT1) RKADCT)))
           (if
             (=        (strcase
                  (substr RKADT0
                          (- (+ 1 (strlen RKADT0)) (strlen RKADT1))
                  )
                )
                (strcase RKADT1)
             )
              (progn (setq RKADCT -1
                           RKADTF (substr RKADT0
                                          1
                                          (- (strlen RKADT0) (strlen RKADT1))
                                  )
                           RKADTR (substr RKADT2 (+ 1 (strlen RKADT0)))
                     )
                     (if (not RKADTF)
                       (setq RKADTF "")
                     )
              )
              (if (= RKADCT (- (strlen RKADT2) (strlen RKADT1)))
                (setq RKADCT -1)
                (setq RKADCT (1+ RKADCT))
              )
           )
         )
       )
      )
    )
  )
  (setq        RKADOLDERROR *ERROR*
        *ERROR*        RKADERROR
        RKAD_CMDECHO (getvar "cmdecho")
  )
  (setvar "cmdecho" 0)
  (while(not(setq RKADENT (entsel "\nSelect dimension block: "))))
  (setq RKADELI (entget (car RKADENT)))
  (setq RKADCNT 0)
  (repeat (length RKADELI)
    (setq RKADLIS (nth RKADCNT RKADELI)
          RKADCNT (+ 1 RKADCNT)
    )
    (if        (or (= (cdr RKADLIS) "AcDbRadialDimension")
            (= (cdr RKADLIS) "AcDbDiametricDimension")
            (= (cdr RKADLIS) "AcDb2LineAngularDimension")
        )
      (progn (alert
               "Radial or diametric or dimangular dimension can not be modified..."
             )
             (exit)
      )
    )
  )
  (setq RKADDIMPOST (cdr (assoc 1 RKADELI)))
  (cond
    ((= RKADDIMPOST "") (setq RKADDIMPOST "{%%C<>}"))
    ((< (strlen RKADDIMPOST) 7)
     (progn (RKADFTXT "<>" RKADDIMPOST)
            (if        (not RKADTF)
              (progn (alert "Not a true dimension...\nAborting...")
                     (exit)
              )
              (setq RKADDIMPOST (strcat RKADTF "%%C<>" RKADTR))
            )
     )
    )
    (t
     (progn
       (RKADFTXT "%%C" RKADDIMPOST)
       (if RKADTF
         (setq RKADDIMPOST (strcat RKADTF RKADTR))
         (if (> (strlen RKADDIMPOST) 11)
           (progn (RKADFTXT "\\U+2205" RKADDIMPOST)
                  (if RKADTF
                    (setq RKADDIMPOST (strcat RKADTF RKADTR))
                  )
           )
         )
       )
       (if (not RKADTF)
         (progn
           (RKADFTXT "<>" RKADDIMPOST)
           (if (not RKADTF)
             (progn (alert "Not a true dimension...\nAborting...")
                    (exit)
             )
             (setq RKADDIMPOST (strcat RKADTF "%%C<>" RKADTR))
           )
         )
       )
     )
    )
  )
  (setq
    RKADELI (subst (cons 1 RKADDIMPOST) (assoc 1 RKADELI) RKADELI)
  )
  (entmod RKADELI)
  (setvar "cmdecho" RKAD_CMDECHO)
  (setq        RKAD_CMDECHO NIL
        RKADELI        NIL
        RKADENT        NIL
        RKADDIMPOST NIL
        RKADDST        NIL
        RKADENT        NIL
        RKADLAST NIL
        RKADLST        NIL
        RKADPOST NIL
        RKADDIMMOD NIL
        RKADN NIL
        RKADOVR        NIL
        RKADFTXT NIL
        RKADCNT        NIL
        RKADT0 NIL
        RKADT1 NIL
        RKADT2 NIL
        RKADTR NIL
        RKADTF NIL
  )
  (setq        *ERROR*             RKADOLDERROR
        RKADOLDERROR NIL
  )
  (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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