;仿CCD配置自动加载lsp文件

; 以下为用户设置，用户可自行修改
(setq
    mai_user_layers_setting
	(list
		    ; 图层                   颜色     线型           线宽      打印
		(list "0"                    7     "Continuous"    "默认值"    "是")
		(list "AR-DIM"               50    "Continuous"    "默认值"    "是")         ;建墙尺寸图
		(list "AR-TEXT"              50    "Continuous"    "默认值"    "是")         ;建墙文字
		(list "AXIS"                 150   "Continuous"    "默认值"    "是")         ;轴线
		(list "AXIS-TXT"             50    "Continuous"    "默认值"    "是")         ;建筑标文字,轴线号文字
		(list "AXIS-DIM"             44    "Continuous"    "默认值"    "是")         ;建筑标注
		(list "COL-FILL"             253   "Continuous"    "默认值"    "是")         ;楼板填色（全黑）
		(list "COLUMN"               200   "Continuous"    "默认值"    "是")         ;柱子
		(list "DOOR"                 60    "Continuous"    "默认值"    "是")         ;门层
		(list "DOOR-FRAME"           30    "Continuous"    "默认值"    "是")         ;门套层
		(list "DOOR-FLOOR"           136   "Continuous"    "默认值"    "是")         ;门槛层
		(list "DOOR-HANDLE"          8     "Continuous"    "默认值"    "是")         ;门辅助线
		(list "DOTE"                 136   "acad,M-CENTER" "默认值"    "是")         ;轴线
		(list "DS-GLASS"             12    "Continuous"    "默认值"    "是")         ;玻璃隔断
		(list "DS-HIGH_CABINET"      30    "Continuous"    "默认值"    "是")         ;高柜
		(list "DS-HIGH-CABINET"      250   "Continuous"    "默认值"    "是")         ;高柜辅助浅线
		(list "DS-SHORT_CABINET"     40    "Continuous"    "默认值"    "是")         ;矮柜
		(list "DS-SHORT-CABINET"     250   "Continuous"    "默认值"    "是")         ;矮柜辅助浅线
		(list "DS-FINISH"            20    "Continuous"    "默认值"    "是")         ;完成面，装饰面
		(list "EL-BOUNDARY"          100   "Continuous"    "默认值"    "是")          ;立面边界
		(list "EL-BHATCH-136"        136   "Continuous"    "默认值"    "是")          ;立面上的斜线
		(list "EL-BHATCH-250"        250   "Continuous"    "默认值"    "是")          ;立面灰色材料填充类
		(list "EL-DIM"               50    "Continuous"    "默认值"    "是")          ;立面尺寸
		(list "EL-FUR"               1     "Continuous"    "默认值"    "是")          ;立面家具
		(list "EL-TEXT"              50    "Continuous"    "默认值"    "是")          ;立面文字
		(list "EL-LIGHT"             1     "Continuous"    "默认值"    "是")          ;立面灯
		(list "EL-18NORM"            30    "Continuous"    "默认值"    "是")          ;不知道?????
		(list "FC-BHATCH-136"        136   "Continuous"    "默认值"    "是")          ;地坪边缘粗线
		(list "FC-BHATCH-144"        144   "Continuous"    "默认值"    "是")          ;地坪填充类浅线
		(list "FC-FLOOR-136"         136   "Continuous"    "默认值"    "是")          ;填充稀点图案时用粗（136）
		(list "FC-FLOOR-250"         250   "Continuous"    "默认值"    "是")          ;填充密点图案时用粗（138或250）,（250）淡显60%)
		(list "FC-DIM"               50    "Continuous"    "默认值"    "是")          ;地坪标注
		(list "FC-TEXT"              50    "Continuous"    "默认值"    "是")          ;地坪文字及尺寸描述
		(list "FF-ART"               120   "Continuous"    "默认值"    "是")          ;平面装饰品
		(list "FF-DIM"               44    "Continuous"    "默认值"    "是")          ;平面标注
		(list "FF-FIXT"              31    "Continuous"    "默认值"    "是")          ;固定设备、家具，卫浴等
		(list "FF-FIXT-2"            35    "Continuous"    "默认值"    "是")          ;固定设备、家具，卫浴等辅助浅线
		(list "FF-FIXT-HATCH"        8     "Continuous"    "默认值"    "是")          ;固定设备、家具，卫浴等填充
		(list "FF-FURN"              51    "Continuous"    "默认值"    "是")          ;可移动家具
		(list "FF-FURN-2"            58    "Continuous"    "默认值"    "是")          ;可移动家具辅助浅线
		(list "FF-FURN-HATCH"        8     "Continuous"    "默认值"    "是")          ;可移动家具填充
		(list "FF-PLANTS"            86    "Continuous"    "默认值"    "是")          ;平面图中的植物
		(list "FF-TEXT"              50    "Continuous"    "默认值"    "是")          ;平面文字
		(list "FF-KITCHEN"           251   "Continuous"    "默认值"    "是")          ;厨房设备
		(list "BS-FURN"              250   "Continuous"    "默认值"    "否")          ;灰显家具
		(list "RC-AIR"               14    "Continuous"    "默认值"    "是")          ;天花空调
		(list "RC-BHATCH"            250   "Continuous"    "默认值"    "是")          ;天花填充
		(list "RC-DIM"               50    "Continuous"    "默认值"    "是")          ;天花尺寸
		(list "RC-FIN"               30    "Continuous"    "默认值"    "是")          ;天花轮廓线
		(list "RC-FIN-2"             8     "Continuous"    "默认值"    "是")          ;天花轮廓线
		(list "RC-LIGHT"             14    "Continuous"    "默认值"    "是")          ;天花灯具
		(list "RC-LINE"              7     "Continuous"    "默认值"    "是")          ;天花造型线
		(list "RC-TEXT"              50    "Continuous"    "默认值"    "是")          ;天花文字
		(list "STAIR"                30    "Continuous"    "默认值"    "是")          ;楼梯、电梯
		(list "STEAR"                14    "Continuous"    "默认值"    "是")          ;造型楼梯
		(list "WALL"                 160   "Continuous"    "默认值"    "是")          ;墙线
		(list "WALL1"                15    "Continuous"    "默认值"    "是")          ;隔墙1
		(list "WALL2"                20    "Continuous"    "默认值"    "是")          ;隔墙2
		(list "WALL-D"               12    "Continuous"    "默认值"    "是")          ;次轴线
		(list "WALL-BHATCH"          136   "Continuous"    "默认值"    "是")          ;1、墙体填充2、非装修区域斜线填充
		(list "WINDOW"               12    "Continuous"    "默认值"    "是")          ;窗户，幕墙
		(list "_MINI_RECYCLE"        1     "Continuous"    "默认值"    "否")         ;回收站图层，存放多余实体，不打印
	)
)

