我们今天来看一个 wps 新增的自定义函数,叫 lambda, 它的格式呢就是等于 lambda, 然后呢就是变量一逗号,变量二逗号等等,可以写很多,最后一个呢,写具体的计算表达式, 我们举一个基础的案例,比如说输等于啊,我们选择位置,输等于 l a, 找到栏目的函数, 然后呢写参数名,第一个是 x, 第二个叫 y, 然后就是算式,我这就定两个参数,算式呢就是 x 加 y, 就是两数之和。 好,那具体的 x y 的值怎么表达呢?我们在他的后面写括号,那正好就是具体的参数值,前面这样的话就是参数啊,哎, 参数值第一个我们输一个五逗号,第二个数个六回车,大家看到的结果呢?是不是十一,什么意思呢?定义两个变量,一个叫 x, 一个叫 y, 他的结果呢就是两数之和, x 加 y, 那 x y 代表什么呢?哎,后面括号里面写具体的值,就是五六啊,就是 x 为五, y 为六啊,就是这个意思。 那这样的话,我们就是这个 lam 的函数书写格式,那一般用它干什么呢?就是用它呢来 自定义函数,那我们现在话在做的时候,每次用这样写,是不是就失去了加 lam 的一啊?那咋样才是自定义函数呢?就跟我们用其他函数一样,说等于写函数名,对不对?函数是不是就出来了?然后呢在这里面的话进行选择 参数,他呢就可以运算。哎,那这话就是正常的函数,那现在我们想自己定一个,哎,函数怎么做?比如说我们就想定一个两个数计算的函数啊,那这该怎么做呢?我先把函数的公式 选中,按右键选择复制啊,注意的话,大家看函数里面只有参数部分啊,没有具体参数值,然后呢怎么用呢?选择公式,选项卡,选择名称管理, 选择新建,给他取一个函数名啊,比如说我这块就叫求和,我就写个 q h, 这话是不是就求和,哎,求的内容就是刚才的这个公式, lam 的公式选择确定,哎,哎,这块有 名字了啊,那我们这话就是求两数和啊, q l s 啊,求两数和好,大家看这一块是不是就有了关掉,那现在话咋用呢?我们说等于求 两数,大家看的话是不是就有两数和好两个参数,第一个我们数一个十逗号,第二个二十 好回车,大家看到的结果呢?是不是就是三十就实现两数求和的这个函数的定义,那后面的话,在用的时候呢,你可以一直用除等于 qls 对不对?然后呢选选择值,刚才我们看到的这个值呢, 是输进去的,也可以选啊,第一个,再选第二个数,要注意第二个,这是数好确定,大家看到结果 是不就出来了啊?那正好在做的时候呢,注意好,这样的话就是函数的大概用法,我们根据他呢举一些相对有难度的例子,比如说我们现在看到当前表, 哎,表中有每个人的各科成绩,现在好,我们想求出成绩最高的科目,比如说第一个人, 他的话是有四门课,最高分的话是九十五分,哎,他是什么成绩呢? word, 那这块显示的呢,就是 word 成绩。那我们要做这样的一个函数啊,求最高 成绩所在的科目啊,那这话该怎么写呢?哎,我把它分解开来来写。首先我们输等于 m i x max 啊,做什么呢?选择左侧的这个数, 这表示取最高分,是不是九十五就求出来,在下面我们求最高分所在的位置。那这块哈怎么写啊?我就写一个 mat, 找到 manch 函数啊,查找值就是这个 max 的。 是啊,就是最高分,查找区域呢,就是刚才的这几个科目的成绩范围,逗号在下面。好,就是匹配的类型,我们选个零,就是查成绩的时候呢,要一模一样呢,还是分开找,我们选零就是要一模一样 啊,选择确定,大家看到的结果呢?是一就是九十五分呢,是在这些成绩里面的第一个,然后呢我们用它呢再找出他的科目,那怎么找呢?哎,我给他前面的话加一个 index, 这表示定位啊,定位范围就是上面标头啊,我们这话是不是要显示科目呢?选择科目所在的范围,逗号注意,我给这个科目呢加个锁定,因为将来要用的是不就是这一块,具体的 好,在下面的话我们怎么办呢?啊?给他扩起来 啊,公式括起来回车,大家看是不是这个科目就求出来了啊?这是普通的公式,现在想把它做成函数,我们该怎么写呢?啊,在这话注意,我要写函数啊,等于 lambda, 哎,参数我们就写一个这个范围 x w, 那后面话在用的时候的话 该怎么写呢?哎,我们把凡是设计成绩范围的就写 fw 的话就行,那这话该怎么做呢?就是 max 这块的话,去掉起名为 fw, 对不对?然后后面的话这个输出的结果这个区域呢,是不是也是 f w? 哎,这样画就可以了,这就是 lamber 的内容, lamber 一个参数对不对?是不是就是一个范围 啊?他所要做的操作就是在这个范围当中取出最高分所在的列,是吧?然后用 index 的呢, 对应出他的科目名称啊,就是这样子。好,我们把这一部分的话选中啊,按右键选择复制给他 存起来啊,其他这个呢就不要,就不用保存了,我们选择公式,选择名称管理,选择新建,给他取一个名字啊,比如说叫最高分科目啊,我们写个最高分科目 啊,就起一个字母的,取汉字的也可以啊,为了方便呢,我这样的话就直接写成了字母的简写粘贴,把公式贴过来选择确定。哎,大家看好,这样的话就好了。那后面咋用呢?我们直接输个等于最高分嘛, 哎,那这画就可以看到最高分科目他所设计的范围,我们在这画选择一下,选择确定,大家看是不是出来了,然后呢,从上往下填充,是不是就可以求出所有的?哎,那这样画就是 自定义函数的用法啊,我们就可以自己定义这样的一个函数名,哎,就可以了。好,这样的话就是一种用法,我们也可以用函数地规的方法来求啊,一些更高难度的,比如说求累加和我们 输,等于 l a 找到 lamb 函数第一参数 x。 好,然后呢,根据这个 x 呢进行判断, 看 x 的值是否大于零,如果它是大于零的时候, 那他的结果的话,等于他自己本身,加上我们写个求累加和谁的呢? x 减一的啊,就是他自己加上他下一个数 累加和,这有没有问题?比如说五的累加和是不是等于五加四的累加和啊?是这样子,那如果他不满足大于零的条件,那有可能他就是零了,那我们这一块填个啥啊?就填一个零啊,给他填一个零啊,是这样子, 好,那就写一个这样子的式子,我们把它括起来,那这个的话怎么来实现地规呢?那这话要注意,我们要取的这个函数名叫求累加和 他地规的方法。比如说我们现在话要求四的累加和,那他怎么做呢?哎,就把参数啊,四就给 x, 然后呢对他进行判断, x 此时是大于零的,那他等于什么呢? 是不是等于四加上求累加和?这几个字母我就不写了,我直接写括号,是不是四加三的累加和,是不是这样子?好完后呢?那他呢?就会执行这个函数,调用 三的类加号,那三此时是大于零的,那他就会变成什么呢?是不是三加上? 哎,三减一就是二的累加和,求累加和。好啊,是这样子来,求到这一块后呢,是不是二也不大于零?那他呢?我是不是继续进行操作?那再执行下来话,是不就是二加上二减一,哎, 是不就是一的类加号,那一此时是不是也满足大于零继续在做,那是不就是一加上? 哎,一减一是不是就是零?那当他为零的时候呢?这一块的话,是不是就不满足大于零的条件,他就执行这个结果啊?那这一块的话,他的结果是多少呢?是不是就是个零? 哎,是零,这话就是这个地规呢,就执行完了,那他会怎么样?就会往上返回?返回的结果的话是不是一和零的这个结果啊?相加,那就是一加零的结果,就返回到上一层 啊,返回到上一层的话,他再怎么算二与说一加零的这个结果相加啊,那这一块的话是不是就是二加上一的累加和,那这一块就是一,二加一的话是几是三?哎,他再往上返来这一块的话,是不是二的累加和就是三 啊?就这样算出来,算完后呢三再加三,计算完后呢,他就会返回到上面这一块,是不是作为三的累加和按六来进行输出,对不对?来 到这一块的话呢?那他再算是不是四再加六啊?那六是谁?是不是三的李佳浩,四加六是多少?十啊?那这块的话是不是整个的话就到顶层了? 那执行完后呢,我们看到的结果呢,就是四的累加和的结果就是四加三加二加一的值 啊。那像这种形式呢,就叫地位,是不是先将他哎逐层的进行简化,简化到最简单是吧?到零,然后呢再逐层的往回再返回,是吧?到调用他的那一层啊, 那这种啊就是 dv 的调用方法。好,我们现在话来应用一下, 我把刚才的这个公式选中,按右键剪切给他存起来。然后呢选择公式 啊,注意啊,有空单格啊,选公式,选择名称管理,选择新建名字叫求磊家和。 哎,在这一块的话一定要注意,函数的名字,就是你定义的名字,要和你这一块写的这个函数名的话要完全相同, 好选择确定,这样话是不是就做好了?那现在我们验证一下,看能不能算输,等于求累加和括号 里面是不是只有一个参数?我们写谁啊?我们写一个十十的累加和是不是就是五十五啊?那当然这一块也可以自己写,我比如我写个一百,想求一百的累加和怎么做?我输等于求累加说找到求累加和这个函数,然后选择参数为一百, 是不是就是五零五零就求出来啊?好,这是有关自定义函数啊操作的方法。我们就讲到这里,你学会了吗?点赞加关注,谢谢支持!
粉丝6.5万获赞42.2万

