明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2963|回复: 14

[求助]高手们,再帮我看看,关于标注样式的问题。

  [复制链接]
发表于 2007-7-16 12:50:00 | 显示全部楼层 |阅读模式
哪位高手能够用LSP更改标注样式的名称?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2007-7-16 14:15:00 | 显示全部楼层
这个问题我以前也想问,因为没有什么大用,所以一直都放着.不知道有没有更简单的方法,比如command
  1. (defun c:tt (/    acaddocument acadobject   dimname
  2.       dimobj   dimstylesel  mspace     new_name
  3.       orig_name
  4.      )
  5.   (vl-load-com)
  6.   (if (and (/= (setq orig_name (getstring "\n输入原来标注样式名:"))
  7.         ""
  8.     )
  9.     (/= (setq new_name (getstring "\n输入新的标注样式名:"))
  10.         ""
  11.     )
  12.     (tblsearch "dimstyle" orig_name)
  13.     (not (tblsearch "dimstyle" new_name))
  14.       )
  15.     (setq acaddocument (vla-get-activedocument (vlax-get-acad-object))
  16.    dimstylesel  (vla-get-dimstyles acaddocument)
  17.    ;;下面的,我自己也不懂为什么用add方法才能得到dimobj,有别的方法得到dimobj吗?
  18.    dimobj       (vla-add dimstylesel orig_name)
  19.    dimname      (vla-put-name dimobj new_name)
  20.     )
  21.   )
  22.   (princ)
  23. )
 楼主| 发表于 2007-7-16 14:48:00 | 显示全部楼层

如果存在new_name 的标注样式

就不能更改了?

发表于 2007-7-16 17:03:00 | 显示全部楼层

好像是这样子的!

要不你把那句去掉,调试一下!

我个人认为改标注样式名称没有什么大用吧!要改,自己动手重命名一下很快的吧!!

 楼主| 发表于 2007-7-16 18:27:00 | 显示全部楼层

[求助]

(if (and (/= (setq orig_name (getstring "\n输入原来标注样式名:"))
        ""
    )
    (/= (setq new_name (getstring "\n输入新的标注样式名:"))
        ""
    )
    (tblsearch "dimstyle" orig_name)
    (not (tblsearch "dimstyle" new_name))
      )
如果存在new_name,把上面的条件去掉的话,就会出错
 楼主| 发表于 2007-7-17 08:25:00 | 显示全部楼层
可不可以这样,如果存在new_name,则把orig_name和new_name的样式合并成new_name
发表于 2007-7-17 08:39:00 | 显示全部楼层

有请版主!

 楼主| 发表于 2007-7-18 03:00:00 | 显示全部楼层
版主!到哪去了?
发表于 2007-7-18 08:55:00 | 显示全部楼层

可不可以这样,如果存在new_name,则把orig_name和new_name的样式合并成new_name

其实这句话可以做到的:

1.存在new_name,ssget全选标注样式名为orig_name.

2.将这个选择集里面的标注样式名,全部subst取代为new_name

3.然后再删除标注样式名orig_name

发表于 2007-7-18 12:15:00 | 显示全部楼层
本帖最后由 作者 于 2008-10-7 11:16:39 编辑

打散、tlbnext取里面元素,取得该文字后用entmake重新生成新的标注,注意打散的需要放选择集然后删掉。2007-7-18 12:15:00

=================================

当年上面这话和标题不符,是说改标注中的文字,方法也很烂,大家不要被误导!

可以使用vla-item取得标注样式后使用put-name修改

(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(setq dimstyles (vla-get-dimstyles doc))

(if (and (tblsearch "dimstyle" "Standard")(not(tblsearch "dimstyle" "new")))
    (progn
   (setq dim (vla-item dimstyles "Standard"))
   (vla-put-name dim "new")
    )
)

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

本版积分规则

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

GMT+8, 2025-11-8 04:03 , Processed in 0.261860 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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