粉丝1724获赞2250

大家好啊,呃,最近比较忙啊,一直没有更新过什么内容,呃,今天呢就是 我们这个还还是这个很多人呢,不会就是说这个我们这个软件啊,呃,不会组合起来使用啊,呃,我今天呢我就做一个这个应用的案例吧, 就是用我们这个软件来做一个,呃,试压资料,首先呢我们要做这个试压资料呢,这个是我的一个 试压包的一个内容啊,它有七个管线啊,七张七个管线号的一个数据啊,首先把这个七个管线号的数据库呢,我给他单独摘摘出来啊,就是这样, 这里一共是七条线,是吧?然后这是技术数据,这是那个焊工,这是焊包一览表啊,这个数据库在我们的这个数据库软件教程里面都讲了,具体就是怎么填写, 然后现在呢就是使用这个数据和这个派克派克沃斯来结合来做一个试压包。 首先呢我们这个数据库你要整好啊,就是你的焊口号,焊工号,焊接日期啊,焊接位置啊, 对吧?要要和图纸这个相对应,然后呢这个信息要填全,对吧?然后这个 这些后面的这个需要做的碳伤啊,要把它完善啊,就是要按比例给他检测,达到他的检测比例。 呃,然后呢就是如果有反修的话,呃,需要扩碳的,要把扩碳给他,扩碳合格啊,具体就是这个 展示一下这个东西具体一步一步怎么来完成的啊?首先是我们使用我们这个数据库软件啊,首先设置我们的数据库路径, 好,这个数据库就被加载进来了啊。呃,看到我们这个三五零三的里面已经有了这个晒报的一个信息, 然后呢我们第一步就是,呃,首先第一步你肯定要把这个数据库,这些焊工号啊,这个委托呀,报告啊,这些内容你要填好 啊,包括你的这个焊工的资质你要核对。好,那我这里是使用了一个函数,当然这个里面也可以操作,首先我们是先进行一个无损检测的一个检查啊,那我我这里呢,我先这个把这个保存一下, 我先做一个副本啊,好,然后呢就是我先给它删掉几个,比方说我这个百分之二十的把这个 p t 啊删掉,删,给它删掉一个,然后随便再找一个地方呢,这个 r t 啊, 我再给他删掉一个。呃,然后这个就这样吧,保存一下啊,这边重新加载一下,是为了演示一个我们的这个怎么操作的啊?然后就是进行一个无损检测的一个检测 啊,这里结果就出来了啊,他会提示你啊,这个管件号 啊,它制管连接接头缺了一个固定口啊,就 因为按照我们这个规范,百分之十以上呢都要检测这个制管焊缝啊,这个第一它是一个制管焊缝在这里呢,你对这个制管焊缝没有做检测啊,那说那你就是这个 不是,是不符合规范的,所以说这一步就检查出来了,你这个检测有问题。然后呢你检查出来之后,你要对这个第一做一个啊委托,比方说我这里填有委托编号啊, 呃,我就这个具体的编号我先不填了,填完之后,然后呢你可以从这里啊检测委托,呃,有点有点卡啊,重新启动一下, 呃,找到我们这个刚才填的这个委托编号,就是这一个,然后呢,呃,导出一下啊,他就导出到我们设置的一个存储目录 在这里啊,他的尾数编号是 p t 啊,你填了具体的编号,他这里就会填写具体的编号,你的这个尾数单啊就生成出来了,然后你把它啊,就是走下面的流程签字啊,检测啊之类的啊, 然后就是还有一个,下面还有一个啊,这个缺一个百分之二十的,是吧?呃,一共是 应减合计是三道口啊,你的小于五百的这个对焊接头一共是九个啊,一共是九个,然后呢,你减了应减两个啊,那就是固定口减一个,活动口减一个,然后你委托了呢?只委托了一个固定口 啊,那那就是缺一个,还缺一个活动口,并且呢你的数据库里面有活动口啊,我们可以看一下刚才删掉的这个百分之二十的,对吧?他一共是九道口, 然后你检测了一道,还缺一道啊,这一个,呃,在我们日常数据的维护过程中你就要把这些缺陷给消掉啊,保证你的每条线的检测比例达到规范的要求,达到设计的要求,这是第一个步骤, 呃,你的比例够了之后,然后再进行第二个步骤,就是检查你焊工啊,有没有被呃覆盖掉啊,这里还有还有一项这个功能,就是,呃,检查你的这个, 检查你的这个焊工资质啊,这里我就不再这个来检查焊工资质了啊,我假设我这焊工资质已经全部合格了啊,这焊工资质是你在每天就是录入的,这个 时候就要知道他到底有没有超资资质啊,等你如果说你在录入的时候你不知道啊,假设,假设你这个这个汉口你超资质了,然后呢?你也不知道 在后面你把他这个委托了啊,然后,呃,检测的也拍偏了,然后也合格了,对吧?到你最后的时候被别人检查出来,哎,你这个抄资质了,或者说你自己检查出来这个抄资质了, 很麻烦啊。首先你这个口,呃,拍片的底片上面都有焊工号,他是肯定不会给你去修改的啊,一般情况下啊,是不会给你修改的 啊。然后呢?呃,你这个焊工号呢?又抄资质了,那等于说你也没他这个报告,你也没办法用啊,有可能轻一点你这个口,你这个报告就没办法用了,只能说,呃,重新拍另外一道啊,然后把这个焊工号改了,这个报告我不用了啊, 而且还可能会被监理啊发现,还会面临罚款啊,切扣重重重焊呢,面临这些风险啊,所以说我们在录入的时候要把这个资质控制好啊。呃,然后这这个 我们检测的这个数量看过之后,要看一下有没有焊工没有覆盖的啊,你像这个是吧?二六零零八,这这条线 检测了一个焊工是吧? r t 检测了一个焊工,但是你的焊工号呢?是吧?存在两个啊,一个是这个是 s a w, 它是一个自动焊的焊工,这一个是氧电焊的一个焊工,那等于说你这个焊工就没有被检测到 啊,所以说假设这个管线是吧,如果说比例不够,那你可以抽这个焊工的焊口在 做一个检测啊,如果说比例够了,那么你可能为了覆盖这个焊工也要抽这个焊工的焊口进行一个检测,或者说你想办法把这个焊焊工啊给它换掉啊,我就不多说了。 呃,这两个步骤是吧?结束之后那你的碳伤基本上就没有问题了啊,有问题就是反修啊,扩碳啊这类的问题啊,这个问题一般情况下我们这个,呃, 我们这个这种问题反修的就是比较少啊,需要你人工去把它解决一下是吧?我就 不说那个那个东西怎么操作了啊?这是第一步,我们要把数据库核对好啊,我们的这个检测比例,焊工的覆盖啊,焊工的资质,包括我们这个。呃,焊焊工的这个填写啊, 这些都内容都要符合要求啊,包括这里有返修是吧?我是按照我们这个要求是新加一行啊,在他后面新加一行,同时呢对这个结果要填写这个, 原来这道口他是不合格的。然后呢他返修了啊,返修之后这个口这个焊口合格了 啊,委托也是一个是原委托,一个是 r 一, 对吧?报告,根据你的检测单位实际情况来填。 然后呢后面是否计数是吧?根据你的项目要求啊,一般情况下这两道口其实是一道口,所以说第一道口这道口啊就不作数了啊,我们是 这个合格,这一道口算是一道口,然后是否输出资料啊?按你的项目要求,有些项目他可能在你的焊接记录里面要求你填,就是三 g, 有 些项目呢他可能让你填三 g 二一啊,你要填哪个哪个就选十啊,哪一个不填哪个就选否,或者说你两个都填都选十也可以啊。呃,我这里就是按照只输出一个来来设置, 这是我们的数据库部分就完成了啊。呃,理论上来讲我们就可以使用这个软件来生成我们需要的资料了啊,比方说焊接记录、 hr 报表、统计表、汇总表,包括这个 啊,上面这些啊,系统压力条件确认记录、压力时间记录啊。呃,导出, 导出就可以在我们这个,呃文件里面,文件夹里面看到你生成的资料,它这个是自动的,就是按试压包命名啊,你如果有这个文件夹,它就自动给你放进去了 啊,包括我们的这个数量都是可以做很多的一个选项设置啊,在这里面有很复杂的这个设置啊,这个看我们的软件教程就可以。呃,这里是生成的这个资料啊,这是,呃 完成了生成资料的一个步骤,但是呢,我不建议你这样做啊,因为你还你和图纸还没有核对啊, 我们一般情况下是要把图纸和汉口和这个数据库要核对一下的,就是说,呃,第一个,你图纸里面的这个汉口号和数据库里面的汉口号要保持一致,是吧?你图纸上是三 g, 那 你数据库里面 应该也是三 g, 对 吧?呃,还有你数据库里面是十道口,那你这个图纸上应该也是十道口,你不能是十一道口或者是这个十道九道口,对吧? 这个是最基本的啊。然后呢,呃,具体怎么操作呢?我现在再演示一遍,首先我们把这个图纸给它合并到一起啊,然后使用我们的这个 padworks 打开, 前提是我们这些焊口是用我们这个软件标注的啊,呃,使用我们这个软件标注的都就可以识别到我们这个焊口啊。首先我们把这个呃数据库导出一下啊, 数据焊口图纸里面的焊口数据导出一下啊,但是呢导出来之后, 呃发现有有可能我们这个焊口号呢,他比较乱啊,呃,这里呢,他这个是我之前做过的他,他可能他没有乱啊,但实际上他是焊口管件号可能是不是对应的,这个时候我们要先做一个图纸,所以图 图纸,所以,呃可以使用我们这个管线号,这个可以识别啊, 然后这个是区号,因为我们这个管线号,我们这个管线啊,他不是一个区的啊,我们要这个区分开他的区号啊,带上他的区号,然后开始实验,呃调整一下他的参数啊,如果说你感觉这个框框很好,基本上就不用调整, 然后识别之后把它也是导出来,导出视频保存到桌面啊,临时用一下,然后把它打开,把这个区号,呃和管线号来设置一下, 把它拼接一下,让这个图纸上的这个管限号和你数据库里面的管限号呃一模一样啊。 呃,然后呢这一列我们就叫它管管限号啊。 这个地方呢,我们要用到一个创建锁影的功能啊,他这里要求你的数据有三列啊,第一列页码啊,第二列制定分组,第三列挂线号,当然这个顺序你可以呃随意调整啊, 啊,这样这个锁影这个表就做好了,然后呢我们就从这里选择这个锁影, 呃,选择这个工作表,然后选择里面的,呃表格啊,都对应上之后开始我们就把这个缩影创建好了,创建好之后再可以根据管家号来提取图纸啊,我这里提取一个 啊,他就把这个管线的图纸提取出来了,当然你也可以合并很多图纸啊,按自定义分组来提取啊,比方说我们的试压包就是一个自定义分组,对不对?好,这样的话我们在这个做完锁芯之后啊,再导出来这个数据, 把它覆盖掉,他这个每一个焊口,他就带上这个数据,把它覆盖掉他这个每一个焊口,他就自带这个管线号啊。 呃,虽然说这个看起来跟刚才没区别,因为这个这些管号都是我之前做好的,所以说他没有,呃,没有变啊,这样的话我们和数据库进行比对 啊。首先我们这个数据库里面呢,有带 g 的是吧?有带什么 r 的, 带带什么的,这个,呃不太好匹配,所以说我们把它复制一点,把它把这个 g 都给它替换为空啊,包括我们的,呃,返修我们就不替换啊,这样的话我们可以把这个数据库里面的 id 来匹配过来啊?为什么要匹配这个 id 呢? 因为我们这个有了 id 我 们就不需要。呃,知道这个汉口在第几页啊?按照我们传统的那种做法,或者说目前市面上其他人做的一个软件它的一个做法, 它需要你把焊孔号分配到页码里面,比方说我这个一二三四五啊,是在第一页后面这些第二页啊,需要你对照图纸去划分啊,也是非常厚实的啊。 所以说我们这里使用这个管线号加焊口号的方式,把这个 id 可以 通过 vlookup 函数来把它匹配过来 啊,这样这个 id 就是 到我们数据库里面啊。 呃,同时呢我们设置一个高亮重复项啊,看看有没有重复的啊?呃,这里呢就有一个重复的,因为什么呢?因为它有一个反修啊,所以说我们这个不需要显示,就是我们需要在图纸上显示的是这个焊口,那这个这个 id 我 就把它删掉 啊,也这个也是把删掉,那六二一是吧?六号扣,呃,这个不需要这个显示,那把上面这个就删掉啊。 呃,这个二二一也是一样。 呃到这一步呢,保证了我们我们的数据库里面的汉口啊,全部都在图纸上全都有啊。这是第一步。还有一步 我们要通过一个反向匹配啊,先把它做粘贴,为数值的时候反向匹配一次啊,为什么要反向匹配一次呢?因为有可能我们图纸上有个焊口,在数据库里面可能没有,对不对?所以说我们呃匹配一下这个 id 啊, 我们就知道这个焊口在数据库里面到底有没有。比如说啊,这个焊口 啊,实际上他不是一个汉口啊,他是一个法兰啊,标记的一个法兰有些这个,呃其实他也是和这个汉口是一样的,也是在图纸中的一个标记,他也有一个 id, 这样的话我们就可以找到啊,哪些汉口是吧?在图纸上有,在数据库里面没有啊,通过我们反向匹配, 呃是不存在这种问题的,这就保证了我们的这个数据库和图纸这个焊口是一一对应啊,完全一一对应的,保证了我们这个,呃,这这个图纸和数数据 保持它的一致性啊,然后呢这个 id 有 了,呃,我们也可以通过 id 来把页码匹配过来啊,但是呢没有这个必要了啊,我们有 id 的 话就没必要使用页码。 呃,然后呢我们有几个步骤啊?第一个我们要把这个图纸上的焊口,对吧?呃,要给他加记一下,是吧?你像这种对不对? 图纸上的焊口要和你的这个数据库的焊口一样。嗯,另外呢有些地方可能说固定口,我我需要使用菱形来标记活动口,可能他他让你使用圆形来标记,有些地方会有这这样一个要求, 这个怎么来操作呢?这个首先我们要在这个软件里面样式编辑器啊,这个里面有样式编辑器,打开来新建一个用于修改这个焊口的样式。 呃,新建一个啊,我再新建一个修改二确认啊,然后这个呢,我让它修修改一,这是两个样式啊。 呃然后呢就是说修改二,我们这个用于固定扣啊,我们就把它这个 使用菱形啊,然后这个修改一呢,我们使用圆形。呃这个就是修改它的外观啊, 它有几个作用?第一个作用啊,我们这个焊口它是有属性的,对吧?它的属性里面有一个外观啊,是不是和这个, 哎一模一样,对吧?线宽颜色啊,类型线的尺寸填充颜色啊,一模一样,所以说他会把他把你的现有的这个外观给你覆盖掉,也就是说他可以修改你的这个形状,修改你的这个尺寸大小啊,对吧? 呃然后呢就是通过这个方式第一个来修改它的外观样式啊,我们在这个里面是绿色的,所以说我们这个里面呢,使用一个可以使用一个蓝色啊,为了去,为了等一会来 看一下我们这个到底有没有修改啊?如果说有绿色的,那可能他没有被修改标啊,一般情况下是不会出现这种情况的。我们这个样式名称做好之后呢,我们就可以填到我们的数据库里啊,首先我们带 g 的 就是固定口,我们使用 修修改二的样式啊,这个名称要和你软件里面的名称完全一致。然后其他的呢,我们使用修改一, 这些空空的,你填上也没关系的啊,无所谓的,不影响保存一下。然后 我们就可以来批量修改这个样式了啊,然后我们就可以来批量修改这个样式了啊,然后找到就是找到这个我们刚才的这个 数据库,呃,基础数据啊,因为刚才我们的那数据在基础数据里面,呃,有这么几列信息跟做那个图纸,所以一样的道理啊,就是这几列数据你必须都要有啊,当然他后面有了,可以是必填,也可以是不是必填 啊,你填了他就会按照你数据库里面的这个焊工焊口号按照这个来修改啊,你也可以把五改成六啊,把六改成五也是可以的啊, 然后呢就可以刷新所有页啊,你这这里可以看到它已经在修改了啊,全部修改完成, 大家看一遍对不对?图纸记是吧?形状啊,全部都修改了啊,然后呢,这里有一个没有修改,因为什么?因为因为这个它是一个我们里面没有 id, 对 吧? 呃,但是呢,他这里这个是想修改的话也是可以啊,看一下我们的这个都修改完成了, 然后就是第二个步骤,就是把我们的数据库里面的这个焊接的信息来放到图这个图纸里面,也就是我们行业上说这个贴图就是创建焊接信息表啊,找到我们的数据库技术信息,然后我们要放的内容就是,呃, 先把我们这个多余的这个焊图删掉啊,刚才刷样式的时候就应该把它删掉, 就是找到我们的数据库我们要放的信息就是我们这边放的是一个焊口号,焊工号、焊接位置、焊接日期、剪的方式,调整一下宽度,调到合适的宽度啊, 这个是一个排序啊,有时候你特别乱,就是一后面不是二三四,而是四五二三啊,一四五二三的顺序比较乱,所以选择一个焊口号,按照焊口号进行排序啊,排列的就比较整齐了。呃,然后就是开始创建所有页, 也可以创建这个,像这种就是刚才有两个没有的啊,我们就直接点试就可以了,他就把我们的焊口的数据放进去了啊, 还有一个这里有一个功能,就是插入固定固定图像,就是有时候我们这个图纸上可能需要签字啊,均公章之类的,做单独做一个图片啊,来把它放到图纸里面 啊,这个也放到了啊,如果你觉得这个位置不太合适,那你可以把它拖动一下啊,对齐一下是吧?哎,其实他本身放的就已经很好,是吧?他的位置已经非常好, 然后就是保存一下我们这个图纸就算完成了,这个时候我们的汉口号和图纸都已经核对了,核对过了啊,完全没有问题了,然后我们再通过这个软件来生成我们的资料,对吧? 呃,进行一个导出,这个时候我们的资料也出来了,然后就是 可以看一下这些数量啊。呃,汇总表啊,行业记录啊,可以看一下,你可以看一下,如果说你做几个啊都没有问题的话,或者说你做什么样的包他会有那样的问题啊?你可以就是 呃做过去几个之后啊,你就知道哪个需要可能需要修改一下啊,有些是完全不需要修改的,就是直接打印就 ok 了。 好,这是一整个流程,我们这个流程可以说这两个软件结合效率非常的高啊,包括我们这个焊工资质也有。我们这个焊工资质是最后的检查,我在数据库里面呢写了一个函数啊,可以通过这个函数在你 呃录入的时候就可以检查他的资质啊。呃,随便填一个啊,他这里会报错啊,报错说明他有他这个有问题,或者说出现红色的,对吧?我们找一个 啊,像这种就是他就焊不了这个管啊,他会出现红色的, 我们看一下他这个资质就就就知道他呃,出什么问题啊?好,今天这个应用视频呢,就到这里啊,谢谢。

