明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7279|回复: 20

原创VLISP中创建文字样式和图层源程序

  [复制链接]
发表于 2006-11-8 08:45:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2006-11-12 22:06:38 编辑

(vl-load-com)

(setq p2c::acadobj (vlax-get-acad-object)
      p2c::acaddocobj (vla-get-activedocument p2c::acadobj)
      p2c::mspaceobj (vla-get-modelspace p2c::acaddocobj)
      p2c::pspaceobj (vla-get-paperspace p2c::acaddocobj)
      p2c::docobj (vla-get-documents p2c::acadobj)
      p2c::blocksobj (vla-get-blocks p2c::acaddocobj)
      p2c::layersobj (vla-get-layers p2c::acaddocobj)
      p2c::textstyles (vla-get-Textstyles p2c::acaddocobj)
      p2c::linetypes (vla-get-linetypes p2c::acaddocobj)
      p2c::menugroupsel (vla-get-menugroups p2c::acadobj)
      p2c::menugroup (vla-item p2c::menugroupsel 0)
      p2c::menuobj (vla-get-menus p2c::menugroup)
      p2c::toolbars (vla-get-toolbars p2c::menugroup)
)

;;;============
;;;= 设置图层 =
;;;============

.(defun addtranslayer (/      styleobj1   layerobj1
        layerobj2     layerobj3   layerobj4
        layerobj5     layerobj6   layerobj7
        layerobj8     layerobj9   layerobj10
       )
  (vl-catch-all-apply
    'vla-load
    (list p2c::linetypes
   "center"
   "acadiso.lin"
    )
  )
  (vl-catch-all-apply
    'vla-load
    (list p2c::linetypes
   "DASHED"
   "acadiso.lin"
    )
  )
  (setq styleobj1 (vla-add p2c::textstyles "GB"))
  (vla-put-fontfile styleobj1 "gbenor.shx")
  (vla-put-bigfontfile styleobj1 "gbcbig.shx")
  (setq layerobj1  (vla-add p2c::layersobj "KERFLEFT")
 layerobj2  (vla-add p2c::layersobj "KERFRIGHT")
 layerobj3  (vla-add p2c::layersobj "KERFOFF")
 layerobj4  (vla-add p2c::layersobj "MARKING")
 layerobj5  (vla-add p2c::layersobj "PLATE")
 layerobj6  (vla-add p2c::layersobj "ZSQ")
 layerobj7  (vla-add p2c::layersobj "CENTER")
 layerobj8  (vla-add p2c::layersobj "DASHED")
;;;
 layerobj9  (vla-add p2c::layersobj "INSIDE")
 layerobj10 (vla-add p2c::layersobj "OUTSIDE")
  )
;;;KERFLEFT
  (vla-put-color layerobj1 acred)
  (vla-put-lineweight layerobj1 aclnwt025)
  (vla-put-linetype layerobj1 "continuous")
;;;KERFRIGHT
  (vla-put-color layerobj2 acred)
  (vla-put-lineweight layerobj2 aclnwt025)
  (vla-put-linetype layerobj2 "continuous")
;;;KERFNO
  (vla-put-color layerobj3 acred)
  (vla-put-lineweight layerobj2 aclnwt025)
  (vla-put-linetype layerobj3 "continuous")
;;;MARKING
  (vla-put-color layerobj4 accyan)
  (vla-put-lineweight layerobj4 aclnwt025)
  (vla-put-linetype layerobj4 "continuous")
;;LATE
  (vla-put-color layerobj5 acblue)
  (vla-put-lineweight layerobj2 aclnwt030)
  (vla-put-linetype layerobj5 "continuous")
;;;ZSQ
  (vla-put-color layerobj6 acwhite)
  (vla-put-linetype layerobj6 "continuous")
;;;CENTER
  (vla-put-color layerobj7 acred)
  (vla-put-linetype layerobj7 "CENTER")
;;;DASHED
  (vla-put-color layerobj8 acgreen)
  (vla-put-linetype layerobj8 "DASHED")
;;;INSIDE
  (vla-put-color layerobj9 acgreen)
  (vla-put-lineweight layerobj9 aclnwt025)
  (vla-put-linetype layerobj9 "continuous")
;;;OUTSIDE
  (vla-put-color layerobj10 acred)
  (vla-put-lineweight layerobj10 aclnwt025)
  (vla-put-linetype layerobj10 "continuous")
;;;END
  (princ)
)

红色为后加代码。不加程序没法运行。

评分

参与人数 1威望 +1 收起 理由
mccad + 1 【好评】好程序

查看全部评分

 楼主| 发表于 2006-11-11 08:57:00 | 显示全部楼层
顶回来,再错过。可就没有了。我也不再顶了。再无人问迳就删除源代码。呵……
发表于 2006-11-11 20:05:00 | 显示全部楼层
看看
发表于 2006-11-11 20:15:00 | 显示全部楼层
有这么的热心的大哥,真的太幸运了!
发表于 2006-11-12 16:28:00 | 显示全部楼层

 不过运行不了!

出现下面的提示:

error: bad argument type: VLA-OBJECT nil

我看不明白:

程序中的p2c::textstyles,p2c::linetypes,p2c::layersobj等都没有定义,

程序能正常运行吗?还望指点!!!

 楼主| 发表于 2006-11-12 20:04:00 | 显示全部楼层

程序前加这些:

(vl-load-com)

(setq p2c::acadobj (vlax-get-acad-object)
      p2c::acaddocobj (vla-get-activedocument p2c::acadobj)
      p2c::mspaceobj (vla-get-modelspace p2c::acaddocobj)
      p2c::pspaceobj (vla-get-paperspace p2c::acaddocobj)
      p2c::docobj (vla-get-documents p2c::acadobj)
      p2c::blocksobj (vla-get-blocks p2c::acaddocobj)
      p2c::layersobj (vla-get-layers p2c::acaddocobj)
      p2c::textstyles (vla-get-Textstyles p2c::acaddocobj)
      p2c::linetypes (vla-get-linetypes p2c::acaddocobj)
      p2c::menugroupsel (vla-get-menugroups p2c::acadobj)
      p2c::menugroup (vla-item p2c::menugroupsel 0)
      p2c::menuobj (vla-get-menus p2c::menugroup)
      p2c::toolbars (vla-get-toolbars p2c::menugroup)
)

就好了.

发表于 2006-11-12 20:14:00 | 显示全部楼层
多谢!
 楼主| 发表于 2006-11-12 22:09:00 | 显示全部楼层
这是我编的程序中的一部分。现在这已是我所有程序都用的成熟代码。
发表于 2006-12-10 15:53:00 | 显示全部楼层

多谢版主分享

发表于 2006-12-14 19:44:00 | 显示全部楼层

谢谢,获益匪浅呢

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

本版积分规则

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

GMT+8, 2025-6-3 13:44 , Processed in 0.192520 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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