明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 780|回复: 0

[资源] 图层创建:MLay

[复制链接]
发表于 2017-10-14 15:15 | 显示全部楼层 |阅读模式
本帖最后由 dokey 于 2017-10-14 15:27 编辑

发现在CAD2010版 -LAYER有个参数"D"可以对图层进行创建说明,因此制作的这个函数,本函数也实现此功能可满足无"D"参数的CAD版创建图层说明

但此函数未实现在"新视口冻结"的功能,请教高手补充

  1. ;;图层创建
  2. ;;命令(MLay "1.图层名" "2.颜色" "3.线型" "4.线宽" "5.注释说明" "6.是否打印y/n" "7.是否冻结y/n" "8.是否当前图层y/n")

  3. (defun c:TE ()
  4.         (setvar "cmdecho" 0)
  5.         (setq clay (getvar "clayer"))
  6.         (setq osm (getvar "osmode"))

  7.         (MLay "TEST" "2" "ACAD_ISO02W100" "" "测试说明" "y" "" "Y")

  8.         (MLay "AXIS" "4" "Border" "0.25" "轴网标注" "" "y" "N")

  9.         (MLay "Wall" "7" "continuous" "0.13" "建筑墙体" "N" "n" "")

  10.         (MLay "Start" "" "" "" "" "" "n" "")

  11.         (setq p1 (getpoint "\n请选择矩形的起点:"))
  12.         (setq p2 (getcorner p1 "\n请选择矩形的对角点:"))
  13.         (command "RECTANG" p1 p2)

  14.         (command "layer" "set" clay "")
  15.         (setvar "osmode" osm)
  16.         (princ)
  17. )

  18. (defun MLay (LayName LayColor LType LWidth LDesc IsPrn IsFreze IsCur / clay osm slayname)
  19.         (VL-LOAD-COM)
  20.         (setq AcadObject (vlax-get-acad-object)
  21.          AcadDocument (vla-get-ActiveDocument Acadobject)        ;;取得激活的文件
  22.          mSpace (vla-get-ModelSpace Acaddocument)                     ;;在图纸与模型之间切换
  23.           AcadLays (vla-get-Layers AcadDocument)                         ;;取得文件图层集
  24.           AcadLineTypes (vla-get-linetypes Acaddocument)              ;;取得线型
  25.         )
  26.         ;;====== 创建图层内容 ======
  27.         ;;设定:1.图名
  28.         (setq slayname (vla-add AcadLays LayName))
  29.         ;;设定:2.颜色
  30.         (if (= "" LayColor)
  31.                 (vla-put-Color slayname 7)
  32.                 (vla-put-Color slayname (atoi LayColor))
  33.         )
  34.         ;;设定:3.线型
  35.         (if (= "" LType)
  36.                 (vla-put-linetype slayname "Continuous")
  37.                 (if (or (vl-catch-all-apply 'vla-load (list AcadLineTypes LType "acadiso.lin"))        ;;在线形文件中判断是否有指定线型并加载
  38.                                   (vl-catch-all-apply 'vla-load (list AcadLineTypes LType "acad.lin"))   ;;在线形文件中判断是否有指定线型并加载
  39.                          )
  40.                         (vla-put-linetype slayname LType)
  41.                         (vla-put-linetype slayname "Continuous")
  42.                 );;end if OR
  43.         )
  44.         ;;设定:4.线宽
  45.         (if (= "" LWidth)
  46.                 (vla-put-lineweight slayname -3)
  47.                 (vla-put-lineweight slayname (* (atof LWidth) 100))
  48.         )
  49.         ;;设定:5.线型注释说明
  50.         (vla-put-Description slayname LDesc)
  51.         ;;设定:6.是否可打印
  52.         (if (or (= "" IsPrn)(= "y" IsPrn)(= "Y" IsPrn))
  53.                 (vla-put-Plottable slayname :vlax-true)
  54.                 (vla-put-Plottable slayname :vlax-false)
  55.         )
  56.         ;;设定:7.是否冻结
  57.         (if (or (= "y" IsFreze)(= "Y" IsFreze))
  58.                 (vla-put-Freeze slayname :vlax-true)
  59.                 (vla-put-Freeze slayname :vlax-false)
  60.         )
  61.         ;;设定:8.是否当前图层
  62.         (if (or (= "y" IsCur)(= "Y" IsCur))
  63.                 (command "clayer" LayName)
  64.         )

  65. )


本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-5-2 10:52 , Processed in 0.350764 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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