hello, 大家好,我是瑞德润,今天我们将要学习使用 mediapeap 构建网页 app 应用。嗯,可以看到我们桌面上有七个使用 mediapeap 构建的应用,它们分别是, 第一个库是 object 窗,这个库呢用于识别物体并构建一个三 d 的 一个场景。第二个库呢是 selfie segmenting, 这个库呢用于人物背景的一个抠图的效果。可以看到这个人啊,他是虚拟的,背景是个假的,他人是抠出来的,但是背景可以替换 啊。第三个库呢是 holistic, 这个是获取我们全身的一个位置姿态的一个识别啊。第四个呢是我们的 pose, 这个 pose 呢就识别我们的一些姿势,它和它们这俩其实差不多。 第五个呢就是我们的手势识别,这个在前面的视频里面我玩了很多,这个挺好玩的啊。接着是第六个 face mask, 这个呢是把人的表情的动作全部识别出来了啊。最后一个呢就是 face detection, 这个呢是检测人脸的 啊,可以看到这个图里面有三个人脸,他都可以检测出来。嗯,可以看到官方提供的这个模型数量还是挺多的,但是呢,对于我们使用 java script 源来说的话,他支持的数量比较少,他只支持这么七个,所以我们的目标呢,就放在这七个模型 啊,如果你使用其他的语言的话,你可以去看一下其他的模型的一个调用。好,现在我们来看一下我们这七个模型实现的具体的一个效果展示吧。首先是第一个是我们的物体识别, 这个是我们的 object 床模型,它现在识别的是一个杯子的一个效果啊,识别出来,并且建立了一个三 d 场景,现在是识别的椅子啊,当然它还可以识别鞋子,可以看到每一个鞋子呢,它就标记出来了 啊。最后一个呢就是识别我们的一个摄像机,它能够把这个摄像机的位置识别出来,并且框一下这个位置。 好,接下来呢是第二个模型, self segmentation, 这个模型呢,可以看到,目前呢,他是把我的人物给抠出来了啊,我们要这个效果呢,可以把背景图给替换一下啊,这就是这个模型的一个效果 啊。接着呢是 holistic, 这个模型呢是把我们的人物的面部,还有我们人物的一个姿态的各个骨骼都给识别出来了啊,大家可以做一些交互类的一个效果的话,可以使用这个模型。 接着呢是 pose, 这个 pose 呢就是识别我们身体的各个姿态,可以看到他把我们的关节都识别出来了,但是这个模型呢,没有像比如说我们的手的吧,他识别的没有那么全,他只有一些小的一个姿态。 接下来是我们的汉式,汉式呢,这个库呢就比较常见了,他可以识别我们的手势, 这下一个呢是 face mesh 和 face detection。 左边的是 face mesh, 可以 看到它把我们嘴,嘴巴还有眼睛,甚至我们眨眼睛,它都可以识别出来,这就是 face mesh, 我 们做的什么面部的各种表情的动作呢,它都可以识别出来。 而右边的 face detection 呢,他就是纯粹的检测人脸了,只要有几个人他都能够检测到。好,这就是我们要学习的七个模型。 好,下一集呢,我们将会手把手的带着大家把这些 demo 都敲出来,当然这些 demo 都比较简单,每一个 demo 的 代码呢,都不超过二百行, 那当然其中也会有很多的坑啊,这每个坑呢,都是我一步一步的踩过来的。 ok, 下集见。

