SketchUp为什么我的外表总是朝着正确的方向发展

我真的不明白为什么有时人脸像图1一样是正确的,有时像图2一样是不正确的MB代码 SKETCHUP_CONSOLE.clearSketchup.file_new# Default code, use = = group.entities.add_face [0,0,0],[0,10,0],[10,10,0],[10,0,0]face.reverse! unless face.normal.z == = = = = = [-d,d,z-o]p \" = #{trim_face.normal}\"trim_face.reverse! unless trim_face.normal.samedirection?(e1_dir)p \" = #{cut.normal}\"# make cut face follow edgescut.reverse! unless cut.normal.samedirection?(e1_dir)p \" cut> Solved by cwatts in post #29 @DanRathbun @dezmo I have created a solution that works using some code I found here and I also added some code in to elucidate what exactly it is that I am doing. I haven\"t tried it yet on multiple faces but this solution should work for anyone where the bottom face is on a single plane. SKETCHUP… The winding order of vertices matter. Also the ground plane may have special behavior. It is expected that faces drawn on the ground plane will be pushpulled upward, so these faces are made to originally have their normal facing downwards so that the face will be facing outward in the resultant 3d solid. The winding order of the vertices for the face being used for followme or the ones for the bottom face making up the edges that I am following? cwatts: face.reverse! unless face.normal.z == 1 如果您想测试面朝下… face.reverse! unless face.normal == Z_AXIS.reverse 如果您查看顶级命名空间的API文档,您将看到API定义了 X_AXIS,Y_AXIS,Z_AXIS(向量),ORIGIN(Point3d)和IDENTITY(Transformation) 我们可以在代码中使用。(只是不要更改任何一个,因为每个人都在使用它们。)cwatts: 用于followme的面顶点的缠绕顺序,还是构成我要跟随的边的底面顶点的缠绕顺序?我的意思是,法线(面向方向)的方向将取决于创建面时给出的顺序。 并且您应该小心地平面,因为在某些情况下,SketchUp会自动反转面,使其朝下。 我明白您的意思。但我仍然有一个问题,那就是我用在followme上的面产生了一个不一致的由内而外的实体。 关于followme,这可能取决于面的缠绕顺序/法向与跟随路径的关系。 将跟随路径的第一部分视为一个方向向量。 您希望跟随路径的面朝向相反的方向(我相信)。 它会自动改变吗?我认为这取决于实体添加面. 如果我每次都输入相同的面点,它不应该产生一组一致的顶点吗? 我对此表示怀疑。 请看TIG的话…… 一个面(有序)红宝石的顶点面法向==Z洎轴。与手动绘制脸。所以为这个设陷阱。每个iloop的循环.顶点顺时针布置在面。正常[参见上面关于异常的内容]面循环总是按顺序排列在其他…cwatts: 如果我每次都输入相同的面点,它不应该产生一组一致的顶点吗一致。 但无论何时创建,都要检查它的有效性。许多API工厂方法将返回false,如果出现错误,则不会创建任何内容。 无论在3D中如何和在何处创建面,关于followme… 请确保: - 面与路径垂直 - 面法线指向相反方向面位于跟随路径的开始处,实际上不需要接触或\"在\"路径上。但是如果路径的开始处和面在同一平面上,则可能是最好的。如果不是,下面将把面移动到路径开始的平面上。 我发现这样做有时会创建一个新边,使后面的部分边为空。问题示例图像896×637 8.21 KB相关代码 # Default code, use = = group.entities.add_face [0,0,0],[0,10,0],[10,10,0],[10,0,0]face.reverse! unless face.normal.z == = = = = [d,0,0]p \" = #{cut.normal}\"# make cut face follow edgescut.reverse! if cut.normal.samedirection?(e1_dir)p \" cut>> The face#edges method gives you the edges in random order. The face#outer_loop with loop#edges Get an array of the edges that define the loop in an ordered> Then you will get moreconsequent consistentresult. … yes and consistent also. @cwatts, I posted a link above where TIG shows using the #outer_loop方法并解释缠绕顺序。 是的,谢谢你。不过,我注意到,它仍然会在正确和不正确之间来回翻转,即使是在外部_循环边.gif示例u问题1626×853 498 KB代码 # Default code, use = == = = = = [d,0,0]p \" = #{cut.normal}\"# make cut face follow edgescut.reverse! if cut.normal.samedirection?(e1_dir)p \" cut> Edit was to change unless to if in cut.reverse! if cut.normal.samedirection?(e1_dir) I guess when you crate the cut face, it\"s bottom edge is overlapping and split the edge of the base face, and destroy the loop. This is preventing the followme to run through on the full path too. Try with this: move the cut face in direction of y a> Yeah shifting the base fixes that issue (Problem for me is that I collect the followme edges in my big program before I create the cut) but the problem of the faces being inside out still persists. I\"m trying to figure it out still but not having a ton of luck. Okay this example works = == = = = = = = [ [-1,-1,0], [1,1,0], [1,1,1] ]# add> The lesson is that when we use a loose collection of edges, the final vertex is not merged, so followme doesn\"t work well. So instead create a followme face (which merges the beginning and end vertices, and specifically use that face\"s outer_loop.edges数组,它以正确的顺序返回。 而且跟随路径显然需要与切割面的最外顶点将扫描的路径大小相同。这将在跟随循环的开始和结束处倾斜最终结果。 最后通过删除跟随面的边来清理跟随面。 这是我正在制作的更大程序的一部分。这是否意味着我不应该使用向量?这个解决方案似乎适用于这种情况,但由于某些原因,它不能正确地转换到我的完整程序中。 我将很快发布它(计划将其开源,需要摆脱ip)。cwatts: 这是否意味着我不应该使用向量? 您需要更具体地回答这个问题。用矢量做什么? (和FTR,我不认为我在上面任何地方说过不使用向量,…具体地或一般地。) (编辑:回答如下。) 您展示了一个有2个问题的示例。这些面是背面的…并且挤压面在跟随路径的开始和结束处没有形成正确的斜面。您给出了产生问题的代码。 我对它进行了编辑,使其正常工作。注意到一些事情。 是的,我要说的是,API程序员在使用PushPull和FollowMe工具的API等价物时有很多问题。论坛上有很多好建议。在SketchUp的主目录中搜索手动使用这些工具,您将了解到同样适用于编码的技巧和怪癖。 同样,在该目录中搜索相同的关键字。可能会找到许多代码片段。DanRathbun:cwatts: 这是否意味着我不应该使用向量? 您需要更具体地回答这个问题。用矢量做什么? (还有FTR,我不认为我在上面任何地方说过不要使用向量,…具体地或一般地。) 哦,…我明白你为什么问这个了。我注释掉了用3个数组作为向量偏移一个点(等于预定义的***10***,)的那条线。 我只是不在乎为什么要这样做(因为它可能来自代码中的其他地方)。 我只希望在需要的地方创建剖切面作为示例。所以我给你的行加了注释,只是用了一个点数组的文字数组,把切面放在需要的地方

