乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 22|回复: 8

[编程交流] DXF代码中的变量

[复制链接]

3

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 08:27:49 | 显示全部楼层 |阅读模式
大家好,
 
根据下面的代码,我的列表有问题。
  1.    (if (null (tblsearch "style" teksthoogte))
  2.      (entmake
  3.        (list
  4.          '(0 . "STYLE")
  5.   '(-3                                     ;; Make the style annotative
  6.            ("AcadAnnotative"
  7.              (1000 . "AnnotativeData")
  8.              (1002 . "{")
  9.              (1070 . 1)
  10.              (1070 . 1)
  11.              (1002 . "}")
  12.            )
  13.   )
  14.          '(100 . "AcDbSymbolTableRecord")
  15.          '(100 . "AcDbTextStyleTableRecord")
  16.          '(2 . teksthoogte)                       ;; Style name
  17.          '(70 . 0)                                ;; Standard flag values (bit-coded values)
  18.          '(40 . 1.                              ;; text height
  19.          '(41 . 1.0)                              ;; width factor
  20.          '(50 . 0.0)                              ;; oblique angle
  21.          '(71 . 0)                                ;; text generation "0" normal text
  22.          '(42 . 0)                                ;; last height used
  23.          '(3 . "Arial.ttf")                       ;; font file name
  24.          '(4 . "")                                ;; bigfont (blank for no)
  25.        )                                          ;; end list
  26.      )                                            ;; end entmake
  27.    )                                              ;; end if

 
当我运行这个LISP时,AutoCAD说:
  1. ; error: bad DXF group: (2 . TEKSTHOOGTE)

 
所以,我的问题是:如何让变量“teksthoogte”在这个列表中工作?
回复

使用道具 举报

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-6 08:42:23 | 显示全部楼层
我现在无法测试这一点,但尝试在名称周围使用一些引号。
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 08:48:03 | 显示全部楼层
(cons 2 teksthoogte);风格名称
回复

使用道具 举报

3

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 08:55:36 | 显示全部楼层
这不是解决方案,当在其周围换行引号时,AutoCAD将其视为文本,而它需要是一个在LISP中较早设置的变量。
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 08:59:10 | 显示全部楼层
为什么不呢?
看看这是否有效(可能的问题是非英语字母,
如果我没记错的话,我也有过同样的问题
德语“A”元音字母)
复制粘贴此剪贴:
 
  1. (setq teksthoogte "ANNO-Tekst 2.5")
  2. (if (not (tblsearch "style" teksthoogte))
  3.      (entmake
  4.        (list
  5.          '(0 . "STYLE")
  6.   '(-3                                     ;; Make the style annotative
  7.            ("AcadAnnotative"
  8.              (1000 . "AnnotativeData")
  9.              (1002 . "{")
  10.              (1070 . 1)
  11.              (1070 . 1)
  12.              (1002 . "}")
  13.            )
  14.   )
  15.          '(100 . "AcDbSymbolTableRecord")
  16.          '(100 . "AcDbTextStyleTableRecord")
  17.          (cons 2  teksthoogte)                       ;; Style name
  18.          '(70 . 0)                                ;; Standard flag values (bit-coded values)
  19.          '(40 . 1.                              ;; text height
  20.          '(41 . 1.0)                              ;; width factor
  21.          '(50 . 0.0)                              ;; oblique angle
  22.          '(71 . 0)                                ;; text generation "0" normal text
  23.          '(42 . 0)                                ;; last height used
  24.          '(3 . "Arial.ttf")                       ;; font file name
  25.          '(4 . "")                                ;; bigfont (blank for no)
  26.        )                                          ;; end list
  27.      )                                            ;; end entmake
  28.    )                                              ;; end if
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:11:01 | 显示全部楼层
这可能有助于您理解:
 
http://www.cadtutor.net/forum/showpost.php?p=258390&postcount=20
回复

使用道具 举报

3

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 09:18:52 | 显示全部楼层
大家好,
 
谢谢你的回复。
李,你的帖子并没有真正帮助我理解(可能是因为我的英语不太好)。
 
但是,我已经找到了解决问题的方法。
这是我现在的代码:
  1.    (if (null (tblsearch "style" teksthoogte))
  2.      (entmake
  3.        (list
  4.          '(0 . "STYLE")
  5.   '(-3                                     ;; Make the style annotative
  6.            ("AcadAnnotative"
  7.              (1000 . "AnnotativeData")
  8.              (1002 . "{")
  9.              (1070 . 1)
  10.              (1070 . 1)
  11.              (1002 . "}")
  12.            )
  13.   )
  14.          '(100 . "AcDbSymbolTableRecord")
  15.          '(100 . "AcDbTextStyleTableRecord")
  16.          '(2 . (strcat teksthoogte))              ;; Style name
  17.          '(70 . 0)                                ;; Standard flag values (bit-coded values)
  18.          '(40 . 1.                              ;; text height
  19.          '(41 . 1.0)                              ;; width factor
  20.          '(50 . 0.0)                              ;; oblique angle
  21.          '(71 . 0)                                ;; text generation "0" normal text
  22.          '(42 . 0)                                ;; last height used
  23.          '(3 . "Arial.ttf")                       ;; font file name
  24.          '(4 . "")                                ;; bigfont (blank for no)
  25.        )                                          ;; end list
  26.      )                                            ;; end entmake
  27.    )                                              ;; end if

 
我做的一件事就是更换
  1. '(2 . teksthoogte)

具有
  1. '(2 . (strcat teksthoogte))

 
现在,我只是想知道这样做是否合适。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:22:26 | 显示全部楼层
 
不会计算strcat表达式(尽管实际上不需要strcat),因为列表被引用,因此不会计算(如我的线程中所述)。
 
相反,请使用:
 
  1. (cons 2 teksthoogte)
回复

使用道具 举报

3

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 09:29:11 | 显示全部楼层
我还没试过,周一会在办公室试。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 09:25 , Processed in 0.452517 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表