好嘞,各位,那这小节呢,我们来说一种新的进程通信方式,哎,就是使用这个派派来实现进程通信。好,那回到代码中文件呢,还是提前给大家准备好了,叫十二使用派派来实现进程通信。好,那固定的这些代码呢,还是给大家写好了,哎,创建两个进程对象,然后 start 一下,然后转一下, 哎,然后他们里边的代码呢,临时先用这个 pass 来替代一下,然后该引入的这些包呢,我也都引入了。好,那这样,我们先来回想一下上一小节所讲的用队列去进行进程通信的逻辑,它是这样的啊,整个这块呢,其实它就是一个队列的结构,对吧?两岸是开口的, 那比如说左边呢是晋城 a 在 干活,他会把自己干活的结果呢,一点一点的放入这个队列,哎,你比如说先放的是一,随后是二,然后呢再放一个三,哎,然后边这些呢,我就不写了。 然后进程 b 呢是在这边哎,他呢是从这个队列里边去读取数据,哎,有一种感觉,这个队列呢,就相当于一个中间的这么一个容器,哎,你干活往里边放东西,我这边需要数据的话呢,我就从里边读取,哎,这是队列来实现进程通信的逻辑。 那我们本小节来讲的这个派派呢,他就是一种管道思想,哎,还是中间有这么一个结构,但是呢,他不是队列了,他是类似于一种管道的形式, 哎,就比如说进成 a 啊,我想把一个数据交给进成 b, 哎,那它就这样把这个东西呢塞到这个管子里,比如说我塞的是一,哎,然后这个一呢,就一点一点,一点一点的就走到了管子的这边,哎,随后呢进成 b, 哎,在这呢就取出来用了, 并且呢这个管道是双向的,也就是说 b 也可以在这边放数据,比如说它放入了一个二,然后这个二呢就一点一点,一点一点的,哎,来到了这边,然后这个进程 a 呢还可以把它取出来,哎,它是一个管道思想, 哎,并且呢它的主要实现是这样的,就是在整个这一边,它会给你一个对象,哎,这个对象呢可以发送数据,也可以接收数据, 然后在管道的另一端呢,它也给你形成一个对象,哎,然后呢这个对象也是可以进行发送,或者是可以进行接收的,哎,那接下来呢,我们来写写, 那首先呢,第一件事就是你得先引入这个派对吧,好,引入它来,我们翻译一下啊,你发现这个单词直接翻译过来,是不就有管儿导管儿的意思,哎,就是我刚才说的那个管道,好,那接下来是这样的,在这呢,我得先去创建这么一个管道,那就是调用这个派, 这个派派调用呢,它会给我们返回一个源组,源组里边呢有两个对象,哎,管这个叫对象一,这个呢叫对象二, 这两个对象呢其实就代表这个连接器,哎,这个管道的两端,哎,所以说呢,一般我们会直接在这用两个变量去接收,哎,比如说你写一个 a 逗号,再来一个 b, 哎,这样接收一下,但是光叫 a b 呢,它有点不太好听,哎,一般来说呢,我们会用这个词叫做 connection, 那它呢就表示连接的意思,哎,比如说呢,我们翻一下,对吧?哎,就表示连接的意思,那我们管第一个呢,叫做 connection e, 哎,然后管第二个呢叫 connection 二,但一般来说呢,我们都会把它进行一个简写,哎,比如说呢,第一个叫做 co n e, 哎,那第二个呢,就叫做 co n 二, 好,那接下来管道有了,并且管道两边的这个对象呢,我也都握在手里了。好,那么接下来就请你思考一下,你要怎么去用这个两端? 那接下来呢,我是这个想法,我想让 test 一 这边啊,往管道里边去放入一个数据,通过这个管道把东西交给这个 test 二,也就是说 test 一 想是作为发送短,然后 test 二呢,这边是作为接收短,哎,那我就这样通过这个参数的形式呢,把这两个东西给它传过去。 那为了一会好分辨啊,我就把 c o n e 呢交给 p e, 我 把这个 c o n 二呢交给 p e, 哎,当然了,后边的这个逗号呢,不要忘了。然后说一下,各位不一定非得把这个 c o n e 交给 p e, 哎,那我问一下,我把 c o n 二我交给 p e 行不行?哎,也行,也是可以的。好,然后回到这边呢,我去接收一下,哎,那我还是用 c o n e, 哎,然后在下边的这块呢,用的是 c o n 二。 好,那么接下来这里边开始写写逻辑吧。哎,我 test 一 是想发送数据,对吧?哎,那这样我一上来呢,我先让它休眠一会儿,哎,写一个 sleep, 比如说呢,让它休眠两秒钟, 哎,随后呢,我调用这个 c o n e 身上的这个散的方法,我觉得这个特别好理解,各位,散的是不就有发送的意思啊,哎,在这呢,我写上一个一百, 好,然后我这么说叫做 test 一, 哎,写上叫做发送了 一百,那你这边发送了,这边是不就得接收啊?哎,所以说接下来呢,这样,我在这边呢,通过 c o n 二身上的这个方法叫做 r e c v, 哎,就可以接收到数据,哎,那在这呢,我就给它写一个 data, 好, 然后随后在下边呢,我去打印一下这个 data, 哎,那为了一会好分辨呢,那这样,我在这呢,给它放一个字母串,哎,然后呢,我这么说叫做 type 二,哎,这回不是发送了,这回叫做接收了, 好,那我们来测试一下,来右键运行,哎,稍等一下啊,得等两秒钟,哎,那你看它发送了一百,这会是不是就收到了一百啊?也就是说它是发送端,它是接收端, 那能不能反过来呢?哎,其实也是可以的,各位,你比如说我把这块呢,给它整个来,把这些整个给它拿过来,放在这个里边, 然后我把这些呢给它带走,放在这,当然了,这些你得改一改,这边呢就是 test 一 了, 好,然后回到这边呢,这得是 co n 二去散的,这会呢得是 test 二,好,这回我们再来试一下,来右键运行,稍等一下,还是得等两秒钟,对吧?哎,你看 test 二发送了, test 一 呢,接收了, 哎,大家再次体会一下,对吧?是一个管道思想,哎,左右两边呢都是分别有一个对象的,哎,那个对象呢,分别就是 co n 一 还有 co n 二,而且默认情况下呢,这个管道是双向的, 哎,就是你能发送,你也能接收,那它呢,也能发送,也能接收,哎,说,老师,那我不想让这个管道是双向的,我就想让它是单向的,可不可以呢?可以,在这儿呢需要使用一个参数,哎,这个参数的名字呢叫做 duplex, 哎,它的默认值呢是 true, 哎,现在呢,我把它手动的改成 false, 哎,那么一旦你这样改了,这个管道呢就变成了单向的,哎,也就是说你收到的这个 c o n e 啊,它只能干嘛? 它只能接收,那么 c o n 二呢?它只能发送,哎,我们来试一下,你说目前我的 c o n 一 是不是就在接收啊?那二呢是不是就在发送啊?哎,所以说目前是没问题的。来右键运行,我们来看一下啊,稍等两秒钟, 哎,是没问题的,但是如果说接下来我换一下,回到最初始的样子呢?这样把它放在这,然后把这个呢给它拿过来,好,然后这呢还是调一下 e, 这会呢也给它变成 e, 好,然后这会呢是二,这会呢也是二。好,空行删掉。这回我们再来试一下来右键运行,哎,你发现它就报错了,是吧?哎,或者说呢抛出了警告,它说的是什么呢?说你这个 connections is read only, 就是 你只能读,说谁呢?说 c o n e 呢,你不能去发送, 哎。所以说这个管道是单向的还是双向的呢?主要看我们自己的需求,对吧?啊?而且这个词呢,你给它翻译一下,你看它有一个计算机里边的术语叫双工, 哎,说白了就是控制这个管道是单向的还是双向的好,这个就是使用派派来实现进程通信,哎,说一下各位,我们主要去给大家讲的其实就是这些语法的使用,对不对?哎,那你说我要实现一个特别复杂的进程通信,那那个呢?一般都得有项目做支撑。 也不是说不能讲,如果我们此时拿过来一个企业级的项目,我去给大家解释这些文件,这些方法都是怎么掉的,就得解释半天,而且大部分的初学者看到企业级的项目呢,都会发蒙的。哎,所以说项目呢得一点一点来。好吧,各位,行,那这小节呢,我们停。

