明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2805|回复: 20

朋友们请进,求助 标注归层

  [复制链接]
发表于 2012-10-13 12:30:20 | 显示全部楼层 |阅读模式
请教,LSP,效果:
输入命令后,所有标注改到"标注"层(如图纸中无"标注"层,则创建“标注"层)
PS:“标注"层名为固定值,无需输入确认
发表于 2020-8-11 08:09:22 | 显示全部楼层
感谢明经,感谢原作者,感谢原作者,谢谢,我只是转了
;;;这样在没有DIM图层的情况下自动加一个
;;;提取所有标注,最好顺便自动将过滤出来的标注转换到dim层
(defun c:ttd(/ ss)
  (command "layer" "M" "DIM" "C" "3" "" "LT" "CONTINUOUS" "" "");设置一个标注图层
  (princ "\n框选标注归到DIM层")
  (setq ss (ssget ":s" '((0 . "DIMENSION"))))
  (command "_.chprop" ss "" "LA" "DIM" "")
  (gc)
  )

(defun c:ttc(/ ss)
  (command "layer" "M" "DIM" "C" "4" "" "LT" "CONTINUOUS" "" "");设置一个标注图层
  (princ "\n标注全部归到DIM层")
  (setq ss (ssget "X" '((0 . "DIMENSION"))))
  (command "_.chprop" ss "" "LA" "DIM" "")
  (gc)
  )
;;;一个手选,一个自动选全图,随便用吧
发表于 2020-8-10 23:51:37 | 显示全部楼层
成仔 发表于 2012-10-13 16:12
(defun c:tt ()
  (if (= (tblsearch "Layer" "DIM") nil)
    (command "Layer" "new" "DIM" "color" "4 ...

如何自由选择不是强行全部归层呢
发表于 5 天前 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2012-10-13 12:33:15 | 显示全部楼层
就没个悬赏?
发表于 2012-10-13 12:39:57 | 显示全部楼层
这太TM简单了,你学一点LISP,就会编一个
发表于 2012-10-13 12:41:04 | 显示全部楼层
这太TM简单了,你学一点LISP,就会编一个
发表于 2012-10-13 16:12:52 | 显示全部楼层
本帖最后由 成仔 于 2012-10-15 20:11 编辑

(defun c:tt ()
  (if (= (tblsearch "Layer" "DIM") nil)
    (command "Layer" "new" "DIM" "color" "4" "DIM" "")
  )
  (setq ss (ssget "X" '((0 . "DIMENSION"))))
  (command "Chprop" ss "" "layer" "DIM" "")
)

点评

兄弟你没搞对吧 都错误了 还有人说简单 整个有点的不行吗  发表于 2012-10-13 21:55
函数名与命令重名了。  发表于 2012-10-13 19:09
发表于 2012-10-13 16:57:52 | 显示全部楼层
 楼主| 发表于 2012-10-13 18:28:55 | 显示全部楼层
经测试,不行啊
命令: dim
标注:
键入 EXIT,返回命令提示。
发表于 2012-10-14 15:11:08 | 显示全部楼层
本帖最后由 adc 于 2012-10-14 15:12 编辑
xman00 发表于 2012-10-13 18:28
经测试,不行啊
命令: dim
标注:

刚老大不是说了函数名与命令重名了,你把c:dim里的dim改成你想要的其他命令就行了
发表于 2012-10-15 20:13:13 | 显示全部楼层
呵呵,不好意思,函数名与命令重名,上面已更改
发表于 2012-10-15 21:53:59 | 显示全部楼层
(defun c:Dim2Layer (/ ss i ename err)
  (vl-load-com)
  (setq ss (ssget "_X" '((0 . "DIMENSION"))))
  (setq i -1)
  (while (setq ename (ssname ss (setq i (1+ i))))
    (setq err (vl-catch-all-apply
                'vla-put-layer
                (list (vlax-ename->vla-object ename) "DIM")
              ))
    (if (vl-catch-all-error-p err)
      (print (vl-catch-all-error-message err))
    )
  )
  (princ)
)

点评

不行呀 兄弟!出现错误呀!命令: Dim2Layer ; 错误: 参数类型错误: lselsetp nil  发表于 2012-10-15 22:02
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-21 01:46 , Processed in 0.180160 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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