明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: xhq1954425

[求助]如何实现这一功能?(献花致谢)

    [复制链接]
发表于 2007-10-17 18:37:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2007-10-17 19:03:00 | 显示全部楼层

11楼的朋友连程序都帮我写出来了,真不知如何感谢?我这水平有的地方是看不懂的,我要送花两朵致谢,我运行了一下11楼朋友的程序没运行了?提示为:

命令: tst ; 错误: no function definition: VLAX-GET-ACAD-OBJECT

发表于 2007-10-17 21:19:00 | 显示全部楼层

(defun c:tst ()
   (VL-LOAD-COM)      ; add this line
   (setq cad (vlax-get-acad-object)
 .....
 
 Ref link: http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=3197964

发表于 2007-10-17 22:08:00 | 显示全部楼层
我把11楼的程序做些修改
  1. (defun c:tst ()
  2.   (setq cad (vlax-get-acad-object)
  3. Ad  (vla-get-ActiveDocument cad)
  4. mS  (vla-get-ModelSpace Ad)
  5.   )
  6.   (setq Ls (vla-get-Layers Ad))
  7.   (setq cnt (vla-get-count ls))
  8.   (setq n 0 m 0);计算off层个数m
  9.   (repeat cnt
  10.     (if (= (vla-get-layeron (vla-item ls n)) :vlax-false)
  11.       (progn
  12. (setq m (1+ m))
  13. (setq n (1+ n))
  14.       )
  15.       (setq n (1+ n))
  16.     )
  17.   )
  18.   (if (= m 0)(progn (alert "所有图层都已打开,程序退出!")(exit)));强制程序退出
  19.   (if (< (getvar "useri1") cnt)
  20.     (progn
  21.       ;;如图层为开,继续判断下一图层,直到找到关闭的图层
  22.       (while (= (vla-get-layeron (vla-item ls (getvar "useri1"))):vlax-true)
  23. (setvar "useri1" (1+ (getvar "useri1")))
  24.       )
  25.       ;;当图层为关闭时,则打开图层
  26.       (if (= (vla-get-layeron (vla-item ls (getvar "useri1"))):vlax-false)
  27. (vla-put-layeron (vla-item ls (getvar "useri1")) :vlax-true)
  28. (setvar "useri1" (1+ (getvar "useri1")))
  29.       )
  30.     )
  31.   )
  32.   (if (= (getvar "useri1") cnt)
  33.     (progn
  34.       (alert "所有图层已打开!")
  35.     )
  36.   )
  37.   (princ)
  38. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-20 01:54 , Processed in 0.175166 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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