好的,上一集呢,我们是搭建了一个基础框架,本集的目标呢是在这个基础框架之上呢,去搭建我们的 object 窗。呃,首先呢需要把这个 node modules 删除一下,不然的话我们的 copy 可能会有点慢。 好,现在把它复制一份儿,我们取名叫做零一 object 床。 现在呢我们把目录切换到这个目录下面去,然后安装这一个包叫 mediaep object 床。 这个包还是挺大的,但是我们使用的 pmpm 只要安装一次它就有缓存了,后续安装就很快了啊,同时呢,我们再执行一下 pmpmi, 把所有的依赖都重新装一下。啊,这样的情况下呢,我们的包就装好了, 来到我们的 note modules 目录下面去看一下,在这个目录下面会有这么四个包 啊,同时呢,我们的 object 床这个包也放下去了,它的所有的训练的这个模型的数据呢,还有它的二进字数据都在这个下面。我们这里要把它 c 一下, ctrl c 一下,把它放在我们的 public 目录下面去啊,一会我们会用到,我们只要把它放在这就可以了。 然后呢我们启动一下项目。 呃,这个时候呢,我因为我们这个项目呢,用手机上的调试工具来调试的话,它的效果会更好一点,所以呢,这里我会连上我的手机做一个投影。好,我的手机当前已经打开这个页面了, 它会调用我们的摄像头。好,这就是我们当前运行的一个效果。好,现在我们来到 media pop object 这个文档中,来看一下官方是怎么使用的。首先呢,它会拗一个 object 框这么一个对象,然后给它传一个对象, 呃,这个对象里面有一个回调函数,这个回调函数的名称呢叫做 local file, 然后它会把所有的 feel 传过来,传过来之后呢,它会返回一个链接,这个链接呢是一个线上的链接,所以呢就是我们的 object 框呢,它需要加载一些模型的一些数据,这个数据呢是通过这个地址去加载过来的。然后呢这个地址呢是一个线上的, 所以呢,我们本地要做一个操作,就是把我们的 object 窗的这个所有的数据呢,都放在我们的本地啊,目前我是放在 public 目录下面的,因为我这个脚手架用的是 wait, wait 呢,它会把这个 public 目录下的所有的文件变成一个静态文件服务器, 所以呢,我们通过路径就可以直接访问到这些文件里面去啊,所以这一段的情况下,我们会有一点小小的改变。然后呢,把这个对象扭出来之后,下面会有一个 set option, 这个 set options 呢,就是表示我们模型要识别的内容, 这个 module name 呢,就表示我们要识别的是一个椅子,然后最大的识别的对象是有几个,目前是三个啊。然后呢,把这个设置好了之后,再设置一个回调函数,这个回调函数有个 on result 啊,一会儿我们再来分析这个 on result 往下走呢,我们的 camera 这一个 on frame 的 函数呢,它会有一个调用你的一个方法,这个方法呢会向我们的 object 往对象身上发送一个图片,这个图片呢是我们的 video 元素 complain, 它会不断地调用这个方法,会把我们的元素信息发送过去,发送过去之后呢,我们的 object 窗呢就开始进行识别好了之后它就会触发 on result 这个回调,回调之后呢它就会把这个 result 给输出过来 啊,有了这个 result 我 们就可以拿到我们的模型识别的一个处理的一个结果,然后呢去把这个画面渲染到我们的界面当中去,这个就是它的一个完整的一个调用流程。现在呢我们来这边实现一下。首先呢导入 我们的 metal pipe object 床这个包,它身上有两个东西需要我们用到一个 object 床,一个是它用于划点的一些节点信息, 接着我们把它错释化一下, object 床等于又一个 object 床,它需要穿一个对象,我们就把它粘回来 啊,这里的地址呢是一个线上的一个地址,我们把它去掉,以斜杠开头,这时候请求的地址呢就会请求到我们这个 public 下面的这个目录, 然后然后呢它所有的文件都会一个一个的去加载,我们可以把这个 fill 输出一下。好,这边我们的投屏的设备我们看一下, 再把这个 set option 也弄一下,告诉他要加载哪个模型。 这时候呢再去这儿 wait 一下 object 创建 image 等于我们的 video element。 好,这时候就可以看到我们的这个控制台加载了很多东西 啊,来到这的话就可以看到它所需要的所有的文件呢,都通过这个 ctrl 每一项都加载出来了,加载出来,然后经过这个文件夹进行一个拼接,拼接之后呢它请求到的所有的文件都是这边加载的,所以我们就把文件都放在我们本地进行加载了, 这样项目就可以正常运行了。那我们先理一下逻辑,首先呢我们的 camera 去拿到我们摄像头的信息,并不要把这个信息加载到 video 元素里面去 啊,在每一帧渲染的时候呢,我们会向 object 呢去发送我们的 video 的 图片。信息发送完了之后,我们的 object 呢去首先去加载我们本地的这个库的文件,加载好了之后,它就进行一个识别, 识别的结果呢,我们会有一个回调函数,我们现在把它写一下叫啊 result, 我 们需要给它传一个函数进去, 这时候会有一个结果叫 results, 我 们先输出一下这个 result, 它肯定是有结果的。 好,可以看到我们的控制台在空空的打印东西了。 好,首先看到它有一个 image 元素,这个 image 呢就是我们识别出来的这个原始图像,我们先把它渲染一下,还记得前面我们有一个 canvas 的 一个上下文, 通过它来渲染我们的 canvas 对 象。我们拿到之后呢,在这个下面进行一个渲染。首先呢我们要清除我们的画布, compos element 点 once, compos element 点 hit。 清除完了之后,我们保存一下我们当前的上胶文。 接着呢把我们的画面给渲染上去。做 image 渲染的元素呢是 video, 它的宽,它的高和画布的元素的宽高是一样的。 好,现在可以看到我手机上的画面已经渲染出来了,但是这个画面有点糊,这个糊呢是因为我们的 video 元素的尺寸和 canvas 的 尺寸宽高不一致导致的。我们现在加这三行代码保存一下。 哎,可以看到这个画面就变得很清晰了,这时候呢我们去看一下 result, 它打印出来的结果可以看到它输出了两个对象,一个对象呢是 image, 一个对象呢是 object detection, 这个 object detection 呢就是我们的 模型识别到的一个结果,可以看到它上面有我们的 id, 还有我们的点的数量,还有它的旋转缩放大小等等的一些信息。根据这些点信息呢,我们就可以把这个图像呢给复制出来, 我就直接把代码粘过来了, 我们来分析一下,首先呢他先判断我们的对象身上有没有这个属性,如果有做一个循环,把每个属性的所有的 节点都渲染出来,渲染完了之后呢,我们去做一个二 d 的 一个节点信息的一个匹配,匹配完了就拿到所有的点,拿到所有的点之后呢,去通过做 utos 这个工具,我们要导入一下 from to meter, 做 啊,这时候我们的画面就渲染出来了,但是这几个元素的名儿不对,我改一下。 我们拿到这个点之后呢,使用做 utools 这个工具上面的一个做 connection 这个方法,把这个节点呢复制到我们的刊物是画面上面去,然后这个点的信息呢就是我们的这个识别之后的结果身上会带的。 然后这个 box connection 呢是从我们的 media pipe object 对 象身上取到的,这就是我们要设置的哪个点的坐标信息,比如说我们这里会制了一个 正方体,正方体的话它会有八个点,一二三四五六七八八个点位,这里的 box connection 呢就包含了这八个点的位置 啊,然后下面呢就是会制了一个描述的一个文字,这个文字的坐标呢是从我们的 landmarks 里面取的,这个 landmarks 呢第一个点呢就是我们的中心点,所以呢我们就把这个描述文字呢会制在这个中心点的一个上面 啊,最终渲染出来这个文字啊,这里呢也是会制了一个点,这个点呢就是我们的中心的一个点,然后给它设置一个颜色,那这样的话我们的图像识别就可以了, 当前呢这个画面呢会制的图形一直在抖动,这个抖动的原因呢是我们的参数这边传输的参数就会好很多。参数的一个配置,这些参数呢, 我们在刚开始的时候配置这个面板的时候,就给他配了一个详细的一个参数啊,这些参数的配置都有注示,大家可以看一下。然后呢 我们这个参数在每次改变的时候呢,就会触发这个回调函数,并且把所有的参数以及改完的最后的一个结果的名称都发给他,发给他之后呢,我们可以直接把这个值呢,把这个对象直接复制给我们的这个 object 窗, 这样设置的话就很便捷了,我们直接通过控制面板直接改这个参数就可以了,这边注视一下,但是这里会有一个问题,我们的控制面板呢创建的这个位置呢,不对,它是应该放在我们的 这个 object 窗的后面的,所以呢我们先把这个 object 窗的作用域呢给它提高到我们的面板之前,好,这样我的结果就出来了, 哎,可以看到它当前的画面没了,是因为我们当前识别的是摄像,摄像机, 我们把这个默认值换成 cap, 换成杯子。 啊,可以看到目前的识别效果还不错。这时候呢把它这个域值呢改成零点八, 可以看到它抖动的效果要好很多。好,这个时候呢我们的代码就写完了,现在呢我们去网上搜几张图片看一下, 找到这个椅子,然后拿手机去识别一下,把我们的这个换成椅子,可以看到它就识别出来了。如果你要识别摄像机的话,你就直接切换我们当前的这个滚动条就行了。好,这个项目呢就 ok 了。

