The Buzzard 发表于 2022-7-6 10:18:46

电缆Id号标签Lisp

大家好,
 
我这里有一个新的块程序,用于解决或识别IT建设电缆。块属性标记信息基于输入进行组装。然后,该块由该信息的一部分命名,以便更容易获得特定组Id标记的准确计数,这可以通过任何良好的块计数程序来完成。插入该块后,它以编号001开始,作为组的第一个编号标记。你可以输入任何三位数的数字,你想开始。每次插入该块时,序列号将增加1。此外,为了使该程序更加有趣,取决于插入点到其方向角度的设置位置,块将自动旋转属性,以按正确的绘图读取方向读取。(从图形底部和/或从图形右侧。)它还将把每个块与颜色集放在其指定的层上。即使这个程序对你没有价值,我相信你会发现它的技术同样有趣。为了让您了解块的外观以及插入后的结果,我在下面提供了一个示例图像。还有一个对话框的示例图像。
 
因此,该代码的优点是:
 
没有搜索或记忆块在哪里或它被称为什么。
无需手动更改属性值。
插入后无需操作属性。
您不必设置或创建层。
 
缺点:
要修改块而不是您在这里看到的块,需要修改代码。
 
我在这个程序中遇到的最大问题是试图在一个选择集中进行多属性编辑,多亏了李·麦克,这个问题才得以解决。另一个问题是在序列号中使用前导零,这也在alanjt的帮助下得到了解决。A感谢David Bethel对entmake的了解。CAB因其论点和其他技术而备受赞誉,而Afralisp的肯尼·拉梅(KennyRamage)从一开始就开始了编码。
 
这是我制作这个程序时遇到的选择集问题的线索。
 
选择集
http://www.cadtutor.net/forum/showthread.php?53165-单属性多次单步执行选择集。
 
 
该代码称为CIT.lsp和CIT.dcl
命令语法为:CIT启动程序。
 
在任何情况下,如果你能使用它或不使用它,都可以对代码进行旋转。
 
享受代码,我期待着您的输入。
谢谢
秃鹰
 
注意已添加版本V0.1。10.14.10

;
;
; Revisions.
; Note: Be sure to add the most recent revision date and version in the About Dialog Page.
;-----------------------------------------------------------------------------------------
; Version | Change                                                      |   | Date
;-----------------------------------------------------------------------------------------
; V0.1    | Turn off orthomode for use with polar tracking                | AMB | 10|14|10
; V0.1    | Error trap Seq No. for invalid entries                        | AMB | 10|14|10
; XXXX    | XXXXX                                                         | XXX | XX|XX|XX
; XXXX    | XXXXX                                                         | XXX | XX|XX|XX
; XXXX    | XXXXX                                                         | XXX | XX|XX|XX
; XXXX    | XXXXX                                                         | XXX | XX|XX|XX
;



CIT_V0.1。拉链

Lt Dan's l 发表于 2022-7-6 10:24:39

有一件事。一旦程序完成,极轴追踪就不会恢复。也许这对你有用??
 
我不久前从李那里得到这个。切换极轴追踪

(setvar 'AUTOSNAP (boole 6 (getvar 'AUTOSNAP) )

 
一如既往,很好的编程,谢谢分享!

The Buzzard 发表于 2022-7-6 10:34:13

我能找到的唯一联系是当orthomode打开时,polarmode会自动关闭。我设置了一个选项,在代码启动时保存用户autosnap&polarmode,并在运行代码时关闭正交模式。如果用户喜欢打开正交模式,他们可以随意打开。看看这是怎么回事,让我了解它是如何运作的。
 
 
自动捕捉
类型:整数
保存在:注册表
初始值:63
控制自动捕捉标记、工具提示和磁铁。还打开极轴和对象捕捉跟踪,并控制极轴和对象捕捉跟踪工具提示的显示。系统变量值是以下位值的总和:
 
