明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 自贡黄明儒

变量设置

    [复制链接]
发表于 2012-8-8 13:22:45 | 显示全部楼层
dear sir,

reduce money
发表于 2012-8-9 08:57:55 | 显示全部楼层
沙发,支持楼主!
发表于 2012-8-11 10:10:06 | 显示全部楼层
学习~~
发表于 2012-8-11 16:53:24 | 显示全部楼层
自贡黄明儒 发表于 2012-8-8 09:08
(setvar "shortcutmenu" 11);必须有这一句,右键回车时才能出现菜单选择项
(initget "Single Horizonal V ...

又学到东西了
 楼主| 发表于 2012-8-12 12:14:13 | 显示全部楼层
版主GU_xl都加分了,说明是好程序。大家还不动手,更待何时?
发表于 2012-8-17 12:07:33 | 显示全部楼层
好东东,顶一个
发表于 2012-8-17 20:28:07 | 显示全部楼层
虽然有点贵,但是还是有点用的,修改修改还是可以更好

点评

把你修改后的发出来吗?  发表于 2012-8-17 22:32
发表于 2012-8-19 12:05:32 | 显示全部楼层
我也贴一个。改了下,只设置几个自己常用的变量或者设置
  1. (defun C:SETV (/ sysvartodcl dcltoprvar prvartosysvar sv wipeouttog1 imageframetog1 cmdechotog1 ucsicontog1 filediatog1 traynotifytog1 experttog1 visretaintog1 mirrtexttog1 explmodetog1 osnapztog1 osoptionstog1 strin fname fn dclid lin qr)
  2.   ;;取得当前系统变量值,并在对话框中设置勾选模式
  3.   (defun SysVarToDCL ()
  4.     ;;第一列
  5.     ;;命令提示回显
  6.     (if        (= (getvar "cmdecho") 0)
  7.       (set_tile "cmdechotog" "0")
  8.       (set_tile "cmdechotog" "1")
  9.     )
  10.     ;;UCS图标
  11.     (if (>= (getvar "ucsicon") 1)
  12.       (set_tile "ucsicontog" "1")
  13.       (set_tile "ucsicontog" "0")
  14.     )
  15.     ;;对话框模式
  16.     (if        (= (getvar "filedia") 1)
  17.       (set_tile "filediatog" "1")
  18.       (set_tile "filediatog" "0")
  19.     )
  20.     ;;服务通知
  21.     (if        (= (getvar "traynotify") 1)
  22.       (set_tile "traynotifytog" "1")
  23.       (set_tile "traynotifytog" "0")
  24.     )
  25.     ;;“重生成”通知
  26.     (if        (= (getvar "expert") 1)
  27.       (set_tile "experttog" "0")
  28.       (set_tile "experttog" "1")
  29.     )
  30.     ;;存储参照特性
  31.     (if        (= (getvar "visretain") 1)
  32.       (set_tile "visretaintog" "1")
  33.       (set_tile "visretaintog" "0")
  34.     )
  35.     ;;第二列
  36.     ;;保持文字方向
  37.     (if        (= (getvar "mirrtext") 0)
  38.       (set_tile "mirrtexttog" "1") ;_保持,勾选
  39.       (set_tile "mirrtexttog" "0")
  40.     )
  41.     ;;炸开不等比图块
  42.     (if        (= (getvar "explmode") 1)
  43.       (set_tile "explmodetog" "1")
  44.       (set_tile "explmodetog" "0")
  45.     )
  46.     ;;遮罩边框
  47.     (if        (or (= wipeouttog1 nil) (= wipeouttog1 "1"))
  48.       (set_tile "wipeouttog" "1")
  49.       (set_tile "wipeouttog" "0")
  50.     )
  51.     ;;图像边框
  52.     (if        (or (= imageframetog1 nil) (= imageframetog1 "1"))
  53.       (set_tile "imageframetog" "1")
  54.       (set_tile "imageframetog" "0")
  55.     )
  56.     ;;Z轴值替换
  57.     (if        (= (getvar "osnapz") 1)
  58.       (set_tile "osnapztog" "1")
  59.       (set_tile "osnapztog" "0")
  60.     )
  61.     ;;捕捉忽略填充
  62.    (if (>= (atof (getvar "acadver")) 17.1)  ;_判断cad版本是否是cad2008及其以上的
  63.     (if        (or (= (getvar "osoptions") 1) (= (getvar "osoptions") 3))
  64.       (set_tile "osoptionstog" "1")
  65.       (set_tile "osoptionstog" "0")
  66.     )
  67.      (if (= (getvar "osnaphatch") 1)
  68.       (set_tile "osoptionstog" "1")
  69.       (set_tile "osoptionstog" "0")
  70.     )
  71.   )
  72.   )
  73. ;;;获取对话框中的设置到全局变量
  74.   (defun DCLToPrVar ()
  75.     (setq cmdechotog1 (get_tile "cmdechotog"))
  76.     (setq ucsicontog1 (get_tile "ucsicontog"))
  77.     (setq filediatog1 (get_tile "filediatog"))
  78.     (setq traynotifytog1 (get_tile "traynotifytog"))
  79.     (setq experttog1 (get_tile "experttog"))
  80.     (setq visretaintog1 (get_tile "visretaintog"))
  81.     (setq mirrtexttog1 (get_tile "mirrtexttog"))
  82.     (setq explmodetog1 (get_tile "explmodetog"))
  83.     (setq wipeouttog1 (get_tile "wipeouttog"))
  84.     (setq imageframetog1 (get_tile "imageframetog"))
  85.     (setq osnapztog1 (get_tile "osnapztog"))
  86.     (setq osoptionstog1 (get_tile "osoptionstog"))
  87.   )

  88.   ;;根据全局变量设置系统变量及其他设置
  89.   (defun PrVarToSysVar ()
  90.     (if        (equal cmdechotog1 "1")
  91.       (setvar "cmdecho" 1)
  92.       (setvar "cmdecho" 0)
  93.     )
  94.     (if        (equal ucsicontog1 "1")
  95.       (setvar "ucsicon" 1)
  96.       (setvar "ucsicon" 0)
  97.     )
  98.     (if        (equal filediatog1 "1")
  99.       (setvar "filedia" 1)
  100.       (setvar "filedia" 0)
  101.     )
  102.     (if        (equal traynotifytog1 "1")
  103.       (setvar "traynotify" 1)
  104.       (setvar "traynotify" 0)
  105.     )
  106.     (if        (equal experttog1 "1")
  107.       (setvar "expert" 0)
  108.       (setvar "expert" 1)
  109.     )
  110.     (if        (equal visretaintog1 "1")
  111.       (setvar "visretain" 1)
  112.       (setvar "visretain" 0)
  113.     )
  114.     (if        (equal mirrtexttog1 "1")
  115.       (setvar "mirrtext" 0)
  116.       (setvar "mirrtext" 1)
  117.     )
  118.     (if        (equal explmodetog1 "1")
  119.       (setvar "explmode" 1)
  120.       (setvar "explmode" 0)
  121.     )
  122.     (if        (equal wipeouttog1 "1")
  123.       (vl-cmdf "WIPEOUT" "F" "ON") ;_ 关闭遮罩线
  124.       (vl-cmdf "WIPEOUT" "F" "OFF") ;_ 打开遮罩线
  125.     )
  126.     (if        (equal imageframetog1 "1")
  127.       (vl-cmdf "_imageframe" "1") ;_ 打开图像边框
  128.       (vl-cmdf "_imageframe" "0") ;_ 关闭图像边框
  129.     )
  130.     (if        (equal osnapztog1 "1")
  131.       (setvar "osnapz" 1)
  132.       (setvar "osnapz" 0)
  133.     )
  134.     (if        (equal osoptionstog1 "1")
  135.       (setvar "osoptions" 1)
  136.       (setvar "osoptions" 0)
  137.     )
  138.   )
  139.   ;;主程序
  140.   (initget "S  ") ;关键字“S”及空格
  141.   (setq strin (getstring "\n [常用变量设置S]<回车执行系统变量初始化>:"))
  142.   (if (or (equal strin "S") (equal strin "s"))
  143.     (progn
  144.       (setq fname (vl-filename-mktemp nil nil ".dcl"))
  145.       (setq fn (open fname "w"))
  146.       (write-line "MyOptionDCL : dialog { " fn)
  147.       (write-line "    label = \"常用变量设置\";" fn)
  148.       (write-line "    :row{" fn)
  149.       (write-line "    :column{" fn)
  150.       (write-line "    :toggle{label=\"命令提示回显\";key=\"cmdechotog\";}" fn)
  151.       (write-line "    :toggle{label=\"显示UCS图标\";key=\"ucsicontog\";}" fn)
  152.       (write-line "    :toggle{label=\"对话框模式\";key=\"filediatog\";}" fn)
  153.       (write-line "    :toggle{label=\"服务通知\";key=\"traynotifytog\";}    " fn)
  154.       (write-line "    :toggle{label=\"“重生成”通知\";key=\"experttog\";}" fn)
  155.       (write-line "    :toggle{label=\"存储参照特性\";key=\"visretaintog\";}" fn)
  156.       (write-line "    }" fn)
  157.       (write-line "    :column{" fn)
  158.       (write-line "    :toggle{label=\"保持文字方向\";key=\"mirrtexttog\";}" fn)
  159.       (write-line "    :toggle{label=\"炸开不等比图块\";key=\"explmodetog\";}" fn)
  160.       (write-line "    :toggle{label=\"遮罩边框\";key=\"wipeouttog\";}" fn)
  161.       (write-line "    :toggle{label=\"图像边框\";key=\"imageframetog\";}" fn)
  162.       (write-line "    :toggle{label=\"Z轴值替换\";key=\"osnapztog\";}" fn)
  163.       (write-line "    :toggle{label=\"捕捉忽略填充\";key=\"osoptionstog\";}" fn)
  164.       (write-line "    }" fn)
  165.       (write-line "    }" fn)
  166.       (write-line "    ok_only;" fn)
  167.       (write-line "}" fn)
  168.       (close fn)
  169.       (setq fn (open fname "r"))
  170.       (setq dclid (load_dialog fname))
  171.       (while
  172.         (or (eq        (substr        (setq lin
  173.                                (vl-string-right-trim
  174.                                  "\" fn)"
  175.                                  (vl-string-left-trim "(write-line \"" (read-line fn))
  176.                                )
  177.                         )
  178.                         1
  179.                         2
  180.                 )
  181.                 "//"
  182.             )
  183.             (eq (substr lin 1 (vl-string-search " " lin)) "")
  184.             (not (eq (substr lin (+ (vl-string-search " " lin) 1) 9)
  185.                      " : dialog"
  186.                  )
  187.             )
  188.         )
  189.       )
  190.       (new_dialog (substr lin 1 (vl-string-search " " lin)) dclid)
  191.       (SysVarToDCL)
  192.       (action_tile "accept" "(DCLToPrVar)(done_dialog 1)")
  193.       (if (= (start_dialog) 1)
  194.         (PrVarToSysVar)
  195.       )
  196.       (unload_dialog dclid)
  197.       (close fn)
  198.       (vl-file-delete fname)
  199.     )
  200.     (progn
  201.     (initget "Y N  ") ;_关键字“Y N”及空格
  202.     (setq QR (getstring "\n确认系统变量初始化?[是(Yes)/否(No)]<否(No)>"))
  203.     (if (or (equal QR "Y") (equal QR "y"))
  204.     (progn
  205.       (setvar "gridmode" 0)
  206.       (C:CSH) ;_系统变量初始化
  207.     )
  208.     )
  209.   ))
  210.   (princ)
  211. )

评分

参与人数 1明经币 +1 收起 理由
自贡黄明儒 + 1 很给力!

查看全部评分

发表于 2012-8-23 18:06:51 | 显示全部楼层
发表于 2012-8-23 20:59:48 | 显示全部楼层
呵呵,厉害楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-11 12:48 , Processed in 0.206923 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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