找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1168|回复: 12

[求助] [求助]:有没有什么办法可以将选取的文字的样式置为当前?

[复制链接]
发表于 2006-2-8 23:15:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

  1.   [FONT=courier new]
  2. (defun c:dds()
  3.   (princ "\n*** 将选择的标注的样式置为当前 ***")
  4.   (command "dimstyle" "r" "")
  5.   (princ)
  6. )
  7.   [/FONT]


由于我的屏幕的工具比较多,因为屏幕就相对的小点,想画图方便点,因此就不想要那个样式工具条了。
因此就想用命令来完成当前的标注样式和文字样式。
标注样式我已经完成了,但是文字样式搞不掂,请高手们高抬贵手一救?
程序的思路:图形中有几个文字样式,运行命令后选择其中的一个文字,则那个文字的样式即为当前文字样式。
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-2-8 23:53:08 | 显示全部楼层
andyhua5240 决定学LISP啦。偶来支持一把。

  1. [font=courier New]
  2. ([color=#0000FF]vl-load-com[/color])

  3. ([color=#800040]defun[/color] c:test (/ style e)
  4.   ([color=#0000FF]setq[/color] e ([color=#0000FF]ssget[/color] [color=#FF00FF]":E:S"[/color] '((0 . [color=#FF00FF]"TEXT,MTEXT"[/color]))))
  5.   ([color=#0000FF]if[/color] ([color=#0000FF]null[/color] e)
  6.     ([color=#0000FF]progn[/color]
  7.       ([color=#0000FF]princ[/color] [color=#FF00FF]"\n必须选文字物体"[/color])
  8.       ([color=#0000FF]vl-exit-with-error[/color] [color=#FF00FF]""[/color])
  9.     )
  10.   )
  11.   ([color=#0000FF]setq[/color] e ([color=#0000FF]ssname[/color] e 0))
  12.   ([color=#0000FF]setq[/color]    style ([color=#0000FF]vla-get-stylename[/color]
  13.         (vlax-ename-[color=#0000FF]>[/color]vla-object e)
  14.           )
  15.   )
  16.   ([color=#0000FF]command[/color] [color=#FF00FF]"-style"[/color] style)
  17.   ([color=#0000FF]while[/color] (/= [color=#FF00FF]""[/color] ([color=#0000FF]getvar[/color] [color=#FF00FF]"cmdnames"[/color])) ([color=#0000FF]command[/color] [color=#FF00FF]""[/color]))
  18.   ([color=#0000FF]princ[/color] [color=#FF00FF]"\n"[/color])
  19.   ([color=#0000FF]princ[/color] style)
  20.   ([color=#0000FF]princ[/color] [color=#FF00FF]" 现在是当前文字样式."[/color])
  21.   ([color=#0000FF]princ[/color])
  22. )
  23. [/font]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-9 00:08:08 | 显示全部楼层
请问楼主:你的标注样式是怎么置为当前的?
还有线形呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-9 00:28:00 | 显示全部楼层
最初由 秋枫 发布
[B]andyhua5240 决定学LISP啦。偶来支持一把。

[code]
(vl-load-com)

(defun c:test (/ style e)
  (setq e ([color... [/B]


谢谢大哥的鼓励和支持!
感动得想哭!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-2-9 08:51:32 | 显示全部楼层
1 打开CAD的“样式”工具条,包括了字体样式、标注样式等,点选实体,在下拉框中选择即设置当前样式

2 参考晓东工具箱中的文字标注样式设置Lisp
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-9 09:24:33 | 显示全部楼层
  1. [FONT=courier new];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;;* GHZX(改换字型)
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4. (DEFUN C:GHZX (/ SS s1 n stx)
  5.   ;(cmdla0)
  6.   (prompt "\n将原有文本的字型改为当前所设字型。")
  7.   (princ "\n选择文本 : ")
  8.   (while (not (SETQ SS (ssget '((0 . "*TEXT"))))))
  9.   (setq        s1 (ssname SS 0)
  10.         n  -1
  11.         stx (getvar "textstyle")
  12.   )
  13.   (princ "\n旧字型为 : ")
  14.   (princ (xyp-get-dxf 7 s1))
  15.   (princ "\n新字型为 : ")
  16.   (princ stx)
  17.   (princ "\n稍候 : ")
  18.   (while (setq s1 (ssname SS (setq n (1+ n))))
  19.     (sub_upd s1 7 stx)
  20.     (princ ".")
  21.   )
  22.   (princ n)
  23.   (princ "个改变字型!")
  24.   ;(cmdla1)
  25.   ;(PXYP "GHZX  (改换字型)")
  26. )
  27. (PXYP "GHZX  (改换字型)")[/FONT]


可以试试签名栏下的“文本编辑套件”
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-9 10:00:15 | 显示全部楼层
[php]

(vl-load-com)
(defun c:celtst (/ style e)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (if (setq ss (ssget ":E:S" '((0 . "TEXT,MTEXT"))))
    (progn (setq e (ssname ss 0))
           (setq style (vla-get-stylename (vlax-ename->vla-object e)))
           (vla-put-activetextstyle doc (vla-item (vla-get-textstyles doc) style))
           (princ " 现在是当前文字样式: ")
           (princ style)
    )
  )
  (princ)
)[/php]

再来个加强版:)
[php]
;| celtst
功能: 参照文本设当前字型 by 雨箭风刀.2006.2
支持: text;mtext;dim标注;属性;块属性;块内文本、属性、标注实体.
|;
(vl-load-com)
(defun c:celtst (/ doc e o tst tstb)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (if (and (setq e (car (nentsel "\n 设置当前字型,选择参照文字:")))
           (setq o (vlax-ename->vla-object e))
           (wcmatch (vla-get-objectname o) "AcDb*Text,AcDbAttribute*"))
    (progn (setq tst(vla-get-stylename o))
           (vla-put-activetextstyle doc (setq tstb (vla-item (vla-get-textstyles doc) tst)))
           (mapcar 'princ
                   (list"\n 已设置当前文字样式为: " tst " (" (vla-get-fontfile tstb)";"(vla-get-bigfontfile tstb)")"))
    )
    (princ "\n 必须选择文字!")
  )
  (princ)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-9 10:28:54 | 显示全部楼层
  1. [FONT=courier new](defun c:test (/ ss)
  2.   (if (setq ss (ssget '((0 . "TEXT"))))
  3.     (setvar "textstyle" (cdr (assoc 7 (entget (ssname ss 0)))))
  4.   )
  5. )[/FONT]


选设字型:
[php];;;选设字型
(defun c:XSZX ()
  (if (and (setq s1 (car (nentsel "\n选择文本: ")))
           (member (cdr (assoc 0 (entget s1))) '("TEXT" "MTEXT"))
      )
    (progn
      (setq sty (cdr (assoc 7 (entget s1))))
      (princ "\n当前字型由 ")
      (princ (getvar "textstyle"))
      (princ " 改为 ")
      (princ sty)
      (setvar "textstyle" sty)
    )
    (princ"\n未选到文本!")
  )
  (princ)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-9 13:17:14 | 显示全部楼层
谢谢大侠们的帮助!
太感谢了!
经测试,小弟我最后打算用雨箭风刀的加强版程序!
谢谢了!找到我需要的东东了!
谢谢!

斑竹的那个改换字型程序,我试用了,感觉可能有点问题?请斑竹查看一下,虽然源码中只支持text,但是我试了mtext,也支持。但是,不是把文字改为当前的文字样式,而是改成了宋体文字样式,并且新建了一个宋体文字样式!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-9 20:19:10 | 显示全部楼层
Andyhua,照理没问题。我在AutoCAD 2006下测试通过的。
难道是版本的原因?

如图:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-9 20:21:39 | 显示全部楼层
LSP:(最近真是怪了)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-10 14:22:03 | 显示全部楼层
(command "-style" style) 是不是这里的问题?
“-”号
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-2-11 00:52:43 | 显示全部楼层
.style
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-29 02:37 , Processed in 0.313712 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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