找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 865|回复: 13

[求助] style字体中的属性如何修改?

[复制链接]
发表于 2017-1-23 10:40:47 | 显示全部楼层 |阅读模式

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

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

×
(setq tem_1 (tblnext "STYLE" T))
(while tem_1   
; 可提取DWG文件所有字体的属性,但如何修改某个字体中的单个属性呢,如倾斜角
用(entmod (subst (cons (car (assoc...可以吗?

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

已领礼包: 20个

财富等级: 恭喜发财

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

使用道具 举报

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

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-1-23 11:03:28 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2017-1-23 11:13:05 | 显示全部楼层
我要一次性将资料图中的字体某个属性一次性修改,类似于循环style
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-1-23 11:23:47 | 显示全部楼层
STYLE 组码

组码
说明

100
子类标记 (AcDbTextStyleTableRecord)

2
样式名

70
标准标记值(按位编码值):

1 = 如果设置了此位,则此条目用于说明形

4 = 垂直文字

16 = 如果设置了此位,则表条目外部依赖于外部参照

32 = 如果同时设置了此位和位 16,则表明已成功融入了外部依赖的外部参照

64 = 如果设置了此位,则表明在上次编辑图形时,图形中至少有一个图元参照了表条目。(此标志对 AutoCAD 命令很有用。大多数读取 DXF 文件的程序都可以忽略它,并且无需由写入 DXF 文件的程序对其进行设置)

40
固定的文字高度;如果文字高度未固定,则为 0

41
宽度因子

50
倾斜角度

71
文字生成标志:

2 = 反向文字(镜像 X)

4 = 倒置文字(镜像 Y)

42
上次使用的高度

3
主要字体文件名

4
大字体文件名;如果无,则为空


STYLE 表项目也可用来记录 LOAD 命令请求的形文件。这种情况下,在 70 组标志中设置第一位 (1),并且只有 3 组(形文件名)有意义(其他所有组均为输
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-1-23 11:41:48 | 显示全部楼层

下面代码把文字样式STANDARD的宽度因子改成0.777
(defun c:tt ()
  (if (setq styl (tblobjname "style" "standard"))
    (progn
      (setq ed (entget styl)
            old (assoc 41 ed)
            new (cons 41 0.777)
            ed (subst
                 new
                 old
                 ed
               )
      )
      (entmod ed)
    )
  )
  (princ)
)

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-1-23 11:54:56 | 显示全部楼层
本帖最后由 st788796 于 2017-1-23 11:57 编辑

ObliqueAngle

Double; read-write
The angle in radians within the range of -85 to +85 degrees. A positive angle denotes a lean to the right; a negative value will have 2*PI added to it to convert it to its positive equivalent.

Remarks

The oblique angle is the object's "angle of slant" away from its vertical axis.



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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2017-1-23 12:14:05 | 显示全部楼层
(defun c:1 ()
(setq tem_1 (tblnext "STYLE" T))
(while tem_1
  (if (/= (cdr (assoc 40 tem_1)) 0)
    (entmod (subst (cons 40 0) (assoc 40 tem_1) tem_1))
  )
  (setq tem_1 (tblnext "STYLE"))
)         
(princ)
)
没反映.... ???????
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-1-23 12:26:39 | 显示全部楼层

你查看下 (tblnext "STYLE" T)返回的是什么?
(tblnext "STYLE" T)
((0 . "STYLE") (2 . "Standard") (70 . 0) (40 . 3.0) (41 . 0.66) (50 . 0.785398)
(71 . 0) (42 . 2.5) (3 . "txt") (4 . "gbcbig.shx"))


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

使用道具 举报

 楼主| 发表于 2017-1-23 12:36:53 | 显示全部楼层
成了,非常感谢,当时我就没明白怎么获取“实体名”,再次表示感谢,说的很明白,很让人能理解^0^
下次有不明白的问题就请教您了,哈哈
(defun c:1 ()
(setq tem_1 (tblnext "STYLE" T))
(while tem_1
  (if (/= (cdr (assoc 40 tem_1)) 0)
    (progn
       (setq tem_1 (entget (tblobjname (cdr (assoc 0 tem_1)) (cdr (assoc 2 tem_1)))))
       (entmod (subst (cons 40 0) (assoc 40 tem_1) tem_1))
    )
  )
(setq tem_1 (tblnext "STYLE"))
)         
(princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-1-23 12:46:23 | 显示全部楼层
(defun c:1 ()
  (setq tem_1 (tblnext "STYLE" T))
  (while tem_1
    (if        (/= (cdr (assoc 40 tem_1)) 0)
      (progn
        (setq e         (tblobjname "style" (cdr (assoc 2 tem_1)))
              ed (entget e)
        )
        (entmod (subst (cons 40 0) (assoc 40 ed) ed))
      )
    )
    (setq tem_1 (tblnext "STYLE"))
  )
  (princ)
)


或者:

(defun c:tt ()
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (vlax-for styl (vla-get-textstyles adoc)
    (vla-put-height styl 0.0)
  )
  (princ)
)

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 09:14 , Processed in 0.457157 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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