找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 779|回复: 4

[编程申请]:大家好,谁能帮个忙!

[复制链接]
发表于 2005-10-29 11:53:24 | 显示全部楼层 |阅读模式

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

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

×
我在网上下了个可以改自动改色的程序,但这样对图层控制不好。我把原程序发过来看一下。
声明一下这是网上的。谢谢原作者!
____________________________________________________

;;把物体改为红色--------------------------------------------------- 1
(defun c:cc (/ ent)(princ"把物体多重拷贝.")
(setq ent (ssget))
(command"copy"ent"""m""")
)
;自动删除--------------------------------------------------------- AE
(defun c:ae()
  (command "erase" "single" "auto")
)

;改成红色--------------------------------------------------------- 1
(defun c:1(/ ent)
  (setq ent (ssget))
  (command "change" ent "" "p" "c" "1" "")
)
;改成黄色--------------------------------------------------------- 2
(defun c:2(/ ent)
  (setq ent (ssget))
  (command "change" ent "" "p" "c" "2" "")
)
;改成绿色--------------------------------------------------------- 3
(defun c:3(/ ent)
  (setq ent (ssget))
  (command "change" ent "" "p" "c" "3" "")
)
;改成青色--------------------------------------------------------- 4
(defun c:4(/ ent)
  (setq ent (ssget))
  (command "change" ent "" "p" "c" "4" "")
)
;改成蓝色--------------------------------------------------------- 5
(defun c:5(/ ent)
  (setq ent (ssget))
  (command "change" ent "" "p" "c" "5" "")
)
;改成紫色--------------------------------------------------------- 6
(defun c:6(/ ent)
  (setq ent (ssget))
  (command "change" ent "" "p" "c" "6" "")
)
;改成白色--------------------------------------------------------- 7
(defun c:7(/ ent)
  (setq ent (ssget))
  (command "change" ent "" "p" "c" "7" "")
)
;改成灰色--------------------------------------------------------- 7
(defun c:8(/ ent)
  (setq ent (ssget))
  (command "change" ent "" "p" "c" "8" "")
)
;改变颜色----------------------------------------------------cb
(defun c:cb(/ ent)
   (setq ent(ssget))
   (command "change" ent "" "p" "c" pause "")
)
;改成虚线------------------------------------------------------- CHH
(defun c:chh(/ ent)
  (setq ent (ssget))
  (command "change" ent "" "p" "lt" "hidden2" "")
  (command "ltscale")
)
;改成点划线----------------------------------------------------- CHD
(defun c:chd(/ ent)
  (setq ent (ssget))
  (command "change" ent "" "p" "lt" "dashdot" "")
  (command "ltscale")
)

;自动备份-------------------------------------------------------- BS
(defun c:bs(/ dwgbak)
  (if (= (getvar "DWGNAME") "UNNAMED")
      (command "saveas" "~")
      (command "qsave")
  )
  (setq dwgbak (strcat "d:\\temp\\~dwg"
                       (substr (getvar "DWGNAME") (strlen (getvar "DWGPREFIX")) 8)
                       "~"
               )
  )
  (command "save" dwgbak "yes")
)