SketchUp在扩展仓库中更改扩展的价格不再是即时的…为什么?

我想把这个假期所有的分机都降价,但由于新分机仓库的变动,我不能降价。以前更改插件的成本非常容易,现在需要永远的时间。可以像以前那样更改吗?谢谢!现在是否需要您创建一个新草稿并再次进行审阅?办公室已在假期关闭,因此我们目前正在积压处理审阅队列。它应该很快就会恢复正常。我们正在计划清理编辑/提交过程,以便再次只有一个新的RBZ需要一个新的草稿和审阅。tt琰su:现在是否需要您创建一个新草稿并再次审阅?是的...

日期:2021-06-26 02:00:03 浏览:565

SketchUp访问组的实体以应用/更改材质

您好,据我所知,可以在组中添加实体。是否有任何方法可以访问组的特定面(例如:大小为1米、1米、1米的立方体,由6个面组成)并在每个面上应用不同的材料。谢谢这是完全可能的,尽管你需要使用的技巧取决于你对你想要的脸的了解程度油漆。一些示例:- 如果您自己创建了面,您可以立即应用材质>- 如果您知道感兴趣的面已经在组中,您可以检索它们>然后需要决定数组中的哪个面将接收哪个面材料。那个可以通过测试每个面的正常。注意grep将在组中找到所有的面孔,如果有其他人在场的话,这些面孔可能会包含比你想处理的更多的面孔我也是。...

日期:2021-06-26 05:00:05 浏览:702

SketchUp保持数值而不考虑单位

我已经开始开发一个插件,我希望输入框中的值以当前单位输入。当前如果我指定>如果模型是mm,它就可以工作,但是如果是英寸就不行。如果我只是有了相同的>如果模型是英寸而不是毫米就可以工作。有没有某种自动转换,我可以把@radius的值建立为当前的工作单位?Class:Length 1Class:Numeric 1我很欣赏文档的链接,但我已经了解了这一点,仍然不知道如何转换为当前单位。确保将默认的inputbox维度值设置为Sketchup长度。然后它将自动转换并保存为长度值(以英寸为单位)并以模型单位显示,自动...