今天我们来讲函数啊,我们之前讲到变量啊,这是变量的声明啊,这是变量的复值。那函数啊,函数有没有 声明的啊?函数也有声明的,比如说我们啊,这样用 sub 啊,用这个单词加一个函数名啊,这是一个函数后面一个括号,然后回车他就会自动生成一个 in the sub 啊, 那这样就是声明了一个函数啊,明白吧?我们之前讲过啊,一个函数就相当于一个什么一个车间啊,这个车间可以无限大,你在中间就可以写代码啊,写我们的变量啊,写我们的循环啊,就可以在中间写,这就是我们的一个车间, 这是我们自己声明一个函数的方法。那函数有没有负值啊?我们的变量有负值,对不对?有负值。声明负值,这是我们的变量,那我们的函数能不能负值?那我们的函数没有负值啊,没有负值这一说, 但我们的函数可以什么?我们的函数可以调用啊,可以调用 啊,这两个字啊,调用,那调用是什么意思呢?我们的一个啊程序, 当我们新建完一个脚本的时候啊,当我们新建完一个脚本,他的代码会从第一行一直往下直行啊,一直往下直行,但是啊,函数在我们声明一个函数的时候,我们函数中间的代码他不会直行,明不明白啊? 我们声明一个函数啊,无论你中间写什么,他都不会执行,他都不会执行,比如说我随便写几个字啊,你看这样,他这个时候我们的函数他不会被执行,那什么时候他才会被执行呢? 当他被调用的时候他才会被执行,明白吧?我们的函数声明的时候他不会被执行,只有在他被调用的时候他才会被执行。那怎么调用?用括呼叫括 呼叫函数,呼叫我们一个函数。像这样啊,只有当我们把它扩一下的时候啊,他才会被执行。那这个函数他是我们自己写的,对吧?他是我们自己写的,他的名字我们可以自己取啊,如果你跟他改名, 那你括的时候呢,也要把他的名字啊对应的给他改过去,明白吧?这个函数你声明的时候他叫什么名字?你调用的时候呢啊?他也要用那个名字去调用啊, 那这个就叫做什么自定义函数啊?这个就是自定义函数。那什么是系统函数啊?那我在这里用 message box 啊, 这个呢就是我调用的一个系统函数,这个就是我调用的系统函数,他是按键精灵, 本身这个软件里面他就写好的一个函数,我们用的时候呢,就可以直接调用。我们看不到他底层的代码,但我们也不需要去看,我们只需要知道他有什么功能。你看, 当我们使用系统函数的时候,我们把鼠标停在上面,他会提示,我们看看他提示什么,他提示格式。 message box 后面是一个小括号加文字解释啊,简单的弹出一个窗口啊,显示一段文字啊, 看见没有?系统函数他是有一个提示在里面的啊,我们自己写的函数有没有提示啊?没有啊,当你把鼠标停在我们自己写的函数上面,他没有啊,系统函数他一般来说呢,都会有提示。 那我们可以看他的提示啊,他后面用一个小括号,对吧?加文字,也就是说他的他的格式啊,其实应该是这样,对不对?其实应该是这样啊,严格来讲我们按照他的提示来来操作的话,他的格式应该是这样啊,但是我们 有的时候习惯了就是直接简化啊,简化输入我们可以不写括号,直接在后面啊,写我们的内容,我们可以把括号省略掉啊,这个也是一种啊,便捷的啊使用方法。 那他跟我们的自定义函数有一个什么区别呢?啊?就是我们用它的时候啊,我们用系统函数的时候不要加括,那不要加括啊,如果你加的话他会提示什么?他会提示啊,没有找到合法的符号,你看他会报错啊, 那我们用系统函数不要加括,用我们自己的自定义函数要加括。 那我们这个程序他会怎么执行呢啊?他会从第一行一直往下执行啊,执行到最后一行,我们可以看看这是什么效果啊?点调试按钮啊,点调试按钮,然后点启动 啊,或者你按下 f 十都可以啊,你看他会弹出一个对话框,提示一二三啊,我们先终止, 那我们如果不调用它,然后我们不写括,那我们调试,你看 他什么都没有对不对?我们不管怎么按他都没有任何消息,因为我们没有调用,明白吧?啊?就是这个意思啊,那如果我们把这个系统函数单独调用可不可以啊?当然可以啊,当然可以,你看这样调试, 嗯,明白吧?这是我们程序他执行的顺序和逻辑啊。我们的自定义函数啊,无论你写在哪里啊,你写在前面也好啊,你写在后面也好,写在中间也好,只要 你不调用它,它里面的代码都不会被执行。嗯,像这样看见没有它都不会被执行。你只要调用它啊,无论你在代码的任何地方,你只要调用它,你只要扩它, 他就会被执行。这个是没有一个顺序要求的,你可以把你自己的函数写在前面,也可以写在后面啊,你看我们现在来调试,他依然会弹出啊,一二三,你看明白吧? 但是我个人的一个啊,书写习惯是什么?我个人的书写习惯是把自定义函数统一的放在我们的代码啊,末尾跟他把这个变亮了,尽量的做一个 区分啊,这是我的一个个人习惯了啊,仅供参考啊。也就是说那我们的代码他如果这么写的话,你看 他是会跳过我们的自定义函数的啊,不管你在中间学什么,他都不会被自信,因为我们没有扩他这个自定义函数, 他会被我们的程序跳过。那我们看一看这个代码啊,我稍微改了一下我们的程序他会怎么执行呢?他会从第一行开始执行啊,第一行,第二行一直执行到这里, 你看他看见我们的自定义函数了,对吧?他会跳过啊,不会执行我们的自定义函数,然后我在这里啊对他进行了一个括,那这个时候 我们下面的程序还没有执行到这里来。你看我 message box 啊,我弹的是一个什么?弹的是一个变量。我们之前弹出的是一个什么?是一个一二三, 你看提示他后面要填一个文字,对不对?他弹出是一个文字,我们的变量三,他是一个什么类型啊?他就是一个字符串,也就是文本类型,字符串就是文本类型,所以我把这个字符串啊,这个变量作为一个参数, 做一个参数传给这个 message books 啊,他就会怎么样?他就会弹出我们的这个。你好啊,三三三啊,他会弹出这个, 但是由于我们的程序执行到这里来的时候,执行到我们括这个函数的时候,我们的变量三他还没有被负值 啊,看好当我们的程序那执行到第十一栏啊,执行到第十一行被我们调用的这个函数啊,它里面弹出了这个变量,他这个时候还没有被复制,所以我们可以弹出这个。你好啊三三三吗? 不能啊,不能,他会弹出什么?他会弹出一个空空白的,我们可以试试看啊,看见没有?能不能明白? 那我们如果想要让他弹出这个,你好啊三三三,我们要怎么样去改他的顺序呢?我们要把括放到后面来,明不明白? 你看这个时候我们的代码他会怎么执行啊?他会先执行两个变量的声明啊,然后复直,然后跳 过这个函数,然后接着执行,接着执行啊,执行到这里来,把我们的变量三也复制,最后去调用啊,调用这个函数, 这样明白吧?啊?他的顺序是这样执行的,先声明,先声明,然后跳过这个函数,然后再声明啊,再复制,最后去调用他,他再把这个三弹出来,你看我们调试一下,看看 你好啊,三三三,能不能明白?所以我们的变量声明还还要变量的复值,他会让我们的成语执行任何操作吗?啊?他不会, 无论你是声明一百个变量还是一万个变量,他都不会让我们的程序执行任何操作。还有函数声明也是一样啊,无论你声明多少个函数,我们的程序他, 他会执行吗?啊?他不会执行里面的任何内容啊,所以说我们编写代码的时候啊,可以养成一个习惯,把我们会执行操作的部分呢,把它作为一个逻辑层啊,比如说这个括,他就属于一个逻辑层,对吧?我们所有啊,需要括, 需要括字定函数的代码,我们全部写到这一块啊,全部写到这一块,比如说中间这一块都是这种代码。那把我们的函数的声明和我们的变量声明把它区分来啊,把它区分来啊,你也可以在上面声明啊,你也可以在上面声明啊,这都没关系啊, 你也可以这样啊,养成一种习惯,把我们的代码呢,把它分块去写啊,逻辑是逻辑啊,数据是数据,函数是函数,这样呢,看起来就比较清晰明了啊, 我们可以在我们的这个按揭精灵左边呢,可以看到很多什么,可以看到很多基本命令啊,全部命令这些东西它是什么?它是我们的一个帮助的一个工具啊, 因为很多系统函数你是记不住的啊,我们可以随时在这里去找啊,比如说这里有键盘命令,对吧?按一下某个按键,我们随便输一个什么按键,按下 q, 我们点插入,他就会帮我们插入一段啊,代码 这个是什么?这个也是系统函数啊,你看我们把鼠标填上去,他会提示我们格式啊,格式键盘,虚拟码,次数,次数,所以 这行代码它是什么意思啊?它就是我们调用一个系统函数 k press 按下某个按键啊, q 几次,一次 就是这个意思。那鼠标命令呢?也是一样啊,我们点插入,你看这里有很多,左键单击,对吧?左键双击,我们点插入他,他这里会多一行代码,对吧? 知道代码是什么? left, double, click 啊,左键双击几次啊?一次,你看我们鼠标填上去,他一样会有提示, 你看格式 left 代表 click 啊,次数看见没有?我们都把它的括号省略了啊,这是我们一个按键精灵它的一个优化的地方啊,就是我们写代码的时候,允许我们省略系统函数后面的括号,你也可以不省略啊,你也可以不省略,像这样写 有没有问题啊?啊?没有问题啊,好,然后当我们使用一个函数 的时候啊,我们一定要对应的把它的参数给填上去啊,有些函数是允许你省略参数啊,有些是不能允许你省略参数的, 你看这样,比如说这个 max box 啊,后面我们不写任何东西,行不行?不行,因为他规定我们必须要带一个参数啊,参数是什么?参数就是一个文字,所以这里呢,我们一定要给他给一个参数,后面也是一样啊,如果还有两个参数, 一字写一个行不行?也不行啊,我们要用英文的逗号,那英文书法的逗号, 英文输入法的逗号,把参数给隔开啊,如果还有多个参数,那我们就要用多个逗号,那把每个参数都隔开,明不明白?好,那我们现在知道什么是自定义函数啊?什么是 系统函数了,对吧?那什么是插件函数呢?插件函数,比如说这里啊,我们看左边,他有一个插件命令,我们去选一个啊,选一个系统插件吧,你看这里系统插件我们点啊插入, 你看这里插件函数他就又需要,怎么他就又需要扩了,看见没有?因为他不是我们的系统函数啊,只要不是系统函数,我们去使用的时候呢?我们都要加括啊,那我们怎么去理解这个插件函数呢? 它相当于是什么?它相当于是这样啊,我们可以帮助你这样理解啊, 我们新建了一个什么?新建一个库,他的名字就是这个啊。 好,我们新建一个 cool 啊 program, 然后新建一个什么脚本,这个脚本的名字叫什么呢?叫 啊, s y s, 然后这里面呢?它生命了一个什么?生命了一个方法,生命了一个函数,函数名叫什么?函数名?就是我们刚才交融的那个啊, 你看这个插件他叫什么名字?他的名字叫 get s, c, r, x, 对吧?相当于什么?相当于他写了一个方法叫这个,能不能明白?嗯,我们调用一个插件,相当于 有人帮我们把插件写好了,这个插件名就叫 program 啊,然后插件里面呢,它有一个类叫 s y s, 然后在 这个类里面呢,它有一个函数叫什么?叫 get s, c, r, x。 只不过我们不需要啊,我们不需要知道它底层的代码到底怎么写的,就它中间写了什么内容啊?我们需不需要知道?我们不需要知道, 因为作者已经帮我们把它给封装好了,把它封装好了,我们只需要知道怎么去使用,我们怎么去使用呢?就是前面加括,然后用他的库名,加上类名,加上他的函数名,能不能明白这样呢?我们就可以随时去调用他。 那是不是所有插件的函数都可以这样调用啊?也不是啊,这只是一种调用第三方插件函数的方法,具体调用的方法也要取决于它这个函 函数的性质啊。我们到时候如果碰到第三方插件,我们需要用它的函数的时候,我们如果碰到了,我们到时候再单独讲啊,这个时候我们先略过啊,你只要知道第三方插件它的函数可以怎么调用,然后我们自定义函数应该怎么写,应该怎么调用, 还有系统函数他应该怎么写,怎么调用,你只要明白这个三种函数的区别啊,怎么调用,那就可以了。那我们这里说一下这个插件函数啊,我们可以看到啊,他这里有提示, 他提示什么得到屏幕分辨率宽度啊,那说明什么?说明这个函数他占用以后,他会得到一个什么?得到一个数值啊?得到一个数值。 好,然后我们再看一下这个插件函数啊, 他后面有个提示什么得到屏幕分辨率宽度,也就是说什么?也就是说这个函数他有返回值,那如果这种有返回值的函数啊,我们可以给他怎么样?给他直接负值,给一个变量,因为他有值吗?他会返回一个值, 我们就可以给他直接复制给一个变量。你看这个函数他是得到什么?得到屏幕分辨率的宽度,那我的屏幕分辨率是多少?那我们可以看看显示设置 在这里,我的屏幕分辨率是一九二零乘一零八零,那所以说我们的宽度应该是多少?应该等于一九二零,对不对?那我在这里试试,看他能不能弹出一九二零呢?好,你看可以,对吧?好,那今天的内容有点多啊,我们讲 什么自定义函数,自定义函数的声明与调用,还讲了系统函数的调用,还讲了一个什么插件函数的使用。 看一下我们程序的一个啊,执行的方法,从上往下执行,看见自定义函数怎么样会跳过?这是我们今天讲的内容啊,有点多啊,大家好好消化一下啊。