;;******************************************
;;图库管理系统源程序清单:
;;******************************************
(defun lib_p1( lib_fn /  dcl_id
               bname     explode    sname   
               ins_name  page       lastpg
               pre_key   pre_pname  old_cmd
               pname     path_name   
             )
  ;; 标准出错函数:--------------------------
  (defun b_error(s)               
    (if (/= s "Function cancelled.")
      (princ (strcat "\nError: " s))
    )
    (if olderr (setq *error* olderr))
    (princ)
  )
  ;; 标准帮助函数:--------------------------
  (defun do_help (cmd)
    (if (= (type acad_helpdlg) 'EXSUBR)
      (acad_helpdlg "acad.hlp" cmd)
      (alert "找不到求助文件!")
    )
    (princ)
  )
  ;; 获取按钮含路径图块名:------------------
  (defun get_pname(pg n / nd)
    (setq nd (+ (* (- pg 1) 15) (- n 1)) )
    strcase (nth nd path_name)
  )

  ;; 重画图形按钮:--------------------------
  (defun draw_page(pg / n i_key x y slide_n)
    (setq n 1)
    (while (<= n 15)
      (setq i_key (get_key n))
      (start_image i_key)
      (setq x (dimx_tile i_key))
      (setq y (dimy_tile i_key))
      (fill_image 0 0 x y 0)
      (if (setq slide_n (get_pname pg n))
          (progn
            (slide_image 0 0 x y slide_n)
            (mode_tile i_key 0)
          )
            (mode_tile i_key 1)
      )
      (end_image)
      (setq n (+ n 1))
    )
    (if (null (setq slide_n (get_pname pg n)))
        (setq lastpg 1)
        (setq lastpg 0)
    )
  )
  ;; 初始化对话框:---------------------------
  (defun defaults()
    ;; 图形按钮
    (draw_page page)
    ;; 图块名称,炸开
    (set_tile "bname" bname)
    (set_tile "explode" (itoa explode))
    (mode_tile "bname" explode)
    (if (= page 1) (mode_tile "prepg" 1) )
    (if (= lastpg 1) (mode_tile "nextpg" 1) )
  )
  ;; 清除出错提示栏函数:----------------------
  (defun rs_error()
    (set_tile "error" "")
  )
  ;; 检查块名有效性函数:----------------------
  (defun check_name(name)
    (if (or
          (wcmatch name "*[] `#`@`.`?`*`~`[`,`'!%^&()+={}|`\\:;\"<>/]*")
          (= name "")
        )
      (progn
        (set_tile "error" "非法的块名.")
        (mode_tile "bname" 2)
        nil
      )
      (progn
        (rs_error)
        name
      )
    )
  )
  ;; 检查块名是否有效:-------------------------
  (defun do_bname()
    (check_name (setq bname (strcase (get_tile "bname"))))
  )
  ;; 如果<炸开>按钮打开, 则禁止<图块名称>编辑框:
  (defun do_explode()
    (rs_error)
    (mode_tile "bname" (setq explode (atoi (get_tile "explode"))))
  )
  ;; 检查块名是否存在:--------------------------
  ;;
  (defun bexist()
    (cond
      ;; 块名已存在.
      ((and (member bname table_list) (/= 1 explode))
       (if (not (new_dialog "bname_exists" dcl_id)) (exit))   
       (action_tile "yes" "(done_dialog 2)")
       (action_tile "no" "(done_dialog 0)")
       (if (= (start_dialog) 2) (done_dialog 2))        
      )
      ;; 新块.
      ((/= 1 explode)
       (if (check_name (setq bname (strcase (get_tile "bname"))))
           (done_dialog 2)
       )
      )
      ;; 炸开.
      ((= 1 explode) (done_dialog 2))
      ;; 其它.
      (t (princ "\n程序错误 bexist()"))
    )
  )
  ;; 插入图块:------------------------------------wq
  (defun entmake_block()
    (cond
      ;; 图块炸开.
      ((= 1 explode)
       (setq ins_name (strcat "*" pname ".dwg"))
      )
      ;; 图块不炸开.
      (T
       (setq ins_name (strcat bname "=" pname ".dwg"))
      )
    )
    (princ ins_name) (princ "\n")
    (command "_.insert" ins_name)
  )
  ;; 图形按钮:-------------------------------------
  (defun do_image(n / x y)
    (if (setq pname (get_pname page n))  
        (progn
          ;; 重绘上一图形按钮
          (if (/= pre_key "")
              (progn
                (start_image pre_key)
                (setq x (dimx_tile pre_key))
                (setq y (dimy_tile pre_key))
                (fill_image 0 0 x y 0)
                (slide_image 0 0 x y pre_pname)
                (end_image)
              )
          )
          ;; 重绘当前图形按钮  
          (setq sname (get_name pname))
          (setq i_key (get_key n))
          (start_image i_key)
          (setq x (dimx_tile i_key))
          (setq y (dimy_tile i_key))
          (fill_image 0 0 x y 8)
          (slide_image 0 0 x y pname)
          (end_image)
          (set_tile "bname" (setq bname sname))
          (setq pre_key    i_key
                pre_pname  pname
          )
          (rs_error)
        )
    )
  )
  ;; 上页按钮:------------------------------------
  (defun do_prepg()
    (setq pre_key "")
    (setq page (- page 1))
    (draw_page page)
    (if (= page 1)
        (mode_tile "prepg" 1)
        (mode_tile "prepg" 0)
    )
    (if (= lastpg 1)
        (mode_tile "nextpg" 1)
        (mode_tile "nextpg" 0)
    )
  )
  ;; 下页按钮:------------------------------------
  (defun do_nextpg()
    (setq pre_key "")
    (setq page (+ page 1))
    (draw_page page)
    (if (= page 1)
        (mode_tile "prepg" 1)
        (mode_tile "prepg" 0)
    )
    (if (= lastpg 1)
        (mode_tile "nextpg" 1)
        (mode_tile "nextpg" 0)
    )
  )
  ;; 获取已有图块表函数:--------------------------
  (defun get_table (table_name)
    (setq table_item (tblnext table_name T))
    (setq table_list '())                          
    (while (and table_item)
      (setq just_name (cdr (assoc 2 table_item)))
      (setq table_list (cons just_name table_list))
      (setq table_item (tblnext table_name))
    )
  )
  ;; 获取图形按钮key: ----------------------------
  (defun get_key(n /)
    (strcat "image_" (itoa n))
  )
  ;; 获取字串中最后"\"的位置:---------------------
  (defun path_n(s / sl)
    (setq sl (strlen s))
    (while (and (/= "\\" (substr s sl 1)) (> sl 1) )
      (setq sl (- sl 1))
    )
    (if (<= sl 1)
        (progn
          (print "图块路径错误!")
          (exit)
        )
    )
    sl
  )
  ;; 获取字串路径名:------------------------------
  (defun get_path(s /)
    (strcase (substr s 1 (path_n s)) )
  )
  ;; 获取字串文件名:------------------------------
  (defun get_name(s /)
     (strcase (substr s (+ (path_n s) 1)) )
  )
  ;; 装入图库目录表:------------------------------
  (defun load_lib(fn / fpl l)
    (cond
      ((null (setq fpl (open fn "r")))
       (princ "\n文件 ")
       (princ fn)
       (princ " 无法打开!")
       (exit)
      )
      (t
       (while (setq l (read-line fpl))
         (setq path_name (cons l path_name))
       )
       (setq path_name (reverse path_name))
       (close fpl)
       (setq pname (nth 0 path_name))  
      )
    )
  )
  ;; 初始化参数:----------------------------------
  (defun ini_options()
    (setq bname ""
          sname ""
          explode 0
          page 1
          lastpg 0
          pre_key ""
          path_name '()
    )
    (setq lib_fn (strcat "c:\\acadwin\\lib\\" lib_fn))
    (load_lib lib_fn)
  )
  ;;***********************************************
  ;; 主程序:
  ;;***********************************************
  (if (< (setq dcl_id (load_dialog "lib_p1.dcl")) 0) (exit))
  (setq olderr *error*
        old_cmd (getvar "cmdecho")
  )
  (setq *error* b_error)
  (setvar "cmdecho" 0)

  (get_table "block")
  (ini_options)
  (if (not (new_dialog "lib_p1" dcl_id)) (exit))
  (defaults)
  (setq what_next 5)
  (while (< 2 what_next)
    (action_tile "image_1"  "(do_image 1)")
    (action_tile "image_2"  "(do_image 2)")
    (action_tile "image_3"  "(do_image 3)")
    (action_tile "image_4"  "(do_image 4)")
    (action_tile "image_5"  "(do_image 5)")
    (action_tile "image_6"  "(do_image 6)")
    (action_tile "image_7"  "(do_image 7)")
    (action_tile "image_8"  "(do_image 8)")
    (action_tile "image_9"  "(do_image 9)")
    (action_tile "image_10" "(do_image 10)")
    (action_tile "image_11" "(do_image 11)")
    (action_tile "image_12" "(do_image 12)")
    (action_tile "image_13" "(do_image 13)")
    (action_tile "image_14" "(do_image 14)")
    (action_tile "image_15" "(do_image 15)")
    (action_tile "bname"    "(do_bname)")
    (action_tile "explode"  "(do_explode)")
    (action_tile "prepg"    "(do_prepg)")
    (action_tile "nextpg"   "(do_nextpg)")
    (action_tile "accept"   "(bexist)")   
    (action_tile "cancel"   "(done_dialog 0)")
    (action_tile "help"     "(do_help \"block\")")
   
    (setq what_next (start_dialog))
    (if (= what_next 2) (entmake_block))
  )
  (unload_dialog dcl_id)
  (setq *error* oldeer)
  (setvar "cmdecho" old_cmd)
  (princ)
)
;;;;------------------------------------------------
;;;; 屏幕提示:
;;;;------------------------------------------------
(princ "\n*图库管理系统成功装入。")
(princ)
;;**************************************************



(load "window")
(load "Door")
(load "xian")
(load "mtrim")
(load "mextend")
————————————————————————————
麻烦那位高手改一下,能不能把改成改图层,比如按1就可以改成图层名为“layer1” 的图层!!!
谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-10-29 14:27:59 | 显示全部楼层
  1. [FONT=courier new]
  2. (defun c:test ()
  3.   (SETQ        mode (UKWORD 1
  4.                      "1 2 3 4 5 6 7 8 9 10 "
  5.                      "\n层 : 1/2/3/4/5/6/7/8/9/10"
  6.                      mode
  7.              )
  8.   )
  9.   (cond        ((= mode "1") (mkla "1" 1))
  10.         ((= mode "2") (mkla "2" 2))
  11.         ((= mode "3") (mkla "3" 3))
  12.         ((= mode "4") (mkla "4" 4))
  13.         ((= mode "5") (mkla "5" 5))
  14.         ((= mode "6") (mkla "6" 6))
  15.         ((= mode "7") (mkla "7" 7))
  16.         ((= mode "8") (mkla "8" 8))
  17.         ((= mode "9") (mkla "9" 9))
  18.         ((= mode "10") (mkla "10" 10))
  19.   )
  20. )
  21. (defun ukword (bit kwd msg def / inp)
  22.   (if (and def (/= def ""))
  23.     (setq msg (strcat "\n" msg "<" def ">:")
  24.           bit (* 2 (fix (/ bit 2)))
  25.     )
  26.     (setq msg (strcat "\n" msg ":"))
  27.   )
  28.   (initget bit kwd)
  29.   (setq inp (getkword msg))
  30.   (if inp
  31.     inp
  32.     def
  33.   )
  34. )
  35. (defun mkla (name color)
  36.   (If (= (Tblsearch "layer" name) nil)
  37.     (Command "layer" "m" name "c" color name "")
  38.     (Command "layer" "t" name "s" name "c" color name "")
  39.   )
  40. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-30 10:30:02 | 显示全部楼层
谢谢版主的解答,好像这个程序不支持层名为字母和中文,我试的好像就是不行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-30 10:49:30 | 显示全部楼层
最初由 +突破+ 发布
[B]谢谢版主的解答,好像这个程序不支持层名为字母和中文,我试的好像就是不行。 [/B]
  1. [FONT=courier new]
  2. (defun c:test ()
  3.   (SETQ        mode (UKWORD 1
  4.                      "1 2 3 4 5 6 7 8 9 10"
  5.                      "\n层 : 1/2/3/4/5/6/7/8/9/10"
  6.                      mode
  7.              )
  8.   )
  9.   (cond        ((= mode "1") (mkla "LAYER1" 1))
  10.         ((= mode "2") (mkla "LAYER2" 2))
  11.         ((= mode "3") (mkla "LAYER3" 3))
  12.         ((= mode "4") (mkla "LAYER4" 4))
  13.         ((= mode "5") (mkla "LAYER5" 5))
  14.         ((= mode "6") (mkla "LAYER6" 6))
  15.         ((= mode "7") (mkla "LAYER7" 7))
  16.         ((= mode "8") (mkla "LAYER8" 8))
  17.         ((= mode "9") (mkla "LAYER9" 9))
  18.         ((= mode "10") (mkla "LAYER10" 10))
  19.   )
  20. )
  21. (defun ukword (bit kwd msg def / inp)
  22.   (if (and def (/= def ""))
  23.     (setq msg (strcat "\n" msg "<" def ">:")
  24.           bit (* 2 (fix (/ bit 2)))
  25.     )
  26.     (setq msg (strcat "\n" msg ":"))
  27.   )
  28.   (initget bit kwd)
  29.   (setq inp (getkword msg))
  30.   (if inp
  31.     inp
  32.     def
  33.   )
  34. )
  35. (defun mkla (name color)
  36.   (If (= (Tblsearch "layer" name) nil)
  37.     (Command "layer" "m" name "c" color name "")
  38.     (Command "layer" "t" name "s" name "c" color name "")
  39.   )
  40. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-1 10:47:56 | 显示全部楼层
;;;命令为1,11,2,22 ......7,77
;;;11,22.....77为建立图层
;;;;1,2,....7为改变图层,当选择对象时:改变对象图层;当不选择对象时:改变当前图层

(setvar "cmdecho" 0 )

(defun c:thickline()
  (if (= (tblobjname "LAYER" "粗实线") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "continuous")        ;线型
                 '(62 . 7)                ;颜色
                 '(70 . 0)                ;图层状态
                 (CONS 2  "粗实线")        ;图层名
           )
      )
    )
  )
)
(defun thickline()
  (if (= (tblobjname "LAYER" "粗实线") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "continuous")        ;线型
                 '(62 . 7)                ;颜色
                 '(70 . 0)                ;图层状态
                (CONS 2  "粗实线")        ;图层名
               )
      )
    )
  )
)
(defun c:thinline()
  (if (= (tblobjname "LAYER" "细实线") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "continuous")        ;线型
                 '(62 . 4)                ;颜色
                 '(70 . 0)                ;图层状态
                (CONS 2  "细实线")        ;图层名
               )
      )
    )
  )
)
(defun thinline()
  (if (= (tblobjname "LAYER" "细实线") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "continuous")        ;线型
                 '(62 . 4)                ;颜色
                 '(70 . 0)                ;图层状态
                (CONS 2  "细实线")        ;图层名
               )
      )
    )
  )
)
(defun c:centerline()
  (cxlt)
  (if (= (tblobjname "LAYER" "中心线") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "center")                 ;线型
                 '(62 . 2)                         ;颜色
                 '(70 . 0)                         ;图层状态
                       (CONS 2  "中心线")                        ;图层名
               )
      )
    )
  )
)
(defun centerline()
  (cxlt)
  (if (= (tblobjname "LAYER" "中心线") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "center")        ;线型
                 '(62 . 2)                ;颜色
                 '(70 . 0)                ;图层状态
                       (CONS 2  "中心线")        ;图层名
               )
      )
    )
  )
)
(defun c:dashed()
  (cxlt)
  (if (= (tblobjname "LAYER" "虚线") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "dashed2")        ;线型
                 '(62 . 8)                ;颜色
                 '(70 . 0)                ;图层状态
                       (CONS 2  "虚线")        ;图层名
               )
      )
    )
  )
)
(defun dashed()
  (cxlt)
  (if (= (tblobjname "LAYER" "虚线") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "dashed2")        ;线型
                 '(62 . 8)                ;颜色
                 '(70 . 0)                ;图层状态
                       (CONS 2  "虚线")        ;图层名
               )
      )
    )
  )
)

