Stermaj 发表于 2022-7-6 15:16:16

对于UCS,我计划让其他命令引用它们,所以我想我也可以将其作为一个单独的函数,但我想我可以将它们切换回来。至于重复,我想给它一个帧速率,这样你就可以在它们旋转时观察到边,而不是瞬间移动。不过,我确实在第一个函数中纠正了初始化ss,谢谢您的帮助。在您的原始代码中,我想知道,第一个if语句中的代码部分做了什么:
 
(如果(setq ss(ssget“X”(列表(cons 0“插入”)
(if(getvar“CTAB”)(cons 410(getvar“CTAB”))
(cons 67(-1(getvar“TILEMODE”аа)ааааааа)а)
 
我知道ssget“x”选择了所有内容,但我不知道其余的是什么。再次感谢你的帮助,我真的很感激。有没有办法把dwg文件发给你?

Lee Mac 发表于 2022-7-6 15:20:13

你可以压缩文件,或发送到我的电子邮件地址,我将PM给你
 
至于另一位代码:
 

(if (setq ss (ssget "X"; Scan the whole Database
                   (list; Make a Filter List
                     (cons 0 "INSERT"); Get Blocks (and Xrefs)
                         (if (getvar "CTAB"); If there is a variable CTAB
                           (cons 410 (getvar "CTAB")) ; Use it
                           (cons 67 (- 1 (getvar "TILEMODE"))))))); Otherwise use TILEMODE

 
 
AutoCAD R14没有CTAB,因此要设置空间,必须使用TILEMODE,因此我考虑了所有版本。

Lee Mac 发表于 2022-7-6 15:20:47

我似乎不能PM你-我想你可能限制了你的帐户-尝试压缩dwg文件。

Stermaj 发表于 2022-7-6 15:26:54

我将文件发布到我运行的网站:
纽约大学。edu/clubs/shalhevet/Cube_8。图纸

Lee Mac 发表于 2022-7-6 15:27:41

我想我可能已经破解了它——实际上根本不需要这个文件。
 
我认为我们可能忽略了一件事,当您检索selectionset时,IF语句中引用和测试的点在WCS而不是UCS中(只是认为您可能没有意识到)。。。。
 
不确定这是否会影响事情。。

Stermaj 发表于 2022-7-6 15:30:33

我计划好了,在运行ssget之前,我实际上会将UCS重置为WCS,以防发生冲突,然后,只有当它进行旋转时,才会恢复这种情况下的特定UCS,这实际上只是建立旋转平面。

Lee Mac 发表于 2022-7-6 15:35:33

好吧,我很困惑,为什么它没有表现出你想要的。
 
我想不出还有什么会导致它失败的当你运行每个函数时,就像你只运行了一个一样,所以我看不出一个函数会如何影响另一个。

Stermaj 发表于 2022-7-6 15:38:50

可能是数据库中没有更新每个块的坐标吗?如果是这样,是否有可能为选择过程制定另一套标准?

Lee Mac 发表于 2022-7-6 15:40:50

 
不,我不认为会是这样。
 
我很困惑,因为每个函数都是一个独立的函数,那么你可以手动旋转这些块,然后运行这个函数,情况也是一样的。
 
也许可以尝试这样做-手动旋转块,就像运行其中一个函数一样,然后尝试运行另一个函数。
 
除此之外,我没有主意了
 

Stermaj 发表于 2022-7-6 15:44:51

是的,手动旋转块,然后运行其中一个函数仍然会导致问题。查找标准可能是问题所在吗?
页: 1 [2]
查看完整版本: 基于位置选择对象