给大家录制一个管线采集专家新版本的使用教程,首先首次启动的时候,我们要授权这个 app 权限, 权限是我们用来保存项目项目文件以及申请水印相机拍照用的。 然后我们新建一个项目, 首次新建项目的时候会检查你项目数据库的文件夹,所以会显得有点慢,后续都是很快的。先选择一个模板,然后输入项目名称,比如某某小区或者某某市政道路 创建,然后这里会根据你的位置信息生成对应的代号和中央子午线,这样我们生成出来的 x y 坐标就直接是国家两千格式的,它具有更好的参考性。 点击生成,然后我们点击定位按钮,定位到你当前所在位置,然后输入管点, 输入属性,这里可以看见我们上方的快捷输入栏,通过对应的数字来输入,这样会快一点,然后我们点击会自动跳转到下一个字段,继续输入。 好,我们输入下一个点,下一个点它会自动继承上一个点的属性,继续确认下一个点, 然后管线模式,点击第一个点,再点击第二个点,会自动生成管线,看这里它会提示你二次确认是不是把 j s 一 跟 j s 二连成一条管,我们点确认,然后输入对应的属性, 而这里我们可以再开关,把这个二次确认关闭掉,这样的话录入会更快,这样你切换到连线模式以后,直接点第一个,第二个点,不需要二次确认就直接就会弹出属性录入窗口。 再一个说一下我们的方向线功能,点击管点,然后点左上角第一个这个方向线,它就会生成一个方向线。有些人比较习惯这种操作模式, 我们点击这根方向线,可以把它转为真实管点, 这样它就会自动有一个编号。还有一个方式,就比如说你走到这边入了一个井,然后当时在这边这个井的时候,有一个方向线出去, 后来才发现这个方向线就是接这个井的,我们点这个方向线,把它移动,移动到这个井上,它就会自动把这个方向改成一段真实的管线。再一个线像插点功能,像插点,比如说你走到中间, 发现这段管线还有一个检查紧,这时候我们在这个两段管直接点一下,它会自动把这段管线分为两段管线,然后埋身汇取两段管线的平均值。 再一个说一下我们的拍照功能,我们点击管点,点击拍照, 如果你安装了水印相机,它会提示你是否打开水印相机,我们选择始终打开, 随便拍一张保存,这里可以看显示预览。咱们可以再拍一张, 当你拍一张照片的时候,照片会自动命名为你误探点后的名字,比如说现在这个 j s 五,它就是 j s 五点 j p g。 当你拍两张的时候,它会自动给照片编排序号, 第一张就变成了 g s 五,一点 j p g, 第二张就是 g s 五杠二点 j p g。 还有一个功能,比较常用的备选值, 备选值这个功能就比如说你做排水,有些雨水井跟雨水 b 它的值是不同,比如说井盖属性,井一般是圆形, b 字是方形的,你这里可以把你常用的一些词全部给它弄到备选方案里面,比如说这个我们给它保存叫做什么,给水湾头检查井, 然后我们再添加一个这里,我就假设它是什么拐点,阀门矩形的六百,这个时候我们点击这个被选值,选择这个方案,它会自动把这个字段对应的值换成你被选值里面的选项,大概的功能也就这些了,底图看你根据自己的需求去选, 现在用户多添地图,可能它不会显示,所以你们可以自行去添地图。国家添地图服务台里面申请一个 a p i, 然后把它填到这里面,这样就使用自己的私人 a p i 了,就不会说地图不显示。我们导出成果, 在这里可以选择导出照片和表格,根据自己需求可以直接分享到 qq、 微信,大概就是这样子了。