(defun c:dimline()
  (if (= (tblobjname "LAYER" "标注线") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "continuous")        ;线型
                 '(62 . 3)                ;颜色
                 '(70 . 0)                ;图层状态
                       (CONS 2  "标注线")        ;图层名
               )
      )
    )
  )
)
(defun dimline()
  (if (= (tblobjname "LAYER" "标注线") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "continuous")        ;线型
                 '(62 . 3)                ;颜色
                 '(70 . 0)                ;图层状态
                       (CONS 2  "标注线")        ;图层名
               )
      )
    )
  )
)
(defun c:txtlayer()
  (if (= (tblobjname "LAYER" "文本") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "continuous")        ;线型
                 '(62 . 7)                ;颜色
                 '(70 . 0)                ;图层状态
                       (CONS 2  "文本")        ;图层名
               )
      )
    )
  )
)

(defun txtlayer()
  (if (= (tblobjname "LAYER" "文本") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "continuous")        ;线型
                 '(62 . 7)                ;颜色
                 '(70 . 0)                ;图层状态
                       (CONS 2  "文本")        ;图层名
               )
      )
    )
  )
)
(defun c:otherlayer()
  (if (= (tblobjname "LAYER" "其它") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "continuous")        ;线型
                 '(62 . 6)                ;颜色
                 '(70 . 0)                ;图层状态
                       (CONS 2  "其它")        ;图层名
               )
      )
    )
  )
)
(defun otherlayer()
  (if (= (tblobjname "LAYER" "其它") nil)
    (progn
      (entmake (list
                 '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                 '(6 . "continuous")        ;线型
                 '(62 . 6)                ;颜色
                 '(70 . 0)                ;图层状态
                       (CONS 2  "其它")        ;图层名
               )
      )
    )
  )
)
(defun c:1()
(setvar "cmdecho" 0 )
  (thickline)
  (if (setq ent (ssget))
     (command "change" ent "" "p" "la" "粗实线" "")
         (setvar "clayer"  "粗实线")
   )
    (setvar "cmdecho" 0 )
  (print)
  )
