Roy_043 发表于 2022-7-5 17:17:22

@李:
关于代码的这一部分,我有两个问题:
(cond
((LM:catchapply 'vla-getobject (list exd "acad_sortents")))
((LM:catchapply 'vla-addobject (list exd "acad_sortents" "acdbsortentstable")))
)
 
1.
即使acdbsortentstable已经存在,也可以使用vla addobject时,为什么要使用这个cond语句。
2.
为什么将LM:catchapply与vla addobject一起使用?在国际海事组织,这是没有必要的。

Pukenzz 发表于 2022-7-5 17:20:50

我不确定我是否遗漏了什么,但当我测试时,它不会将块内项目的颜色15发送到后面。jweber,你能用积木吗?

Lee Mac 发表于 2022-7-5 17:26:39

 
罗伊,我已经更新了我之前的代码,谢谢。
 
在最初设计程序时,在尝试添加字典对象之前尝试检索字典对象更符合逻辑,当然,在没有意识到ActiveX addobject方法在遇到现有对象时的行为与add方法类似的情况下-然而,尽管更简洁,但根据文档,这可能会导致效率低下:
 

jweber 发表于 2022-7-5 17:29:25

是的,李的代码运行得很好,我刚刚测试了他的更新版本。我的理解是,这是特定于设置为特定颜色的对象的,例如15,而不是逐层颜色等。接下来,我不确定Lisp在哪里或为什么不适用于您,但同样,它确实可以按要求工作。

Pukenzz 发表于 2022-7-5 17:32:54

废话。不,我的坏了。标准线条、文字等都做得很好。但如果是块,则绘制顺序不变。继续测试。。。。

Pukenzz 发表于 2022-7-5 17:35:20

这是我正在测试的样本图。
样品图纸

jweber 发表于 2022-7-5 17:36:30

 
我认为你误解了lisp的功能。块是单个实体,所述块内的所有内容都位于其他对象的上方或下方。不能在另一实体下方的块内有一些线,而在同一实体上方的同一块内有一些线。也就是说,lisp的功能是将所有颜色为15的对象发送到后面。
 
在您的示例中,打开“块”并将文本发送到后面,这样它就不会被看到。保存块,关闭块,然后运行lisp。它通过将图案填充(颜色15)发送到后面,有效地将文本带到前面。
 
我认为你需要回顾这篇文章的开头来做你需要做的事情。。。

Lee Mac 发表于 2022-7-5 17:42:20

 
感谢您花时间测试该程序,非常感谢。
 
 
为了完整性,程序应在所有显示与指定颜色相同的“显示”颜色的物体上运行;通过“显示颜色”,我指的是颜色属性设置为给定颜色的对象,或者其颜色属性设置为ByLayer,并且相应的层颜色设置为给定颜色的对象。
 

Pukenzz 发表于 2022-7-5 17:44:49

好吧,我不会一直用不同的方式问这个问题,直到我得到我想要的答案。我诚实地测试,试图理解和解决问题。我对显示顺序中的块是全部还是全部都没有感到满意。
 
见附件pdf。第一页表示我可能在绘图中遇到的内容,这意味着当我进入现有绘图时,不知道任何绘图顺序的状态。我确实有意确保14条垂直线在后面,这样我就可以确保颜色15的表现符合预期。第2页表示手动向后发送所有水平线。正如你所见,它们在垂直线后面绘制。第三页通过将14条垂直线放回并运行lisp来表示“重置”。lisp似乎将不是块的行分组放在了后面,但保留了原来的块分组。李·麦克韦伯我读了你们的话,我只是不明白。你有没有可以上传的样本,我可以测试一下,看我是否得到了和你一样的结果?
测试结果。pdf

jweber 发表于 2022-7-5 17:47:34

 
感谢Lee的更正——这就是lisp应该如何工作,实际上我是如何使用它的,但在尝试解决Pukenzz的问题时,我犯了一个错误。再次感谢您的代码
 
@普肯兹
我想我终于明白你的问题了。Lee的代码只影响图形中每个块中的实体。您正试图使用他的代码将特定的块发送回,这不是它的本意。
 
我打开了你的上一个文件,复制了你的“块”,所以我有3个副本,保留了原始块,将第二个块设置为一个新层,其层颜色设置为15,我将第三个块设置为颜色15,不管层。完成了-Lee的代码用于块,David的代码根据需要将这两个颜色的15个块发送到后面。同样,Lee的代码适用于块中的实体,您希望影响图形中的所有实体,因为它们与颜色15相关-因此您的块需要表示为颜色15。
 
希望这是有意义的,我很高兴能提供帮助,我从这个网站上获得的知识和帮助永远不会得到完全的回报-所以我很高兴我有机会帮助别人。
页: 1 [2]
查看完整版本: Lisp发送*显示*颜色