SketchUp设置和获取信息的Html对话框

我正在尝试使用htlm对话框从Ruby发送和获取一些数组信息。我是一个初学者,我有一些问题,以了解他们如何交换信息。我将介绍一个包含两个数组的简单示例:第一个数组只显示Ruby模型值,没有修改它们的权限;第二个数组显示Ruby值(甚至是空的),有修改它们并将它们发送回Ruby的权限。谢谢。 你的背景和编程能力如何?你精通Ruby、HTML和javascript吗?您学习过SketchUp rubyapi文档和示例吗? 我想说的是,当你没有表现出任何努力的时候,我们中的许多人都不愿意\"为你做家庭作业\"你自己。拿着尝试一下,然后就代码中遇到的特定问题寻求帮助。Geordie: 我是初学者… 请参阅我在Ruby API子类别4中发布的Ruby学习资源…Ruby Learning Resources[WikiLists]Ruby API下面所有七个列表都设置为维基索引底漆和;指南bookstutorialreferencetemplatesnewideas此线程始终是一项正在进行的工作。 …并且请将您的Ruby编码问题发布到Ruby API子类别4中。Geordie: 我将欣赏一个简单的示例…;第一个数组只显示Ruby模型值,没有修改它们的权限,这就是我们所说的\"只读\"访问,)作为一个新手的例子。 所以我需要另一种类型的SketchUp数据作为一个更简单的例子。 (1)您希望看到什么类型的\"模型值\",但不希望更改?Geordie: …第二个数组显示Ruby值(甚至是空的),允许更改这些值并将其发送回Ruby。 (2)您希望在HTML对话框中编辑哪种类型的\"模型值\"?亲爱的丹。谢谢你的及时回复。你的许多帖子我都看了很久了。很高兴与你联系。让我解释清楚。我用动态属性(set&get)解决了这个问题,2009年12月9日ScottLininger回复说,如果消费者看不到或编辑这个选项,就显示\"无\"(NONE),Geordie: 我使用了我的Ruby数组,但我不知道如何在Ruby和html之间共享我的数组(这不像set&;进入DA)。 实际上,您将数组和散列作为JSON文本发送到对话框的JavaScript中。维基百科网4JSON 4 JavaScript对象表示法(JSON,发音为/ˈdʒeɪsən/;也称为/ˈdʒeɪsɒn/[注1])是一种开放的标准文件格式和数据交换格式,它使用人类可读的文本来存储和传输由属性-值对和数组数据类型(或任何其他可序列化的值)组成的数据对象。它是一种非常常见的数据格式,有各种各样的应用程序,例如在AJAX系统中替代XML。JSON是一种独立于语言的数据格式。它源于JavaS……非常简单,Ruby的JSON库通常已经被SketchUp加载了。但是你可以在你的代码的顶端通过要求RubyJSON库像这样… require \"json\" unless defined? JSONGeordie: Ex:>在Ruby中,被发送到html,被显示在一个表中> 当然变量名可以是你想要的任何东西,并且每边都相同或不同(例如,\"Ruby-side\"和\"JavaScript-side\"。)传递到对话框,我们在JSON.parse方法参数周围使用单引号,因为JSON文本在字符串和成员名称周围内部使用双引号。 ADD:我们还可以非常轻松地发送SketchUp RubyAttributeDictionary对象数据,因为它们混合了Ruby的Enumerable模块,这给了它们一个#to_h方法来产生一个散列。 # Where dict is a reference to some = = JSON.parse(\"#{json}\");] ) (当然,您应该检查属性字典getter调用是否返回nil)。 …接着。 一旦您的数据数组(或JS对象)位于对话框端,您就可以使用DOM。MDN Web Docs 2文档对象模型(DOM)2 文档对象模型(DOM)通过表示文档的结构(如表示内存中网页的HTML)将网页连接到脚本或编程语言。 例如,空页加载后,将有一个***12***对象它表示HTML***13***元素。 您可以将***14***元素添加到此元素中,以便开始在其中构建表… ***15***类参数替换方法。 要么…***16***1要么***17***1。 这两个方法都将接受替换值的哈希,替换所有***18***如果需要在样式表和/或对话框的JavaScript代码中设置动态变化的值,我可以用匹配的***19***符号键的hash值替换文本中的子字符串。 ***20***数据字段的参数。我在迭代器中这样做,将每个HTML片段附加到一个列表字符串对象。 最后,在将HTML文本提供给对话框对象之前,我用CSS和JavaScript代码文本替换对话框主HTML文件中的两个***21***和***22***参数,并替换HTML的***24***元素中的***23***参数然后我做了一个***25***并显示了这个对话框。 我们离不开使用一些JavaScript,因为我们必须为按钮点击和编辑控件更改创建事件侦听器。 很清楚如何使用JSON将我的数组发送到Java脚本。但我仍然不明白如何在Java中获得它(相同的JS数组名?)在htlm窗口中检查/填充并关闭表之后,我应该如何将它发送回Ruby。Geordie: 很清楚如何使用JSON将数组发送到Java脚本。但我还是不明白我该怎么用Java来获得它… 小心。JavaScript与Java编程语言不同。两者是不同的。Geordie: ..(相同的JS数组名?)… 正如我所说的…DanRathbun: 当然,变量名可以是您想要的任何名称,并且在每一个方面都是相同或不同的(即\"Ruby侧\"和\"JavaScript侧\") Ruby和JavaScript标识符有不同的约定,但是它们都是松散的,允许大多数的引用标识符的一种。 JS通常使用以小写字母开头的var标识符,它们是***26***(有时称为\"snake case\"。 Ruby约定使用***27***作为类和模块名,并使用变量和方法标识符作为小写,带有下划线分隔符。例如…> 但是,如果您使用类似Ruby的变量名,比如***28***,JavaScript也不会在意。 但是如果您使用简单的小写标识符,比如***29***或***30***,等等。,两边的名字可以是一样的,你不会打破任何惯例。Geordie: …当我在htlm窗口中检查/填充并关闭我的表时,我应该如何将它发送回Ruby。 正如在***32***…基本类型(如布尔)的***31***类文档中所说,数字、字符串、数组和散列在Ruby和JavaScript之间自动转换。 您只需记住,JavaScript使用对象来实现Ruby所称的***33***2。因此,如果将JS对象传递给Ruby对话框回调过程,SketchUp API会将其转换为Ruby***34***2。 mdnweb Docs 1使用对象1的JavaScript是基于一个简单的基于对象的范例设计的。对象是属性的集合,属性是名称(或键)和值之间的关联。一个属性的值可以是一个函数,在这种情况下,该属性被称为… 所以…让我们假设您的数据数组在Ruby端被命名为***35***(attributes的缩写),您将它传递给名为***36***的对话JavaScript。(JS没有***37***,所以您可以省略***38***前缀。) 从对话框的JS中,您需要单击一个按钮将更新的数组发送回Ruby> *此代码段假设您的HTML有一个***39***元素,其***40***设置为***41***。 那么您的代码必须已经将操作回调附加到Ruby dialog对象,以便从对话框接收更新。所以在Ruby中… ***42***元素放在***43***之前,在这里定义了元素及其ID。因此,我将***44***元素移到***45***之后。 我看到的第二个错误,在对话框打开后,我打开了Chrome DevTools窗口(正如我告诉您的那样),并切换到Console选项卡。 因此

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

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

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

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

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

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

SketchUp保持数值而不考虑单位

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

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

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

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

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

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

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

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

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 浏览:818

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

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

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

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

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

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

SketchUp从多个曲面创建多个组

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

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

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

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

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