(defun c:11()
   (thickline)
    (setvar "clayer"  "粗实线")
     (print)
  )



(defun c:2()
(setvar "cmdecho" 0 )
  (thinline)
(if (setq ent (ssget))
     (command "change" ent "" "p" "la" "细实线" "")
         (setvar "clayer"  "细实线")
   )
(setvar "cmdecho" 0 )
  (print)
  )
(defun c:22()
  (thinline)
(setvar "clayer"  "细实线")
  (print)
  )

(defun c:3()
(setvar "cmdecho" 0 )
  (centerline)
(if  (setq ent (ssget))
     (command "change" ent "" "p" "la" "中心线" "")
     (setvar "clayer"  "中心线")
   )
    (setvar "cmdecho" 0 )
  (print)
  )
(defun c:33()

  (centerline)
   (setvar "clayer"  "中心线")
   (setvar "cmdecho" 0 )
  (print)
  )

(defun c:4()
(setvar "cmdecho" 0 )
  (dashed)
  (if (setq ent (ssget))
     (command "change" ent "" "p" "la" "虚线" "")
       (setvar "clayer"  "虚线")
   )
    (setvar "cmdecho" 0 )
  (print)
  )
(defun c:44()

  (dashed)
  (setvar "clayer"  "虚线")

  (print)
  )