大家好,欢迎来到我的频道,本期节目深度介绍一个被低估的开源 ai agent 项目。拍这个项目目前在 github 上有四点九万 star, 作者是知名游戏框架聊剧 d x 的 作者 mario zackner d p c。 官方也将它收入在自己的 awesome d p c k 阵轻扇里。 拍的次也来,工具本身确实是酷二扣同类的终端编程 agent, 但拍仓库的范围远不止次也来。整个仓库是一个 microreprise, 包含五个 npn 包,一个交互式终端编程 agent, 一个负责 agent 工作循环的核心库,一个统一的多模型 api, 一个高效刷新的终端界面库,还有一套外端聊天组件。 换句话说,拍不只是一个 c i 工具,也是一套可以用来搭建自己 ai 应用的完整工具底座仓库使用 mit 协议,完全开源 typescript 编辑。具体看这五个包的分工。 拍 coding agent 是 面向终端用户的交互式编程 c l i 拍 agent core 是 a 准核心库,负责执行模型给出的工具命令,记住对话状态。 拍 ai 是 统一的模型调用层,把二十五多个模型厂商的接口统一成同一套调用方式。拍 two a 是 底层的终端界面库,采用差异刷新,画面切换不闪烁。 拍 web ui 把同一套对话渲染搬到了浏览器,这种分层让拍的每一层都可以单独拿出来使用。拍对接的模型厂商覆盖面非常广,订阅类支持酷狗 pro plus 和 pro 以及 get 酷拍了直接附用,现有订阅不用另外买额度 api key 一, fga, antropica, openai, google gemini, deepsea azure, bedrock, mastro, grau, cerberus, xai, oprahberto madameau 的 国内阿姆斯特丹、新加坡三个分区,以及 kimi, zai 等中文模型。 只要接口跟 openai 一 样也能直接接入,包括 alama, vl, lm 和 lm studio。 它最独特的能力是它的绘画树,每个绘画保存为一个文本文件,每条消息都记录自己的副消息,整个绘画就形成一棵树,而不是一条线。 在终端里输入斜杠处就能进入竖形式图,跳到任何历史节点继续对话,或者在不同分支间切换。斜杠 for 会从某个用户消息分列出新绘画。斜杠 com 会把当前分支整体拷贝到新文件, 这意味着一次错误的回复不会污染整个上下文,可以随时回到任意分支重新尝试。所有历史都保留在同一个文件里,这是其他主流 agent 目前没有提供的能力。 拍的另一个杀手锏是自扩展能力,它内置四类扩展点, prompt templates 是 用 markdown 写好的常用提示词,输入斜杠加名字就能调出来。 skills 遵循 agent skills 开放标准,按需触发或自动加载。 extension 是 type script 模块,可以注册自定义工具、命令键位、界面组建,甚至完全替换内置工具。作者的势力里甚至有人在拍里跑动,游戏主题改了就生效,不用重启。这四类资源可以打包成拍 package, 通过 n p n 或给一键分发。命令是 pie in star 加上包源地址 拍的。设计哲学比较极端,作者明确声明,不内置 m c p, 不 内置弹窗,不内置 play 模式,不内置词度系统,不内置后台命令行任务。 这里的 mcp 是 按 startup 推的工具协议, play 模式指的是 agent 先列计划再执行,理由是这些功能其他工具已经做了,与其塞进核心,不如让用户用扩展自己装,或者从社区拍 package 安装县城实现。 结果是核心非常薄,启动很快,但所有重型功能都需要靠社区包补齐。这种设计适合愿意定制工作流的资深开发者,但对想开箱即用的用户来说,门槛会高一些。 除了交互式, c o i 拍还提供四种执行模式, pre 模式可以非交互调用,把回答直接打到屏幕,方便接到其他命令。后面这算模式输出完整事件流,适合机器消费。 r p c 模式用标准输入输出走结构化消息,方便其他语言的程序调用。 sdk 模式,可以直接在应用里调用一个函数,把拍当做一个库,嵌入开源项目 open core 就是 基于拍 sdk 实现的非书和微信 a 阵。最后给三类用户的建议,第一类,想找透明可改的,括替代品,又愿意自己折腾扩展拍是目前最合适的选择。 第二类,想做自己的 ai 应用,或者微信非书这种聊天机器人,可以直接基于拍 ai 和拍 a 阵库这两个包搭建,不用从零写各家模型的对接代码。 第三类, d p c 重度用户,想找一个能稳定调用 d p c 模型的终端类。诊派是 d p c。 官方收入的十四款之一,开箱即用。感谢您的观看,如果本期视频对您有所帮助,欢迎一箭三连,您的评价是我最大的动力,咱们下期再见!

