lamensterms 发表于 2022-7-5 23:11:28

仅当S

嘿伙计们,
 
我有一个例程,我计划用它作为加速绘图的工具。它基本上复制了修订块,并将旧修订块放在另一个块中(因此不能由另一个“块属性更新”例程编辑)。
 
该例程依赖于图形中只有一个修订块实例,因此我想将该条件添加到代码中。
 
所以我的代码是:
 
(defun c:REVUP ( / ss NBASE ruPt1 )
(setq ss (ssget "all" '((0 . "INSERT") (66 . 1) (2 . "*REVISIONS"))))
(if (= (sslength ss) 1)
(progn
(SETQ NBASE (POLAR '(0 0 0) (* PI (/ 90 180.0)) (* (GETVAR "DIMSCALE") 5)))
(COMMAND "COPY" SS "" "0,0,0" NBASE)
(setq ruPt1 '( 0 0 0))
(command "copybase" RUpt1 SS "" "pasteblock" RUpt1 "erase" "p" "")
)
)
(princ)
)
 
此代码似乎不起作用(至少在IF和PROGN部分)。即使存在多个修订块实例,该例程也将运行。
 
我只是想知道是否有人能告诉我哪里出了错。
 
非常感谢您的帮助。

BIGAL 发表于 2022-7-5 23:21:41

尝试两件事

use "X" instead of "all"
(ssget "all"

(setq obj (ssname ss 0 ))
COMMAND "COPY" obj

lamensterms 发表于 2022-7-5 23:24:06

嗨,比格尔,
 
谢谢你的回复。我对SSGET“X”有点问题,似乎当旧的修订块放在块中时(使用“pasteblock”命令),SSGET“X”仍然能够检测到它们。当我切换到SSGET“all”时,我知道SSGET无法再检测块中的块。这是正确的吗?

BIGAL 发表于 2022-7-5 23:31:14

再次阅读您的帖子,为什么不创建一个包含多个rev行的块,然后检查条目是否为空,如果不为空,则查找空白并将值放入下一行?有一种计算属性的方法,而不是使用标记,如果你说每行有3个条目,那么第4个值将是第2行第7行10等等,我在VBA中的某个地方有一个例子,这很容易,它只是从attrib(0)attrib(1)attrib(2)开始,直到用完为止。5行属性(14)

lamensterms 发表于 2022-7-5 23:39:04

不幸的是,我们设置标题栏的方式不起作用。我们将修订块堆叠在标题栏上方。因此,如果只有一个修订,则只有一个修订块。希望这是有道理的。
 
我读了一些关于SSLENGTH轰炸的内容,如果选择集中没有任何内容。那么有没有可能做一些像。。。
 
如果ss为空或不存在,则执行此操作。
如果ss的SSLENGTH为1,则执行此操作。
如果ss的SSLENGTH大于1,则执行此操作。
 
对不起,我无法输入代码,我在手机上。

pBe 发表于 2022-7-5 23:46:41

如果超过1个
 
检查最后一个条目数字/字母的属性值

检查块相对于标题栏的“位置”,以确定最新和最大
 
如果正确使用,Sslength不会爆炸
 
条件演示
 
(defun c:demo ( / number)
           (setq number (getint "\nEnter Number: "))
        (cond
        ((null number)(princ "\nNo value for number"))
        ((minusp number)(princ "\nNegative number?, Why.. oh why..?"))
        ((= number 1)(princ "\nThere could be only one"))
        ( T (princ "\nNumber is more than 1, I'm doing this..")))
(princ)
)

lamensterms 发表于 2022-7-5 23:51:37

你好,pBe,
 
非常感谢您的回复。对于无法获得的选择集,“(null number)”代码是否有效?在这种情况下,我遇到的问题是图形中不存在特定名称的块,并且由于选择集过滤器,无法创建任何选择集。

lamensterms 发表于 2022-7-5 23:58:49

Ps,很抱歉我不能测试,因为我不在电脑旁。
 
再次感谢。

pBe 发表于 2022-7-6 00:05:05

 
对无选择意味着无-->(空ss)

lamensterms 发表于 2022-7-6 00:07:24

啊,太酷了。非常感谢pBe。我会把代码修好,明天早上再测试。
 
再次感谢你们的帮助,我真的很感激。
页: [1] 2
查看完整版本: 仅当S