(defun c:5()

  (dimline)
  (if(setq ent (ssget))
    (command "change" ent "" "p" "la" "标注线" "")
       (setvar "clayer"  "标注线")
   )
   (print)
  )
(defun c:55()
  (dimline)
    (setvar "clayer"  "标注线")
    (print)
  )

(defun c:6()
(setvar "cmdecho" 0 )
  (txtlayer)
  
(if  (setq ent (ssget))
     (command "change" ent "" "p" "la" "文本" "")
       (setvar "clayer"  "文本")
   )
   
  (print)
  )
(defun c:66()
  (txtlayer)
   (setvar "clayer"  "文本")
     (print)
  )

(defun c:7()
(setvar "cmdecho" 0 )
  (otherlayer)
   (if(setq ent (ssget))
     (command "change" ent "" "p" "la" "其它" "")
     (setvar "clayer"  "其它")
   )
   
   
  (print)
)
(defun c:77()
(otherlayer)
(setvar "clayer"  "其它")
(print)
)

;;;;;;;;;;;;;;;;加载线
(DEFUN cxlt()
  (setvar "cmdecho"  0  )
(setq a "center" )
(command "-LINETYPE" "l" a "" "" "" )
(setq a "dashed2" )
(command "-LINETYPE" "l" a "" "" "" )
  (setvar "cmdecho"  1  )
(print)
  )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-8 21:47 , Processed in 0.471276 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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