明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 半听可乐

小程序求助:图元移至指定图层并将指定图层设为当前

  [复制链接]
发表于 2012-8-29 21:16:21 | 显示全部楼层
本帖最后由 669423907 于 2012-8-29 21:19 编辑

;; 改图元图层
(defun c:tt ()
  (gtc "DIM")
  (princ)
)
(defun gtc (la / ss k)
  (if (setq ss (ssget))
    (progn
      (setq k -1)
      (repeat (sslength ss)
        (vla-put-layer
          (vlax-ename->vla-object (ssname ss (setq k (1+ k))))
          "DIM"
        )
      )
      (setvar "clayer" "DIM");改院长这里
    )
  )
)


都说了,加   
加(command "clayer""dim" )

点评

改得太好了!  发表于 2012-8-29 21:31
回复

使用道具 举报

发表于 2012-8-29 21:24:29 | 显示全部楼层
...测试还是改不了当前层?...
建议楼主附上调试用样图指出所需的效果

点评

已经更新,请查阅  发表于 2012-8-29 21:36
回复

使用道具 举报

 楼主| 发表于 2012-8-29 21:25:47 | 显示全部楼层
本帖最后由 半听可乐 于 2012-8-29 22:07 编辑
669423907 发表于 2012-8-29 21:16
;; 改图元图层
(defun c:tt ()
  (gtc "DIM")


不好意思,加哪里?还有就是我类似的操作很多,程序是不是要改很多地方?
(vl-load-com)
;冷水
(defun c:sw()(gtc "SP_W"))
(defun c:sj()(gtc "SJ_J"))
(defun c:sjs()(gtc "SJ_JS"))
(defun c:sj1()(gtc "SJ_J1"))
(defun c:sj2()(gtc "SJ_J2"))
(defun c:sj3()(gtc "SJ_J3"))
(defun c:sj4()(gtc "SJ_J4"))
(defun c:sj5()(gtc "SJ_J5"))
(defun c:sjl()(gtc "SJSTK"))
(defun c:sjb()(gtc "SJBLK"))
(defun c:sj5()(gtc "SJ_J5"))
;此处省略若干行类似上面的语句

(defun gtc (tcm /  ss k ent obj);改图层子程序
  (if (setq ss (ssget))
   (progn
    (setq k 0)
    (repeat (sslength ss)
     (setq ent (ssname ss k))
     (setq obj (vlax-ename->vla-object ent))
     (vla-put-layer obj tcm)
     (setq k (1+ k))
    )
  ))
(princ)
)

回复

使用道具 举报

发表于 2012-8-29 21:51:15 | 显示全部楼层
真乃风马牛不相及也

选择这条线输入sw,然后这条线就从图层“SP_HOLE”移至图层“SP_W”


命令 sw 对映   移至图层“SP_W”
那么其他的又怎么个对映法

况且也不见有 sw 的命令,楼主如此惜墨,无怪乎没人对得上号...

点评

一楼再次更新。心急了,马虎了,有劳再看  发表于 2012-8-29 22:06
回复

使用道具 举报

发表于 2012-8-29 22:34:45 | 显示全部楼层
本帖最后由 namezg 于 2012-8-30 21:55 编辑

;;;-------------------------------------------------------------------------------------------------------------------
;;;★改图元图层
;;;  By print1985 明经社区
;;;-------------------------------------------------------------------------------------------------------------------
(vl-load-com)
;冷水
(defun c:sw()(gtc "SP_W"))
(defun c:sj()(gtc "SJ_J"))
(defun c:sjs()(gtc "SJ_JS"))
(defun c:sj1()(gtc "SJ_J1"))
(defun c:sj2()(gtc "SJ_J2"))
(defun c:sj3()(gtc "SJ_J3"))
(defun c:sj4()(gtc "SJ_J4"))
(defun c:sj5()(gtc "SJ_J5"))
(defun c:sjl()(gtc "SJSTK"))
(defun c:sjb()(gtc "SJBLK"))
(defun c:sj5()(gtc "SJ_J5"))

;;;此处省略若干行类似上面的语句!!!

(defun gtc (tcm /  ss k ent obj);改图层子程序
  (if (or
                (setq ss (ssget "I"))
                (setq ss (ssget))
        )
   (progn
    (setq k 0)
    (repeat (sslength ss)
     (setq ent (ssname ss k))
     (setq obj (vlax-ename->vla-object ent))
     (vla-put-layer obj tcm)
     (setq k (1+ k))
    )
(setvar "clayer" tcm)
  ))
(princ)
)

点评

还是老问题啊,当前图层没换过来  发表于 2012-8-29 22:39

评分

参与人数 1明经币 +1 收起 理由
半听可乐 + 1 谢谢你的关注!

查看全部评分

回复

使用道具 举报

发表于 2012-8-29 22:38:59 | 显示全部楼层
...想要的效果...画一条线...

楼主此例没有说服力...

点评

晕了,这还不行啊。画条线意思是弄个图元出来好做实验啊,再理一下思路吧: 1.选择图元,运行程序,输入sw 2.图元所在图层变为sp_w,同时当前图层也变为sp_w 3.随便画个东西,这个东西应该是出现在图层sp_w上  发表于 2012-8-29 22:44
回复

使用道具 举报

发表于 2012-8-29 22:57:52 | 显示全部楼层
修订 院长的代码

  1. (defun gtc (la / ss k)
  2.   (if (setq ss (ssget))
  3.     (progn
  4.       (setq k -1)
  5.       (repeat (sslength ss)
  6.         (vla-put-layer
  7.           (vlax-ename->vla-object (ssname ss (setq k (1+ k))))
  8.           la
  9.         )
  10.       )
  11.       (setvar "clayer" la)
  12.     )
  13.   )
  14. )
但 选择图元 得在 运行程序 之后...
回复

使用道具 举报

发表于 2012-8-30 08:02:31 | 显示全部楼层

  1. ;; 改图元图层 伪源码方式
  2. (defun c:tt ()
  3.   (gtc "DIM")
  4.   (princ)
  5. )
  6. (defun gtc (la / ss)
  7.   (xyp-MkLa la)
  8.   (if (setq ss (ssget))
  9.     (xyp-SubUpd ss 8 la)
  10.   )
  11. )

回复

使用道具 举报

发表于 2012-8-30 11:43:35 | 显示全部楼层
Andyhon 发表于 2012-8-29 22:38
...想要的效果...画一条线...

楼主此例没有说服力...

我理解你的意思,因为我也要过类似的程序。再说我也是菜鸟。菜鸟比较容易理解菜鸟的意思。现在还没有如何程序能做到如此智能化,你还是得一条条的改。晚上给你个简单一点的。(别人写的)

点评

多谢多谢!  发表于 2012-8-30 13:32
回复

使用道具 举报

发表于 2012-8-30 11:46:03 | 显示全部楼层
本帖最后由 669423907 于 2012-8-30 11:46 编辑
Andyhon 发表于 2012-8-29 22:38
...想要的效果...画一条线...

楼主此例没有说服力...


Andyhon 大师,实在不好意思,我点错了。别误会哈。我是和可乐说的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-7 21:21 , Processed in 0.186072 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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