sekarr24 发表于 2022-7-6 09:11:31

需要帮助计算层数

你好
 
我需要一个lisp例程来计算图形中从开始到结束的布局数量(布局名称不是特定的,而是随机的),并更新标题栏中的sheet no字段,例如:“1/5”、“2/5”等。。。
 
谁能指点一下怎么做??
 
 
当做
 
r、 塞卡尔

Tharwat 发表于 2022-7-6 09:17:23

这将为您提供图形中的布局数量。
 
(length(layoutlist))

 
但是,更新标题栏中的sheet no字段是什么意思?

Lee Mac 发表于 2022-7-6 09:23:22

在伪代码中,它可能是以下内容:
 
 
[列表]
[*]将计数器变量初始化为1,并将另一个变量初始化为1,以存储布局数(作为字符串)
[/列表]
(setq sheet 1)
(setq total (itoa (length (layoutlist))))
[列表]
[*]遍历布局列表。
[/列表]
(foreach layout (layoutlist)
...
)
[列表]
[*]对于每个布局名称,获取插入该布局中的特定名称的属性块的选择集
[/列表]
(ssget "_X" (list (cons 0 "INSERT") (cons 66 1) (cons 2 "YourBlockName") (cons 410 layout)))
[列表]
[*]遍历SelectionSet(entnext)中每个块的属性
[/列表]
 
[列表]
[*]使用计数器变量和包含布局总数的变量的串联,用与页码相关的标记更新属性
[/列表]
(strcat (itoa sheet) " of " total)
[列表]
[*]增加计数器
[/列表]
(setq sheet (1+ sheet))

woodman78 发表于 2022-7-6 09:27:34

r、 塞卡尔,
 
有一种更简单的方法来处理字段。唯一的问题是,您需要将布局编号为1,2,3,4,5。。。。。等等,并使用另一个字段作为总页数。我有这样的设置,它工作得很好。简单的regenall更新字段。
我附加了一个带有字段的布局。
 
另请注意用于刻度的字段。如果更改视口比例并重新生成,则所有比例都会更新。图纸尺寸根据用于打印的页面设置进行更新。
新建块。图纸

irneb 发表于 2022-7-6 09:31:15

这对我不起作用:

我注意到您的总数来自USERS5系统变量。你可能有一些Lisp程序的设置。这就是为什么我不喜欢这样做-如果该字段用于没有加载Lisp的ACad,您会看到我的屏幕截图中显示的内容。

johmmeke 发表于 2022-7-6 09:38:38

也不在这里工作。Regen无效。
我根据经验知道,如果在属性中使用字段,则无法获取插入的代码。
你能告诉我你插入的代码吗?在哪一个领域,对不起,我还是个新手。
 
Mvg约翰
非英语母语

Lee Mac 发表于 2022-7-6 09:43:03

我没有看过图纸,但我猜woodman使用了一个引用LISP变量(或由LISP代码更新的用户系统变量)的字段来显示布局的总数。由于LISP变量仅在当前绘图任务期间(当文档命名空间存在时)保持其值,因此每次打开图形时都需要对其进行设置,以使字段显示正确的值。
 
如果不引用LISP变量或用户系统变量,我无法立即看到使用字段显示布局总数的方法,因此建议OP遵循我在第3篇文章中描述的方向。

Cad64 发表于 2022-7-6 09:45:46

 
我建议您了解“图纸集”:http://heidihewett.blogs.com/my_weblog/files/Sheets_Happen.pdf

irneb 发表于 2022-7-6 09:49:29

我不确定你指的是什么。 
首先,woodman的绘图在块内的普通多行文字中有字段,或者只是作为布局页面上的多行文字(而不是属性)。其次,我从来没有因为字段代码在属性中而无法得到它,你可能指的是公式字段吗?如果它们是text/attrib/table单元格中的唯一内容,则它们有变得“不可编辑”的趋势。
 
Woodman的绘图(如我之前所述)通过两个字段加载“Sheet#of#”:
 
(1) 指向CTab系统变量的字段,用于获取当前选项卡的名称。字段代码为“%%”
(2) 指向Diesel表达式的字段,该表达式仅检索USERS5系统变量。字段代码为“%%”。
 
如果您指的是日期、发行日期、比例和纸张大小,则分别为:“%%”;"%%"; “%%)*1000/%)。自定义比例\f”%lu2%qf2816“>%)\f”%lu2%pr0“>%”和“%%”。
 
我对最后一个从lisp变量(在我的电脑上是nil)中获取其值的问题,与USERS5相同,USERS5是“”(空白文本)。如果woodman还附加了设置/创建这2个的LSP,那么它可能会起作用。

dbroada 发表于 2022-7-6 09:53:27

难道伍德曼的是一种民事功能吗?我知道electrical内置了一些自动页码和其他参考信息。
页: [1] 2
查看完整版本: 需要帮助计算层数