开源改变世界

材料数据库 #39

推推 grbl 2年前 (2023-02-03) 191次浏览
关闭
jorgerobles 打开了这个问题 2016 年 11 月 19 日 · 67条评论
关闭

材料数据库#39

jorgerobles 打开了这个问题 2016 年 11 月 19 日 · 67条评论

评论

材料数据库 #39
合作者

#31引用,我打开此问题以获取更多详细信息。

建议:这将影响两个部分

  • 在设置上:编辑材料数据库在屏幕上需要一些空间。我不知道我们是选择模式,还是选择一个没有工作区的全新部分。无论如何都可以显示一个可编辑的数据网格(excel like … http://adazzle.github.io/react-data-grid/index.html)显示材料的名称,操作配置文件标签(切割,雕刻等) ) 然后是操作速度、操作强度、操作次数,也许还有一些我不知道?

  • 在 CAM 上:操作选择器旁边会有一个向导图标,并启动一些允许您选择材料/操作标签的模式。然后操作设置将被覆盖,就像机器配置文件中描述的方式一样,允许为专家进行调整等等。

@openhardwarecoza,@tbfleming对此有什么想法吗?

材料数据库 #39

我对 Modals 很满意…没有异议(:

在 2016 年 11 月 19 日下午 1:06,“jorgerobles” notifications@github.com写道:

#31 #31引用,我打开
此问题以获取更多详细信息。

建议:这将影响两个部分

在设置上:编辑材料数据库在屏幕上需要一些空间。我不知道我们是选择模式,还是选择一个没有 工作区
的全新部分。
无论如何都可以显示一个可编辑的数据网格(excel like …
http://adazzle.github.io/react-data-grid/index.html
http://adazzle.github.io/react-data-grid/index.html ) 显示
材料的名称、操作配置文件标签(切割、雕刻等),
然后是操作速度、操作强度、操作次数,也许还有
一些我不知道的?

在 CAM 上:操作选择器旁边会有一个向导图标,
并启动一些允许您选择材料/操作标签的模式。
然后操作设置将被覆盖,就像
机器配置文件中描述的方式一样,允许为专家进行调整等等。

@openhardwarecoza https://github.com/openhardwarecoza ,@tbfleming
https://github.com/tbfleming对此有何想法?


你收到这个是因为你被提到了。
直接回复此电子邮件,在 GitHub
#39上查看它,或将线程静音
https://github.com/notifications/unsubscribe-auth/AHVr20T31WYPOJtuABWG3VQ9sONLovDtks5q_tgmgaJpZM4K3OgM

材料数据库 #39
成员

我还想不出模态的替代品,所以继续做吧。

材料数据库 #39
合作者作者

我正在对数据库的状态进行建模。我不知道是使用普通数据集行(sqlite、mysql)还是做树文档(mongodb)。此外,我计划只存储每种材料的操作设置,因为不同的操作(可能)有不同的设置

你怎么认为?

[
    {
        "uuid":"plywood_3mm",
        "material": {
            "name":"Plywood",
            "thickness":"3mm",
            "notes":"Standard Regular Plain Plywood, not thick nor thin."
        },
        "operations":[
            {
                "type":"Laser Engrave",
                "tag":"Engraving just a little",
                "settings":{
                    "cutDepth":"",
                    "laserPower":"",
                    "passDepth":"",
                    "cutRate":""
                }
            },
            {
                "type":"Laser Engrave",
                "tag":"Cut through",
                "settings":{
                    "cutDepth":"",
                    "laserPower":"",
                    "passDepth":"",
                    "cutRate":""
                }
            },
            ...
        ]
    } 
]
材料数据库 #39
成员

这会在云服务中吗?树会更容易;该数据的完全规范化 SQL 模式至少需要 5 个表:材料、机器、材料-机器、操作、操作-设置。

Nitpick:那不是uuid。uuid 具有特定格式,通常对用户隐藏:d134d8c5-0ccb-4a23-bc22-e6735e4de874

材料数据库 #39

没有云!
现代浏览器具有 SQL 功能……

在 2016 年 11 月 19 日星期六晚上 9:05,Todd Fleming notifications@github.com
写道:

这会在云服务中吗?树会更容易;该数据的
完全规范化 SQL 模式至少需要 5 个表:
材料、机器、材料-机器、操作、操作-设置。

Nitpick:那不是uuid。uuid 具有特定格式,通常
对用户隐藏:d134d8c5-0ccb-4a23-bc22-e6735e4de874


您收到此消息是因为您订阅了此线程。
直接回复此电子邮件,在 GitHub
#39(评论)上查看,
或将线程静音
https://github.com/notifications/unsubscribe-auth/AAGpFULgXmEyR0Gj64sphassfc43U5KMks5q_1aJgaJpZM4K3OgM

Courage et bonne humeur。

材料数据库 #39
成员

浏览器往往会在您最意想不到的时候擦除本地存储。

材料数据库 #39

流行设置的预配置配置文件可能会内置。
已连接的用户可能很高兴选择配置文件共享……最终。

在 2016 年 11 月 19 日晚上 10:10,“Todd Fleming” notifications@github.com写道:

浏览器往往会在您最意想不到的时候擦除本地存储。


你收到这个是因为你被提到了。
直接回复此电子邮件,在 GitHub
#39(评论)上查看它,
或将线程静音
https://github.com/notifications/unsubscribe-auth/AHVr22elGEQEoAWz3Ga-nQGF8YSRG8XPks5q_1eSgaJpZM4K3OgM

材料数据库 #39
成员

在那种情况下,将它放在一个 json 文件中可能是最简单的。

材料数据库 #39
合作者作者
jorgerobles 评论了 2016 年 11 月 20 日  

是的,我知道这不是真正的 UUID,只是伪造数据并且不确定要使用什么? @tbfleming
现在确实是一个 json 文件,在关联的 reducer 中硬编码“需要”(尚未提交)

我征求了关于文档或关系数据库模式的意见,只是针对你们所有人提出的相同问题,但我们需要一种有效的方式来存储数据。我稍微更喜欢文档,但关系相对更容易查询,更简单的表呈现/编辑等(只是我的意见,那里有很多反对意见)。

我想我们还需要数据中的一个额外参数,因为操作在很大程度上取决于机器。我的 3W 二极管需要 15 次,全功率,800mm 以切割 3mm 胶合板,而 K40 需要一次,也许是几次。这可能只是与设置配置文件标签配对(@openhardwarecoza,你指的是什么?)

关于云/离线/面向客户端的应用程序,我的观点是,为了使 LW 成为有用/内存快乐的软件,我们需要放弃使用“浏览器内”数据存储,并转向客户端/服务器架构,作为客户端我们现在正在开发的部分,以及server,一个本地节点服务器(如 LW3 服务器),它应该管理与存储层的连接:文件、数据库或云,但这可能不排除只用材料数据库加载 JSON 文件每次启动应用程序和/或中继到 LocalStorage 时。

(但我担心应该谨慎管理 LocalStorage 的使用,因为转储/读取序列化数据,并且由于加载后没有存储而耗尽 ram——好吧,也许只有几个极客会使用材料数据库耗尽 ram,如果有的话)

所以,要完成? 如果你们都同意,

  • 目前,我将在设置上使用具有相同模式的 JSON 结构:初始硬编码配置文件,存储在 LocalStore 上,具有 [Export] 、 [Import] 和 [CRUD] 操作。
  • 我将使用与机器配置文件绑定的 machine_profile 属性扩展模式。(这可能是一个骗局,因为配置文件可能会被删除)
  • 我将尝试实现不太复杂的 UI 来编辑树,但我肯定会向您征求意见,因为构建填充此复杂数据集的最佳方式并非易事
材料数据库 #39
成员

我将使用与机器配置文件绑定的 machine_profile 属性扩展模式。(这可能是一个骗局,因为配置文件可能会被删除)

redux 的做法是:多个 reducer 监听删除操作。例如,CAM 的 Operation reducer 监听文档删除。

材料数据库 #39
合作者作者

WIP(尚未提交)

  • 从配置文件面板启动
  • 使用顶部过滤器选择机器配置文件。使用当前活动的机器配置文件。
  • 按材料排序=>操作(按机器配置文件过滤,按操作类型排序)双击展开材料行
  • 能够处理多种操作性质(每种操作类型都有不同的参数)
  • 使用 flexbox 表!?

要做:(……很多!)处理状态,编辑保存的参数,CRUD操作。

材料数据库 #39
合作者作者
jorgerobles 评论了 2016 年 11 月 25 日  

我在我的 fork 中推送了关于材料数据库的最新开发。我在几个方面遇到了麻烦,所以需要建议/帮助。

@tbfleming 我已经公开(导出)操作字段和操作类型,因此材料数据库可以重复使用它来检索参数,但我不能使用除了在 operation.js NumberInput(命名空间?)上公开的其他输入引用(NumberInput)。我稍微修改了这个组件以使其足够抽象(而不是硬编码冲突样式)。

有没有办法连接到状态的子集?我想连接到单个材质以保持组件易于管理。

  • 关于这个我想提出一个统一输入组件的建议。我从设置“forms.js”输入开始,但操作输入被命名为相同的并且不是相同的组件接口。
  • 第二个建议是尽可能减少硬编码样式。我做了一个很好的 flex 表数据 (react-flex-data) 的分支,但是有可怕的硬编码边框、字体、高度……等等。

多谢!

材料数据库 #39
成员

@jorgerobles如果你愿意,你可以用类名替换我的组件中的样式。我出于懒惰而使用样式。

function Foo(..., className = 'bar') {
    return (
        <foo ... className={className} />
    );
}

function MoreComplex(..., fooClassName = 'foo', barClassName = 'bar') {
    return (
        <foo ... className={fooClassName}>
            <bar ... className={barClassName} />
        </foo>
    )
}

关于这个我想提出一个统一输入组件的建议。我从设置“forms.js”输入开始,但操作输入被命名为相同的并且不是相同的组件接口。

您可以重命名我的组件。例如NumberInput->ObjectNumberInput因为它在对象的字段上运行。

你的编辑器支持自动格式化吗?我使用 vscode 的自动格式化程序 (shift+alt+f)。

材料数据库 #39
合作者作者
jorgerobles 评论了 2016 年 11 月 26 日 通过电子邮件
材料数据库 #39
成员

小心抽象太多。例如,如果我从 NumberInput 中删除字段内容,它看起来像这样:

function NumberInput({value, style, onChange, onFocus}) {
    return (
        <input type='number' step='any' value={value} style={style} onChange={onChange} onFocus={onFocus} />
    );
}

它与 plain 唯一不同的地方input是 settypestep,这不是很有用。

材料数据库 #39
合作者作者
jorgerobles 评论了 2016 年 11 月 26 日 通过电子邮件  

材料数据库 #39
合作者作者

材料数据库 #39  加了 增强 标签 2016 年 12 月 8 日
jorgerobles 添加了对引用此问题的 jorgerobles/LaserWeb4 的提交 2016 年 12 月 21 日

材料数据库 #39
合作者作者

喜欢 (0)