0关闭自动捕捉标记、工具提示和磁铁。同时关闭极轴追踪、对象捕捉追踪以及极轴追踪和对象捕捉追踪的工具提示
1打开自动捕捉标记
2打开自动捕捉工具提示
4打开自动捕捉磁铁
8打开极轴追踪
16打开对象捕捉跟踪
32打开极轴跟踪和对象捕捉跟踪的工具提示
 
为了使自动捕捉标记处于+极轴跟踪+对象捕捉跟踪的状态,需要将自动捕捉设置为25。见下文。
这些是程序运行期间的设置。

;
; F14 - Change Program Settings.
;
(defun CIT_CPS ()
(setq CPS (list 0 0 0 0 0 25 7))
(mapcar (function setvar)(list "cmdecho" "blipmode" "orthomode" "angbase" "angdir" "autosnap" "polarmode") CPS)
(princ))
;

 
目前,这是如何在代码中设置的。
 
 
启动时请注意,用户autosnap和polarmode已保存,因此它们应在程序结束或出现错误时恢复。

;
; F03 - Start-Up.
;
(defun C:CIT (/ ATAG$ BNAM$ BSCL# BSCL_LST BTAG$ BTAG_LST CPS DCL_ID DEG# ELST ENAM FLRN$ FSTY$
               IANG IDFR$ IDFR_LST INPT OLMN$ RAD# SEQN$ SEQN# SSET SUS TERR UCLK *error*)
(setq SUS_LST (list "cmdecho" "blipmode" "orthomode" "osmode" "angbase" "angdir" "clayer" "polarmode" "autosnap")
       SUS (mapcar 'getvar SUS_LST)
       TERR *error*
      *error* CIT_ET)
(CIT_MF)
(princ))
(princ "Cable Id Tag Lisp, CIT.lsp - Copyright © 2010")
(princ "\nType CIT to start program.")
;

 
 
谢谢

Guest kruuger 发表于 2022-7-6 10:43:06

嗨Buzzard
 
我想玩你的程序,但DCL文件有问题:
1.DCL文件应该是CIT no CLT i guess。
2.DCL文件中没有“主”对话框
 
克鲁格

The Buzzard 发表于 2022-7-6 10:45:32

 
抱歉,误拿了错误的dcl。zip文件现在被替换。

Guest kruuger 发表于 2022-7-6 10:51:46

非常感谢。现在可以了。我喜欢你文件中的函数描述
我注意到我们可以输入Seq No,比如:asd(letters)或01,第一个属性就是这个值。
 
当您离开此编辑框时,可能应该检查序列号的正确值。
如果值不正确,则转换为00X,例如:asas->到001、03->003、09->009等。

The Buzzard 发表于 2022-7-6 10:54:30

 
 
是的,我也注意到了。我会看看我能想出什么办法来解决这个问题。只要你没有输入错误,你就可以了。但你是对的。

The Buzzard 发表于 2022-7-6 11:03:29

大家注意,
 
我修复了或多或少前导零的问题。它将自动纠正问题。在涉及无效enty的情况下,程序会在命令提示下输入一条消息,并返回对话框,以便您进行更正。还关闭了正交模式以允许极轴跟踪工作。如果不使用极轴追踪,则始终可以重新启用正交模式。
 
在第一个帖子的版本列表中查找版本V0.1-10.14.10。
谢谢
秃鹰

Lt Dan's l 发表于 2022-7-6 11:04:25

一切似乎都很好。干得好,秃鹰!

The Buzzard 发表于 2022-7-6 11:12:02

 
谢谢“date=”
 
但我注意到的一件事是,当它报告Seq No.错误时,它将其水平打印到命令行。我刚刚在声明中添加了(ERPRI),现在看起来好多了。我还缩短了信息。
 
我加了这个。

   (cond
       ((= SEQN# nil)(princ "Attention! Invalid Seq No.")(terpri)(CIT_MF))
       (T))))

 
 
使其垂直打印。

Attention! Invalid Seq No.
Attention! Invalid Seq No.
Attention! Invalid Seq No.
Attention! Invalid Seq No.
Attention! Invalid Seq No.
Attention! Invalid Seq No.
页: [1] 2
查看完整版本: 电缆Id号标签Lisp