呃,各位小伙伴大家好,那么我今天呢把前段时间上传的那个罐车加减速过程中 呃水罐中水的页面变化的那个按理模型的教程给大家分享一下。那么我们先看一下这个这个动画我们可以看出这个从零秒开始贯穿开始向前移动,然后页面 由于惯性的开始,由于惯性以及贯车给他的加速度开始变化,在呃六秒的时候停止, 等于说是一到三秒是一个呃加速过程,三到六秒是一个减速过程,然后六到七秒呢是一个液体的自主晃动的一个过程。 呃,除了可以看到流体分数之外,我们其实还可以看一下他的载客载客的一个一个图哈,我们在这个零秒的时候 可以看到这个由于由于这个液体的自身的重力以及车向前的加速度的力呢,然后水对于车有一个向下和向右的载客,向右的载客其实就是类似于我们平时坐车的时候,车启动时候的一个推背感, 然后在那个呃减速的时候,然后四秒的时候,那个水主要是对车有一个向前的载客和向前的载客。 其实这个案例呢,还可以分析那个我们大车里边工程上边大车油液晃动对于车呃行进过程中的一个影响,包括对车的一个阻力的作用, 这其实是一个这样的一一个过程啊,就是如果用在工程上的话,如果如果你学汽车工程或者是做一些汽车的 cea 仿真的话, 那么可能会用到这个东西。对,那么我们接下来呢从头到尾呢来个来一个对这个模型进行一下构建,我们打开一个空白的 ctrl 模型,在模型脑里边我们建一个二维的模型,因为教程吧三维的计算点太慢了。 然后我们需要用到的是流体流动中的多项流,两项流嘛?两项流的现场模型,层流模型,然后需要用,然后除了层流模型呢,需要用到一个固体,呃,这个固体滴水的模型, 呃。然后我们做一个神态的方针,因为我们要看一这个运动过程。呃,然后呢关于几何部分呢?我就不重新画这个几何,因为这个 本来的这个几何呢?呃,你可以把它选择,呃导出序列,把它以序列形成导出,导出到 一个桌面上,呃,就是就是这个,然后你在新的模型里边重新把它倒入进去就可以了, 倒入,然后这个几何就是这样的。那么这个几何是怎么构建的呢?就是就简单给大家演示一个,就是先画一个车头,这个车头,然后画一个车身, 呃,就连接车身的这个这这块一通常情况下,这个对于卡车来讲,那个他的油罐还有液的那个,呃。尿素罐什么的可能都在这个部位,就是在做汽车过程,反正的时候可能会防着那个油液晃动,也是利用这个模型做的, 然后包括一些轮胎什么的,那个,呃,那个构建出来,我们看这个有一个忽略点啊,就是这个如果你没有这个忽略点的话,你知道在这里边会有一些多余 用的点,那么看我们这几个功能里边有个虚拟操作,虚拟操作可以把一些顶点给忽略到,就是这样的话在视图中也不会显示的,而且他也不会把这个线段分割成好几个线段, 那么这个其中不行是有,那么然后呢?我们开始对他进设置那个,首先我们导出去材料,我们这里边用到的材料就有三只,有三种,一个钢结构对吧?就是我们有一根空气, 然后一个是水,就我们把这个除了空气和水这部分之外的其他全部当成同一个结构来算,因为这个我们仅仅是一个简单的模型, 我们在选择钢结构材料时候,看默认的话,默认的话看不出,会把所有的玉都当做你选择的第一个材料, 这样也设置非常巧妙,以后你再选择材料的话,他都是做减法,你再选空气的话,比方说罐车里边上边是空气,对吧? 这样的话他就把空间的部分剪了,你在泉水的话下边是水,那这样的话他就把水的部分给剪了。 啊,这能保证什么?这能保证你不会重复的选择玉玉的材料,而且你也不会漏掉玉和材料,而且这可以保证你即便是你忘记选择材料了。 ctrl 可以进行正常的计算,因为他默认了所有的东西都属于第一个材料,我觉得这是一个非常巧妙和人性化的设计。 然后我们现在材料选完之后有很多叉号,那是因为呢?呃,我们物理场上的玉还没有选择。 呃,你看,比如说钢结构,比如说空气养生磨量补充比,根本就用不到哈,因为我们物理厂里边,然后固体力学里边,固体力学把空气跟水都选上了,空气跟水不属于固体力学里边计算,对吧?把它去掉之后再看这空气就没有了,是吧?然后像场里边把钢结构加 一圈,你把钢结给我去掉, 然后层流里边把钢结构也去掉, 是吧?这样的话就可以了,虽然没有钢筋沟,还有个叉号,还用到东北年度了。那可能是某些部分还没, 我也不会,我看一下我这物理厂里边多,物理厂里边还有一个流过雾河,因为我们是一个固体移动带,带着水一块流动的过程,所以说要有一个过河流,过河要选一个边界,那个边界指的什么?什么意思呢?这个边界呢?就只选择流体跟固体接触的边界, 然后系统自己对这个边界上某些方程进行处理就好啊,这样的话,呃,就好。然后我们进行这个呃物理厂的设置,我们层楼里边呢,首先我们肯定要选择 重力,对吧?因为我们这个液体的流动啊,除了是固体带着液体流动之外,还有流体的一个自身的重力运动,因为我们这个里边考虑到流体的惯性, 惯性了,惯性其实就是就是重量,对吧?两个概念其实是一样的,在我们初中物理、高中物理都讲过,呃,把重力勾选上。另外呢我们需要,因为这个流体本来是个封闭枪,他没有进口,没有出口,流体跟空气的量一直都是一定的,所以说我们不用设置 里边的什么入口,出口、开放边界这些都不用。但我们需要设置一个什么呢?需要设置一个压力人数点。呃,其实我们在很多的客户的教程里边,二维码就都会设置一个压力人数点, 这个你就设置这个压力,有有数点你这里边的压力计算才有效,要不然这个因为压力这个值啊,呃,他不像,他不像重量啊,这个物体就是就这一千克 压力,这个值是一个相对值,就我们平时所说的压力都是相对于大气啊去说,那所以说在计算模型中呢,也也得有一个相对的一个基准的压力点,那我们就在空间里边点这个任意一个点就行了,因为反正计算是一个相对值, 你你,你把这个点设置为这个设置为这个都是一样的直,他都是一个相对直吗?当然你这个点设置不了了,因为这个压力你在层流场有效,你然后你这个点是在固体力学的物理场里边,所以说你只能设置这个和这个,我们就以这个为为压力为固定, 然后这样的话从中场就就已经设置过了,然后我们设置一下现场的模型,对吧?我们现场里边看这个, 呃,现场指的初始值,第一个初始值,第一个初始值呢?呃,指定的,像我们如果我们我们可以指定第一个初始值,如果指定 空气的话,你看这也是一个减法。那第二个处置值的话,我们就指定是水,就是第一个处置值的流体二是水,流体二是水,然后流体一呢是空气,我们这样指定。 呃,然后这个在多物质厂里边啊,也是这样指定的,刚才我们擅长指定过了,我们先跳过固体力学看两箱流的独立场的指定, 我们流体一刚才选择的是空气,对吧?那我们就把它这个鱼材料变成空气就可以了,我们流体二选择是水,把流体二 变成水,然后就可以了。剩下的这些东西呢?呃呃用默认的就好了,因为我们本来就是水和空气的一个模拟,所以说就用水和空气的表面整理就可以了。如果说那个呃你不想用 ctrl 了,你有这个更好的 数据的话,你可以在文件里边找到,然后就自定义自定义张力系统就可以了,那么我们这个就用液器面的张力就可以了。 然后我们定义固体医学啊,固体医学呢?在呃这个仿生过模型中呢,固体医学主要就是给,就是给给整个辆车一个呃加速和减速的过程, 就比如说我们踩油门之后再踩刹车,就是这样一个过程,那么需要定义一个呃规律学中你可以定的力,你可以通过力去构建这个过程啊。但是呃科目测里边有个非常直观的呃做法呢,就是可以指定一个速度, 可以指定一个速度,那么这个速度怎么指定的啊?就是我们肯定是这么我们肯定是一个这个速度,肯定是一个函数啊,关于时间的函数, 对吧?他肯定不能是一个定制的速度,那么可以呃通过 ctrl 自定义的这个呃函数功能去指定这个速度。我们要我们要指定一个先加速再减速的一个过程,那么这个速度随着时间变化肯定是呃呃肯定是一个先上升 在下降的一个过程,会有个波峰,那么他应该是一个三角的结构,先上升再下降,应该是个三角,那我们就定一个 三角函数,三角拨,对吧?然后三角拨上,然后点三角拨,之后呢,我们看有个下线和上线,这个下线和上线看,我们现在先先不去动啊,我们就把这个图画出来,就明白线,下线和线什么意思啊? 我看下线是负零点五是这个意思,那么我们呢就把下线改成顶,我们如果要呃六秒内的运动过程呢,我们就把上线改成六, 慢点的话他就变成零和六了,那你如果要模拟八秒内的话,你可以把它改成八,对吧?他就他这个自定义函数,他现在就是我们定义这个函数,他现在没有任何的物理意义, 那我们需要对他进行一些平滑的处理,平滑处理就是对一些尖角,对吧?防止一些速度的突变,如果有速度突变的话,呃,可能计算起来就是他也不怎么符合现实过程,我们稍微让他这个速度过度的平滑一点啊。 然后现在啊,这个三角函数呢,已经三角部函数已经定义好了,这个三角部函数就是一个以横坐标零到六的过程中,纵坐标是零到一,现在他的横坐标跟纵坐标都没有任何的物理意义,那我们接下来需要在固体叠中赋予他物理意义, 富裕到物理业。呃,那我肯定是怎么富裕呢?首先我们的中老表肯定是要函数值,肯定是让他当成速度的, 对吧?速度是一个零到一的一个必定的过程,那我们的横坐标肯定是把它当成时间了。那么所以说在这里边写呢,就是在 s 方向,因为我们是这个是 x 轴,这个是外轴,在 x 方向呢, 那首先肯定是竖方向,就是往左前进,我们可以指定他的速度,就是我们刚才这个函数,这个函数叫 t r i e t r i e, 对吧?就这个函数,那么这个函数的横坐标呢?应该是时间,那我们现在需要赋予它时间的含义, 康复内置中的时间应该是用 t, 应该是 t, 而这里边时间是有单位的,那我们需要把这个 t 呢进行一些物联钢化,对吧? t 的单位是秒,然后给他一个呃,秒分之一,那么现在这个数呢?代表 坐标没有单位的横坐标的时间,对吧?呃呃,意思就是在某个时间段上,就是比方说这个在一秒的时候,他的速度是零点零点三, 零点三米秒,他本身后边是有单位的零点三米秒,然后在三秒的时候是一米秒,那这个移动速度可能有点慢,那么如果说我们想让他成倍提升移动速度的话,在后边乘一个四就可以了,那么这个表达式的代表的意思就是 这个车在一秒的时候,他是零点三点几乘以四,在三秒的时候他的速度达到最大是一乘以四每秒,就这样意思。 那么在外方样上也需要指定你这个,这个是要勾选这个如果不勾选的话,他外方样的速度是未知的,他可能会给你一个就是莫名其妙的一个速度,那么 呃,勾选外放的速度零,就是他只是在艾特主状进行去平移运动。呃,哦,对,还有边界哈,就是这个,这个我们看一下,呃, 看一下有没有起来,现在咱这个指定速度,指定速度这点负四就跟刚才我们设置的一样,然后呢边界呢?就是整个整个那个固体力学的所有边界, 那么我需要把这个线段全选上,这我们可以用这个空选工具,好,这样就这样就可以了。呃,另外呢需要注意的是, 需要注意的是我们这个物理厂啊,就是这个流体部分也需要跟着固体部分去走, 所以说这个流体的区域里边呃应该是一个动网格的结构,因为这个网格也需要向左平移嘛, 如果不设置多网格的话,那个怎么可以在定义里边设置一个多网格,多网格里边变设置一个变形域 电影浴呢?就是就是这个空气和水为什么要设置这个呢?如果你不设置这个的话,系统默认是只有钢结构在走,这两个是不动的, 呃,因为他没有动网格的指令也变和变形的指令,你这样的话就是这个这个网格会跟随呃固体医学呃的网格一起向左移动,然后这样的话应该是没有问题的。 那个网格的话,那个我们可以看一下他呃系统可以用物理厂控制网格,物理厂控制网格我们可以看出来,就是有些地方会很密,当然呢我们只关注的是里边流体的区域,外边的区域 其实对于固体力学来讲,外边的受什么什么力我们并不关注啊,所以说他设置这么多网格的话,增加我们的计算量,那我们可以自己自己去做,我们自己用用户零一网格,对吧?首先把这个 系统的网格给删除掉,然后呢那个,呃我们给一个,这么这个我们我们可以用四面形网格去搜啊,然后我们给一个四面形网格,我们只把这个流体育的网格作弊一点就好,然后给他一个大小,然后我们选择流体动力学,然后选择一个教系化, 呃,就选择一个玉,对吧?然后把这两个呃交起换一下,然后固体力学呢就不用做了,我们现在看一下做成什么样啊?是这个样子,呃看一下,呃,然后呢?我们在同等运动中呢,哈, 最好,因为流体区域呢,最好给他一个边界层啊,所以说啊,我们得给他一个边界层,这个边界层呢?呃边界层呢主要是针对流体区呢,我把流体区域的边界给选上, 然后边界层不需要那么多,我看之前那个我设置了边界层的话,呃,三层, 三层,人生三层,然后要看一下这个边层,呃,就是这个过度啊,非常不太好厚度调节因子,我们给一个给个五, 这就呃这看起来就好看多了,然后红尘也能给一个八,然后网格可以这样设置,让我看看这个这个大小。普通物理学细化与部分 文物理学啊,这里勾一个细号,对,然后这样的话对网格基本上这样,这样的话网格少了很多,是吧?网格少了很多,然后算起来可能就更加的呃,就比较好算一点吧。 然后呢那个我们接下来可以开始算研究里边呢,我们可以,因为我们一般情况下,我们一般想要看这个计算过程,我们可以一边计算一边看动画啊,所以说我们可以在研究里边先把陌生求解器给导出来, 然后呢我们我们让系统,因为我们这个研究里边会生成默认会图哈,所以说我们直接给一个初始初始值,初始值也是解,初始值也是解, 然后这样的话给出来解,他就给一个默认的绘图。那我们要看什么?我们主要是看流体的体积分数,对吧?那我们在这个研究下边的租住一里边,然后 然后打开这个求解时显示结果。这个绘制我们可以绘制可以绘制速度的图,也可以绘制流水机的体育分数图。 这个去机场的时间不够,那么我们因为六秒就六秒钟就停止了,对吧?就是车是先前三秒加速或三秒减速,那我们算八秒的过程,就停止之后两秒看里边液体是怎么动的。然后,呃,那个布场呢?可以设置的稍微小一些。呃,那个增加收敛性吗? 看原视频的补偿零点零一八。对,可以零点零一八,你这个零点零一, 然后容差的话,你可以选择物理场控制啊,也可以选择用户控制,那么为了我们这个教程方面收敛的话,我们用户控制零点零一。嗯,然后 现在我们可以计算一下,看有没有什么错误。我们现在点计算的话,他就会自动生成一个一个一个。这个动画图 啊,已经开始算了,这个动画图也自己给出来,我们可以看到车在慢慢的向前移动,刚移动的时候液体有一惯性作用的,呃,就是大部分的液体在向后靠, 你看那瘦脸图,这是四个五里长的一些瘦脸图。 然后 对,看来这个收敛过程还是非常的, 也不唱了,你看他很多一个插直的过程,就是就是计算收敛精度比较高,他系统自己就插直过去。 好,那这个就先不继续算了,我给大家展示一下,如果说勾选变形玉的话,我们把它禁用掉,我们再算看这个是什么情况? 就是没有设置多少个, 你看如果没有设置这个流体育的动网格的话,他只是固体在移动啊,流体育因为没有动网格指令,他是不随固体进行变化, 所以说这个一定不能忘。然后另外 呢再给大家展示一下这个,这个这个勾选上展示一个就是刚才那个指定速度,里边就是这个外方向,如果不指定速度,我们把这个勾掉,勾掉的话,再计算看会是什么结果 啊?也在移动,但是发现没有,他并不是像左平一样,他在向左下方平,那么就是因为你在外方向上并没有,并没有这个给他这个速, 所以说他外翻的速度是没有约束的,那么他为什么会让左下方屏呢?那大概率就是跟中比有关,因为我们是一个流过火的过程,中立影响了固体的移动, 那么就是这个模型呢,基本上就是这样。呃呃,那个感谢大家的收听哈。嗯, 如果大家需要这个案例的话,大家可以给我留言,然后我可以发给那个大家,那个谢谢大家,这个案例的分享就到这里了。


