1. 首页
  2. SketchUp

SketchUp组件。粘合到缺陷

似乎有一个bug,当一个组件粘到一个面上时,它会松开所有粘到它上的组件。
我做了一个改进,可以将一个组件粘到另一个组件上。粘贴到的bug?RubyAPI这里是完整的优化。检查它,看看是否可以发现更多问题refine::Sketchup::ComponentInstance doclass Sketchup::ComponentInstancedef==self)|(!c、 胶合的_到0.0?&c.胶合_到父级==definition&>
这是一个示例模型来显示问题。
粘合错误.skp(44.4 KB)
打开模型并执行以下代码:
def self.entity_from_name(name)Sketchup.active_model.entities.select { |e| e.get_attribute(\”test\”, \”entity\”) == name = = #{@box2.glued_to}\”Sketchup.active_model.abort_operationendtest#outpputs#
Why is there a class块在refine块中?
为什么没有精化模块包装精化语句?DanRathbun:
为什么精炼块中有一个class块?因为我正在扩展Sketchup::ComponentInstance类的功能,作为扩展名称空间中的一个细化。所以我可以做instance.get_glued_instances或instance.glue_to(target_instance).DanRathbun:
为什么没有精化模块包装精化语句?
我的产品代码在扩展命名空间中。我将在示例代码中添加一个通用名称空间,以防有人复制它。
Neil_Burkholder:
因为我将Sketchup::ComponentInstance类的功能扩展为扩展名称空间中的一个细化。
这不是文档告诉我们如何细化类的。检查底漆…
https://ruby-doc.org/core-2.5.5/doc/syntax/refinementsu rdoc.html2
调用的class identifier参数是由block参数细化的类。Neilu Burkholder:
我的产品代码在扩展名称空间中。我将向示例代码中添加一个通用名称空间,以防有人复制它。
需要一个优化模块来成为扩展名称空间模块中Module#using调用的参数。
您根本没有显示using调用。
有趣的是,Module#refine()方法本身返回一个可以分配给标识符的匿名优化模块。(这个推测是不正确的。)(折叠)因为返回的匿名模块是Ruby透明持有的精化。
不正确-忽略例如:
*# file: \”lib/Refinements.rb\”module>
And then in some extension …
module Authormodule SomePluginrequire File.join(__dir__,\”lib/Refinements\”)include Author::Lib::Refinementsusing RefinedComponentInstanceendend
但是…您不分配*Module#refine()返回的匿名模块,…因为refine调用适用于调用它的接收器模块。接收器模块是\”精化模块\”。
因此,假设库子模块Refinements对几个到多个API类进行了多次精化。
而且,所有refine()调用的返回都没有指定给标识符。
然后\”使用\”模块就可以\”使用\”包装模块,它的所有改进都应该是\”可用的\”。
module Authormodule SomePluginrequire File.join(__dir__,\”lib/Refinements\”)using ::Author::Lib::Refinementsendend
Hm…这很奇怪。添加glueto关系的内部代码。我没有看到任何会破坏现有缺陷的东西。
您是否已将此缺陷记录在问题跟踪程序中?ttu su:
您是否已将此错误记录在问题跟踪程序中?
不,我没有
再次,我想指出你上面的例子是不正确的,实际上修改APISketchup::ComponentInstance类是正确的命名空间。
感谢您的支持rsistent.
那么为什么这个代码不==self)| |(!c、 胶合的_到0.0?&c.胶合_到父级==definition&c.parent>
在***17***上我收到一个错误
***18***
我还没有花时间阅读您发布的链接,但我一有空就来(我应该在工作)。

SketchUp组件。粘合到缺陷 为WP2原创文章,链接:https://www.wp2.cn/sketchup/sketchup%e7%bb%84%e4%bb%b6%e3%80%82%e7%b2%98%e5%90%88%e5%88%b0%e7%bc%ba%e9%99%b7/