乐筑天下

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

[编程交流] 一些简单的Autolisp问题

[复制链接]

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 13:29:05 | 显示全部楼层
感谢您的回复。
 
msasu:我假设一个progn语句已经在运行,所以我不需要调用另一个。那么您的意思是,对于每个只需要一个表达式的函数,需要一个progn语句?
 
李:是的,我使用VLISP编辑器,它使它更容易10倍。
 
是否在选择集中拾取块层?如果我打电话:
(setq ss(ssget“X”(列表(cons 8“STR”)))
有一个块在“STR”中有一些层,如果实际的块层是“STR”,它会只在选择集中包括该块吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:32:40 | 显示全部楼层
嗨,史蒂夫,
 
我相信我在帖子#9中附上了一个链接,它很好地解释了progn语句。它们用于将要由函数处理的表达式分组为单个表达式。
 
对于ssget问题,您可以使用以下方法进行实验:
 
  1. (sssetfirst nil (ssget "_X" '((8 . "STR"))))

 
但是我可以告诉你,不,它不会被ss过滤器拾取。
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 13:37:07 | 显示全部楼层
好的,谢谢。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 13:40:17 | 显示全部楼层
Steve1:
是的,你的麻烦制造者代码被“包装”在一个progn中,但我说的是它里面的if语句,注释的那个;这包含3个不同的语句(颜色不同),因此它绝对需要一个尖头,否则会引发错误。
 
  1.    (if (= "TEXT" (cdr(assoc 0 enlist)))
  2. ([color=red][b]progn[/b][/color]
  3. [color=blue]          (setq     enlist (subst (cons 72 1) (assoc 72 enlist) enlist) ; vertical align - middle = 1
  4.            enlist (subst (cons 73 2) (assoc 73 enlist) enlist) ; horizontal align - center = 2
  5.            enlist (subst (cons 7 "ISOCP") (assoc 7 enlist) enlist) ; text style
  6.            enlist (subst (cons 40 300) (assoc 40 enlist) enlist)) ; text height[/color]
  7. [color=darkorange]          (entmod enlist)[/color]
  8. [color=green]          (entupd en)[/color]
  9.    )
  10. ) ; end if

 
 
如果If只包含两条语句,这不会引发错误,但是,如果没有用progn“包装”,第二条语句将仅在满足else条件时执行;参见上述示例:
 
1.
  1. (if a
  2. (setq b 1)   ; <-- b will have value only if a is true
  3. (setq c 2)   ; <-- c will have value only if a is nil
  4. )

 
  1. (if a
  2. (progn
  3. (setq b 1)   ; <-- both b and c will have value if a is true
  4. (setq c 2)
  5. )
  6. )

 
在这两种情况下,求值都将返回“4”,但如果未涉及progn,则会引发错误-即它需要1个参数,2个给定:
 
  1. 13

 
当做
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 13:42:34 | 显示全部楼层
这就完全澄清了,谢谢msasu
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 13:44:50 | 显示全部楼层
快速提问:
知道“文本样式”是否存在的最佳方法是什么?
 
在autolisp中就是这样。
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 13:47:54 | 显示全部楼层
使用TBLSEARCH语句-这将返回T是当前图形的文本样式表中存在的参数样式。同样,使用此功能,您可以搜索线型、块、图层或其他。。。
 
  1. 14

 
 
当做
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 13:53:08 | 显示全部楼层
极好的谢谢msasu
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 13:56:51 | 显示全部楼层
欢迎你!
也可以列出指定定义表中的所有条目–请参阅下文“如何列出当前图形中定义的所有文字样式”(稍后可以使用成员语句搜索列表中是否有特定样式):
 
  1. 15

 
当做
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 13:57:17 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 03:04 , Processed in 0.325001 second(s), 70 queries .

© 2020-2025 乐筑天下

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