(setq
    mai_user_style_setting
	(list
		;(list 字形名称     字库名称     文字高度  高宽比  倾斜角度  是否反向  是否颠倒  是否垂直)
		(list  "CCD-HB"    "hbsmall.shx"   0        0.8       0        "n"       "n"       "n")
		(list  "CCD-DIM"   "archs.shx"     0        0.8       0        "n"       "n"       "n")
		(list  "AR"        "arial"         0        1         0        "n"       "n"       "n")
		(list  "ST"        "宋体"          0        1         0        "n"       "n"       "n")
		(list  "HZ"      "h1.shx,hzdx.shx" 0        0.8       0        "n"       "n"       "n")
    )
)

;下面四个变量不能设置
        ; "dimscale" 为标注变量（指定尺寸、距离或偏移量）设置全局比例因子。同时还影响 LEADER 命令创建的引线对象的比例。
		; "dimdec"   设置标注主单位显示的小数位位数。精度基于选定的单位或角度格式
		; "dimlfac"  设置线性标注测量值的比例因子
        ; "dimassoc" 控制标注对象的关联性


(setq
    mai_user_dim_setting
	(list
		"dimtol" 0       ;1 将显示一个最大值和一个最小值，一个在上，另一个在下将公差附在标注文字之后。将 DIMTOL 设置为“开”，将关闭 DIMLIM 系统变量。
		"dimlim" 0       ;将极限尺寸生成为默认文字
		"dimtih" 0       ;控制所有标注类型（坐标标注除外）的标注文字在尺寸界线内的位置
		"dimtoh" 0       ;控制标注文字在尺寸界线外的位置：0或关．将文字与尺寸线对齐 1或开．水平绘制文字
		"dimse1" 0       ;控制是否禁止显示第一条尺寸界线：关．不禁止显示尺寸界线 开．禁止显示尺寸界线
		"dimse2" 0       ;控制是否禁止显示第二条尺寸界线：关．不禁止显示尺寸界线 开．禁止显示尺寸界线
		"dimalt" 0       ;控制标注中换算单位的显示：关.禁用换算单位 开.启用换算单位
		"dimtofl" 1      ;控制是否将尺寸线绘制在尺寸界线之间（即使文字放置在尺寸界线之外）
		"dimtix" 1       ;在尺寸界线之间绘制文字
		"dimsoxd" 0      ;控制是否允许尺寸线绘制到尺寸界线之外：关．不消除尺寸线 开．消除尺寸线
		"dimsd1" 0       ;控制是否禁止显示第一条尺寸线
		"dimsd2" 0       ;控制是否禁止显示第二条尺寸线
		"dimupt" 0       ;控制用户定位文字的选项。0光标仅控制尺寸线的位置 1或开 光标控制文字以及尺寸线的位置
		"dimtolj" 1      ;设置公差值相对名词性标注文字的垂直对正方式：0．下 1．中间 2．上
		"dimdsep" 46     ;迷你为"."指定一个单字符作为创建十进制标注时使用的小数分隔符
		"dimaltd" 2      ;控制换算单位中小数位的位数
		"dimzin" 0       ;控制是否对主单位值作消零处理
		"dimjust" 0      ;控制标注文字的水平位置
		"dimtzin" 0      ;控制是否对公差值作消零处理
		"dimaltz" 0      ;控制是否对换算单位标注值作消零处理。DIMALTZ 值为 0 - 3 时只影响英尺-英寸标注
		"dimalttz" 0     ;控制是否对公差值作消零处理
		"dimtad" 1       ;控制文字相对尺寸线的垂直位置
		"dimaunit" 0     ;设置角度标注的单位格式：0．十进制度数 1．度/分/秒 2．百分度 3．弧度
		"dimtdec" 0      ;为标注主单位的公差值设置显示的小数位位数。
		"dimaltu" 2      ;为所有标注样式族（角度标注除外）换算单位设置单位格式
		"dimalttd" 2     ;设置标注换算单位公差值小数位的位数
		"dimadec" 0      ;1.使用此设置的小数位数绘制角度标注；0-8 使用此设置的小数位数绘制角度标注。
		"dimazin" 0      ;对角度标注作消零处理
		; "dimfit" 5       ;旧式，除用于保留脚本的完整性外没有任何影响。DIMFIT 被 DIMATFIT 系统变量和 DIMTMOVE 系统变量代替
		"dimatfit" 3     ;当尺寸界线的空间不足以同时放下标注文字和箭头时，本系统变量将确定这两者的排列方式
		"dimtmove" 2     ;设置标注文字的移动规则
		; "dimunit" 2    ;为标注主单位的公差值设置显示的小数位位数 旧式，除用于保留脚本的完整性外没有任何影响。DIMUNIT 被 DIMLUNIT 和 DIMFRAC 系统变量代替
		"dimlunit" 2     ;为所有标注类型（除角度标注外）设置单位制
		"dimfrac" 0      ;在 DIMLUNIT 系统变量设置为：4（建筑）或 5（分数）时设置分数格式，0．水平 1．斜 2．不堆叠
		"dimtxsty" "ccd-dim"    ;指定标注的文字样式
		"dimasz" 0.7     ;控制尺寸线、引线箭头的大小。并控制钩线的大小,迷你为1.4 
		"dimexo" 2       ;迷你为3,指定尺寸界线偏移原点的距离
		"dimdli" 0       ;控制基线标注中尺寸线的间距
		"dimexe" 2       ;指定尺寸界线超出尺寸线的距离
		"dimrnd" 0.005   ;迷你为0将所有标注距离舍入到指定值
		"dimdle" 0       ;当使用小斜线代替箭头进行标注时，设置尺寸线超出尺寸界线的距离。迷你为2
		"dimtp" 0        ;在DIMTOL 或 DIMLIM 系统变量设置为开的情况下，为标注文字设置最大（上）偏差。DIMTP 接受带符号的值。
		"dimtm" 0        ;在 DIMTOL 系统变量或 DIMLIM 系统变量为开的情况下，为标注文字设置最小（下）偏差
		"dimtxt" 2.5     ;字高，迷你为可设置，缺省为3 指定标注文字的高度，除非当前文字样式具有固定的高度
		"dimcen" 0.125   ;控制由 DIMCENTER、 DIMDIAMETER 和 DIMRADIUS 命令绘制的圆或圆弧的圆心标记和中心线图形,迷你为2
		"dimtsz" 0       ;指定线性标注、半径标注以及直径标注中替代箭头的小斜线尺寸。
		"dimaltf" 25.4   ;控制换算单位乘数
		"dimtvp" 1       ;迷你为0,控制尺寸线上方或下方标注文字的垂直位置。当 DIMTAD 设置为关时，AutoCAD 将使用 DIMTVP 的值。
		"dimtfac" 1      ;按照 DIMTXT 系统变量的设置，相对于标注文字高度给分数值和公差值的文字高度指定比例因子
		"dimgap" 0.6     ;迷你为1,当尺寸线分成段以在两段之间放置标注文字时，设置标注文字周围的距离
		"dimaltrnd" 0    ;舍入换算标注单位
		"dimpost" ""     ;指定标注测量值的文字前缀或后缀（或者两者都指定）。
		"dimapost" ""    ;为所有标注类型（角度标注除外）的换算标注测量值指定文字前缀或后缀（或两者都指定）
		"dimblk" "ccd_dimension_tick"   ;设置尺寸线或引线末端显示的箭头块
		"dimsah" 0       ;迷你为1,控制尺寸线箭头块的显示
		"dimblk1" ""     ;当 DIMSAH 系统变量打开时，设置尺寸线第一个端点的箭头迷你1为 "_ARCHTICK"，0为 "_OBLIQUE"，其他为"_DOT"
		"dimblk2" ""     ;当 DIMSAH 系统变量打开时，设置尺寸线第二个端点的箭头迷你1为 "_ARCHTICK"，0为 "_OBLIQUE"，其他为"_DOT"
		"dimldrblk" "ccd_leader_arrow"   ;迷你为"_DOT" 指定引线箭头的类型。要返回默认值（实心闭合箭头显示），请输入单个句点 (.)
		"dimclrd" 256    ;为尺寸线、箭头和标注引线指定颜色。同时控制由 LEADER 命令创建的引线颜色
		"dimclre" 256    ;为尺寸界线指定颜色
		"dimclrt" 50     ;颜色 为标注文字指定颜色,迷你可设置
		"dimlwd" -2      ;指定尺寸线的线宽。其值是标准线宽。-3．BYLAYER -2．BYBLOCK 整数代表百分之一毫米的倍数
		"dimlwe" -2      ;指定尺寸界线的线宽。其值是标准线宽。-3 BYLAYER -2 BYBLOCK 整数代表百分之一毫米的倍数
		"dimbgflag" 0
		"dimbgmask" 50
		"dimlt" "byblock"
		"dimex1lt" "byblock"
		"dimex2lt" "byblock"
		"dimfixed" 0
		"dimfixlen" 1
		"dimsymplace" 0
	)
)

;格式化数据，别修改
(setq mai_user_dim_setting (mapcar '(lambda(x)(cons (strcase (car x))(cdr x))) (mai_list_divide mai_user_dim_setting 2))
      mai_user_style_setting (mapcar '(lambda(x)(cons (strcase (car x))(cdr x))) mai_user_style_setting)
)

;插入标注设置的块名
(vl-catch-all-apply
   '(lambda( / x oldecho )
       (setq oldecho (getvar "cmdecho"))
       (setvar "cmdecho" 0)
       (foreach x (list "DIMBLK" "DIMBLK1" "DIMBLK2" "DIMLDRBLK")
		   (and (setq x (cadr (assoc x mai_user_dim_setting)))
                (= 'str (type x))
                (/= (setq x (mai_str_killspace x T)) "")
				(/= "_" (substr x 1 1))
				(not (tblsearch "block" x))
				(findfile (strcat x ".dwg"))
				(progn (command "insert" x ^c) (mai_com_enter))
		   )
       )
       (setvar "cmdecho" oldecho)
    )
	nil
)