大家好,我们是成都本地做电脑培训的,今天给大家分享 python 入门第三十六课,自定义功能函数。 其实函数这个东西呢,我们接触了非常多,比如说我们用的最多的比较 print 输出函数,那这个函数是 python 直接给我们提供的,我们用它就可以实现输出,但是现实生活中我们有非常多的功能,它是没有这个函数的,我们需要自己来开发一个函数,然后自己来用。 所以我们这里的自定义函数其实是通过两步,第一步先定义,第二步再调用,那定义函数它的格式长这个样子,首先是 df, 然后是函数名 行餐冒号,后面是函数体。好,我们来看一个实例,比如说我们要自定义一个求表数的平方和的函数,我们先把它定义出来,这部分就是我们的定义这个位置,大家可以看到我们定义的函数名字叫的萨 那,因为我们是求两数的平方和,所以我们需要别人给我两个数,那这个 a 和 b 就是 别人给我的这两个数。好,这个冒号啊,后面是函数题, 我们首先对 a 进行的求平方放在 s 一 里面, b 求平方放在 s 二里面,然后我们加 s 一 和 s 二加起来,通过 return 带回去,等个角带回去。好,大家注意,我们这上面只是定义函数,那我们用函数在哪里呢?我们用函数在下面,这里 de sum d sum, 这里五逗号六,注意这个五逗号六是时差啊,我们叫它时差,而上面的这个 a 和 b, 我 们叫行差,我们在调用这个函数的时候,它实际上是把时差给这里的行差,把时差给这里的行差, 所以我们在调用的那一刻,这个五就会给了 a, 六会给 b, 那 他就会进到这个里面来执行。 所以经过一段执行之后,这里 s 一 就是二十五, s 二就是三十六, s 一 加 s 二就是六十一。好,这个 return 的 意思就是说 它会把这个加完的结果放在这个地方,把它放到这个地方来,注意它不是把所有结果的方来,而是把 return 后面那个值放到这个地方,停留在这个地方,那也就是说我们会把这个值放给 m 这个变量, 所以我们打印 m 实际上就是一个六十一,大家可以看到下面的结果。好,大家要特别注意就是我们的这个整个这个定义函数这里这一块我们叫头部,这里叫身体 啊,头部这个地方这两个行餐其实就决定着我们后期用这个函数需要给他什么东西。你看我这里是两个,也就意味着我后期用函数的时候就必须给他两个。 那如果我这里是三个 a、 b、 c 呢?那我们后面用的时候这里也得要是三个。当然我们现在说的这个行餐属于简单的行餐好。