日期:2021-06-26 06:00:03 浏览:967

SketchUp复制组/组件时出现持续的ID错误

rigin(在片段中设置)。对于你的mod,明显的旋转中心是短线的末端(右侧):这不是我的目标。这实际上使用了Sasquatch:此外,用户可以通过文本指定副本的数量(使用\"s\")供参考,所有本机工具都使用\"s\"表示边的数量,使用\"x\"表示副本的数量。明白了,按照建议从\"s\"更改为\"x\"。与此同时,我弄明白了为什么我的\"卷积\"代码产生了正确的转换,而你的代码却没有…在你的代码中,你添加每个新实例,同时对其执行转换,这只会导致相对于预选组的局部轴的转换,而是关于模型空间(或worlds...

日期:2021-06-26 07:00:04 浏览:727

SketchUpC点/引导点的样式是否可行?

我正在测试用点云做房子模型。导入点(dxf),SketchUp将其转换为许多cpoint。使用这些进行捕捉的建模很好。我的问题是:是否可以\"样式化\"cpoints?比如尺寸、颜色等?更多的视觉控制可能会更好。另外,API中是否有其他实体可以将这些CPoint转换为更小/更精细/更可定制的CPoint?通常,他们应该在渲染选项散列(样式)中采用指导色的颜色,如果\"按标记颜色\"处于禁用状态。如果\"按标记颜色\"处于启用状态,则他们将使用层/标记颜色显示。实验表明,指定材质不会使他们按材质显示。(即,指...

日期:2021-06-26 07:00:04 浏览:628

SketchUp如何获取html值

从HTML对话框获取值时出现问题。This is callback function at sketchup.add_action_callback(\"receiveValue\") { |not_used, id, val|receive_value(id,val)}def receive_value(id,>I try to get input value like this, but I can\"t get>I can\"t get dlgValues, so I checked the size...

日期:2021-06-26 12:00:03 浏览:797

SketchUp如何判断V-Ray渲染是否已完成

你好!我正在使用V-Ray自动渲染,但遇到了一个问题,即无法知道渲染何时完成。目前我渲染场景,然后等待20秒,更改模型的材质,然后再次渲染,但如果渲染在5秒内完成,这是一个非常无效的系统。到目前为止,我已经完成了尝试了live_scene.renderer?布尔值和几个VRay::Renderer::IDLE_变量,但没有成功。问题是,在从扩展渲染循环时,布尔值不会更改,因此代码总是超时,即使渲染更快完成。下面是一些示例+=1if i>20puts\"超时渲染\"BreakEndModel.commi...

日期:2021-06-26 14:00:01 浏览:1141

SketchUp rubyapi:将工具栏停靠到其他工具栏

我已经创建了自己的工具栏,但是我不知道如何将它自动停靠到行上,所有其他工具栏都已经位于行上(在下拉菜单下)。有什么提示吗?DanRathbun在post#2中解决的用户必须进行对接。您所能做的就是调用#restore。用户必须进行对接。你所能做的就是打电话给#restore4...

日期:2021-06-26 15:00:04 浏览:799

SketchUp从多个曲面创建多个组

大家晚上好,我有一张约2000个小表面的图纸,我想分组制作,然后推拉。创建曲面后,如果图形是新的,下面的脚本工作得非常好。当我只选择第二个或第三个曲面时,它仍然运行得很快,但是当我选择了一个并且在脚本中有一个以前创建的组时,它只以一半甚至更少的速度运行,脚本变成\"没有响应\",但最终在后台运行一段时间后它就完成了。即使我重新启动sketchup甚至pc并重新运行脚本,它仍然很慢。当我分解所有组并进行另一个选择时,脚本又变快了。如果我做错了什么,也许有人能告诉我。我的笔记本电脑有16 GB内存,图形卡是,并...

日期:2021-06-26 20:00:05 浏览:620

SketchUp有没有办法加快添加面和边的速度?

我正在创建一个进口商。我用实体添加面以及实体添加边导入一个模型,但是要花很多时间。54234个面需要11秒来添加面85417个边需要9秒来添加边这是一个简单的模型。对于复杂模型,创建面和边的时间太长,无法接受。我怎样才能加快速度?谢谢。您是否创建了撤消操作并在操作过程中关闭了UI?- Sketchup::Model#start_operation- Sketchup::Model#commit_operation您是否考虑过创建虚拟多边形网格…- Geom::PolygonMesh4class…然后在操作中...

日期:2021-06-27 00:00:03 浏览:836