使用弯管机在弯小半径的时候,有哪些地方需要注意的呢?弯管要求饱满不变形,使用带抽芯的模具效果很好, 能够有效防止管材在弯曲过程中出现压扁或起皱的现象。关注我,解锁更多弯管技巧,在操作过程中还需要特别注意润滑系统的正常运行。

solidworks 如何巧用 ctrl 键提高工作效率?安排 solidworks 软件使用过程当中,常常以快捷键的方式来提高使用效率,其中以 ctrl 键最多。接下来我将分两个视频简单讲一下 ctrl 键在实际使用当中的效果。 首先从最简单的开始,如果我们想新建一个文件,我们按 ctrl n 选择零件,选择确认。如果想打开已有的文件,我们按 ctrl o 选择要的零件,选择打开。我们想编辑草图,右击草图,选择编辑草图。 在草图约束过程当中,比如我们想让这条直线和这个点进行约束,怎么操作?按住直线,按 ctrl 按点, 在属性那一栏可以选择我们要的约束条件点确认。同理, 我们想让这个圆和这个直线相切,怎么约束?我们先按圆,按 ctrl, 按直线,在属性那一栏选择相切,智能完成我们要的相切条件。 如果我们想取消上一步操作,请按 ctrl z 点确认。 同理,我们在标注尺寸当中怎么使用 ctrl 键呢?首先按智能尺寸,按我们要标的角度的一条边,按住 ctrl, 按另外一条边, 点击确认。如果我们想标这个圆弧的角度,可以用类似的方法,先按智能尺寸, 按住圆弧一点点,按住 ctrl, 按住圆心,按住另一个顶点, 点击确认。此时如果草图我们已经画完了,想关闭草图怎么办?按住 ctrl q 接下来我们回顾一下刚刚学的几个快捷键的应用。