明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10000|回复: 17

[讨论] 请教LSP如何设置文字样式

[复制链接]
发表于 2013-4-15 16:06 | 显示全部楼层 |阅读模式
本帖最后由 TLC_AS 于 2013-4-16 07:27 编辑

我要用LSP更改文字样式,字体改为ARIAL.TTF,字体样式为粗体,我在DWG文件中设置好后,对比了下DXF组码的不同用,写了一个LSP但没有达到效果,恳请高手帮帮忙,谢谢了,以下是代码,奇怪的是DXF组码上的字体是ARIALBD.TTF??
(defun c:zx ( / sty)
  (setq sty (entget (tblobjname "style" "tower")))
  (setq sty (subst (cons 42 3.0) (assoc 42 sty) sty))
  (setq sty (subst (cons 3 "ARIAL.TTF") (assoc 3 sty) sty))
  (setq sty (subst (cons 4 "") (assoc 4 sty) sty))
  (entmod sty);;;下面是图元的对照数据
;;;((-1 . <图元名: 7e6d5c70>) (0 . "STYLE") (330 . <图元名: 7e6d5c60>) (5 . "1F6") (100
;;;. "AcDbSymbolTableRecord") (100 . "AcDbTextStyleTableRecord") (2 . "tower") (70
;;;. 0) (40 . 3.0) (41 . 0.7) (50 . 0.0) (71 . 0) (42 . 3.0) (3 . "ARIALBD.TTF")
;;;(4 . ""))
;;;
;;;  
;;;  ((-1 . <图元名: 7ded1c70>) (0 . "STYLE") (330 . <图元名: 7ded1c60>) (5 . "1F6") (100
;;;. "AcDbSymbolTableRecord") (100 . "AcDbTextStyleTableRecord") (2 . "tower") (70
;;;. 0) (40 . 3.0) (41 . 0.7) (50 . 0.0) (71 . 0) (42 . 0.2) (3 . "simplex.shx")
;;;(4 . "gbhzfs.shx"))

      
  (entupd (tblobjname "style" "tower"))
)


 楼主| 发表于 2013-4-17 10:50 | 显示全部楼层
lsjj 发表于 2013-4-17 10:26
(command "style" "aaa" "arial" "" "" "" "" "")
style 輸入字型的名稱或 [列示(?)] : aaa
新的字型。

设置不了TTF字体为粗体
回复 支持 1 反对 0

使用道具 举报

发表于 2020-12-18 09:02 | 显示全部楼层
本帖最后由 superwds 于 2020-12-18 09:06 编辑

(command "style" "aaa" "arialbd.ttf" "" "" "" "" "")
这样设出来就是粗体了。

(command "style" "aaa" "arial.ttf" "" "" "" "" "");;;常规
(command "style" "aaa" "arialbd.ttf" "" "" "" "" "");;;粗体
(command "style" "aaa" "arialbi.ttf" "" "" "" "" "");;;粗斜体
(command "style" "aaa" "ariali.ttf" "" "" "" "" "");;;斜体

 楼主| 发表于 2013-4-15 19:09 | 显示全部楼层
没人知道吗?
 楼主| 发表于 2013-4-16 07:28 | 显示全部楼层
大家帮帮忙呀
 楼主| 发表于 2013-4-16 10:06 | 显示全部楼层
我顶,大家帮忙吧
发表于 2013-4-16 12:21 | 显示全部楼层
这样试试:
(command "_style" "tower" "ARIAL.TTF")
(while (= 1 (logand 1 (getvar 'cmdactive)))
  (command "")
  )
 楼主| 发表于 2013-4-16 13:02 | 显示全部楼层
Gu_xl 发表于 2013-4-16 12:21
这样试试:
(command "_style" "tower" "ARIAL.TTF")
(while (= 1 (logand 1 (getvar 'cmdactive)))

我想设置成粗体,这样好象不行,我试过用-STYLE,没找到设置粗体的选项,才想别的办法的
发表于 2013-4-16 14:23 | 显示全部楼层
TLC_AS 发表于 2013-4-16 13:02
我想设置成粗体,这样好象不行,我试过用-STYLE,没找到设置粗体的选项,才想别的办法的

你试试用entget查看一下扩展数据。
(entget (tblobjname "style" "tower") '("*"))
 楼主| 发表于 2013-4-16 15:41 | 显示全部楼层
本帖最后由 TLC_AS 于 2013-4-16 15:42 编辑
ll_j 发表于 2013-4-16 14:23
你试试用entget查看一下扩展数据。
(entget (tblobjname "style" "tower") '("*"))

首先谢谢你,照你这个试了下是多了些东西,但加上后还是不行,下面是修改后的代码和图元信息
(defun c:zx ( / sty)
  (setq sty (entget (tblobjname "style" "tower") '("*")))
  (setq sty (subst (cons 42 3.0) (assoc 42 sty) sty))
  (setq sty (subst (cons 3 "ARIALBD.TTF") (assoc 3 sty) sty))
  (setq sty (subst (cons 4 "") (assoc 4 sty) sty))
  (if (assoc -3 sty)
    (setq sty (subst '(-3 ("ACAD" (1000 . "Arial") (1071 . 33554466))) (assoc -3 sty) sty))
    (progn
       (setq sty (append sty '((-3 ("ACAD" (1000 . "Arial") (1071 . 33554466))))))
      )
    )
  (entmod sty)
;;;((-1 . <图元名: 7e01dc70>) (0 . "STYLE") (330 . <图元名: 7e01dc60>) (5 . "1F6") (100
;;;. "AcDbSymbolTableRecord") (100 . "AcDbTextStyleTableRecord") (2 . "tower") (70
;;;. 0) (40 . 3.0) (41 . 0.7) (50 . 0.0) (71 . 0) (42 . 0.2) (3 . "ARIALBD.TTF")
;;;(4 . "") (-3 ("ACAD" (1000 . "Arial") (1071 . 33554466))))
;;;
;;;  
;;;  ((-1 . <图元名: 7ded1c70>) (0 . "STYLE") (330 . <图元名: 7ded1c60>) (5 . "1F6") (100
;;;. "AcDbSymbolTableRecord") (100 . "AcDbTextStyleTableRecord") (2 . "tower") (70
;;;. 0) (40 . 3.0) (41 . 0.7) (50 . 0.0) (71 . 0) (42 . 0.2) (3 . "simplex.shx")
;;;(4 . "gbhzfs.shx"))
  
)
发表于 2013-4-16 17:18 | 显示全部楼层
TLC_AS 发表于 2013-4-16 15:41
首先谢谢你,照你这个试了下是多了些东西,但加上后还是不行,下面是修改后的代码和图元信息
(defun c:z ...

我试了一下,问题出在前半段,就是系统这样不认arial.ttf这种说法,我没研究过在cad中使用ttf,所以也说不清,你再查查看,以前可能有人研究过。
另:组码1071的值是固定的,就是十六进制的31、1000031、2000031、3000031的十进制表示,分别为:
49、16777265、33554481、50331697
 楼主| 发表于 2013-4-16 17:39 | 显示全部楼层
ll_j 发表于 2013-4-16 17:18
我试了一下,问题出在前半段,就是系统这样不认arial.ttf这种说法,我没研究过在cad中使用ttf,所以也说不 ...

唉,我也不知道,谢谢你了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 18:55 , Processed in 0.228664 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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