




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ABAQUS(Python语言)二次开发令狐采学人生苦短,我用Python
作者:FanShengbaoPython2.72017年12月目录TOC\o"1-5"\h\z\o"CurrentDocument"第一章Python程序基本语法 1\o"CurrentDocument"Python语法结构 1\o"CurrentDocument"Python元组 1\o"CurrentDocument"Python列表 1\o"CurrentDocument"Python字典 2\o"CurrentDocument"Python集合 3\o"CurrentDocument"Python字符串 3\o"CurrentDocument"Python分支语句 4\o"CurrentDocument"Python循环语句 5 for 循环5 while 循环5\o"CurrentDocument"Python定义函数 5\o"CurrentDocument"Python模块 6\o"CurrentDocument"Python包 7\o"CurrentDocument"Python文件和目录 71.12.1目录操作 71.12.2文件操作 7\o"CurrentDocument"Python异常处理 8\o"CurrentDocument"第二章ABAQUS/Python二次开发 9\o"CurrentDocument"ABAQUS执行Python程序 9\o"CurrentDocument"编写ABAQUS/Python程序 10\o"CurrentDocument"ABAQUS录制Python程序 10\o"CurrentDocument"ABAQUS/Python对象介绍 11session对象 11mdb对象 11odb对象 13\o"CurrentDocument"ABAQUS完整二次开发示例 14\o"CurrentDocument"ABAQUS二次开发常用函数 162.6.1Part模块常用函数 16第一章Python程序基本语法Python语法结构Python语言以缩进来约束每个程序块,编写程序时要特别注意每一行的缩进量,同一层次的语句应具有相同的缩进量。下面是一段Python程序示例:#-*-coding:utf-8-*-foriinrange(1,10):forjinrange(1,i+1):printstr(j)+'x'+str(i)+'='+str(i*j),print该段程序主要功能是实现乘法口诀表输出打印,其中“#-*-coding:utf-8-*-”是约定文档的编码方式。程序主体部分由两个嵌套的for循环语句组成,可以看到每一个for循环块的内部都具有相同的缩进量。程序输出结果如下:1x1=11x2=22x2=41x3=32x3=63x3=91x4=42x4=83x4=124x4=161x5=52x5=103x5=154x5=205x5=251x6=62x6=123x6=184x6=245x6=306x6=361x7=72x7=143x7=214x7=285x7=356x7=427x7=491x8=82x8=163x8=244x8=325x8=406x8=487x8=568x8=641x9=92x9=183x9=274x9=365x9=456x9=547x9=638x9=729x9=81Python程序中一行中“#”号后面的内容为注释,“#”号只支持单行注释,多行注释可使用“'''…‘''”注释符。'''Abaqus6.14Python'''Python元组Python中的元组(tuple)相当于C语言中的数组简化版,其内容和长度均不可变,只能对其内容进行访问。tt1=(1,2,3,4,5)printtt1[1]程序执行结果:2Python列表Python中的列表(list)相当于C语言中的数组,但比C语言中的数组使用起来更加方便灵活。其长度和内容均可修改,列表是编程时使用较多的结构。list1=[1,2,3,4,5]printlist1[1]list1[1]=5printlist1list1.append(6)令狐采学创作printlist1程序执行结果:2[1,5,3,4,5][1,5,3,4,5,6]Python列表常用操作方法:表llPython列表常用操作方法操作方法功能listl.append()listl.append(l)在列表末尾追加元素listl.extend()list1.extend([7,8,9])合并两个列表listl.insert()listl.insert(2,在列1表指定位置插入元素listl.pop(n)输出并删除指定位置的元素,不指定n值时则弹出listl.pop()末尾元素listl.index()listl.index(5)在列表中搜索该元素第一次出现的位置listl.eount()listl.count(l)在列表中搜索该元素出现的次数listl.reverse()listl.reverse()反转列表排序,也可使用listl[::-l]list1.sort()listl.sort()对列表进行排序对列表进行切片操作(元组也能进行相应的操作):list1=[1,2,'3','a','b',5]printlist1[2:4]printlist1[2:]printlist1[1::2]printlist1[:-2]输出结果:['3','a']['3','a','b',5][2,'a',5][1,2,'3','a']Python字典Python中的字典(diet)对于存储数据非常有用,其存储的数据是无序的,每一个键对应着一个键值,是一种映射型数据类型。dict1={'author':'FanShengbao','software':'Abaqus'}dict1['data']='2O17'#添加一个字典元素printdict1['software']#打印'software'键的键值printdict1.keys()#打印所有键printdict1.values()#打印所有的键值printdict1.items()#打印所有键及其键值程序输出结果:Abaqus['software','Data','author']令狐采学创作['Abaqus','2017','FanShengbao'][('software','Abaqus'),('Data','2017'),('author','FanShengbao')]从打印的结果可以看出,字典的存储是无顺序的。获取字典键值需通过键来访问,键是唯一的,多个键可以对应相同的内容。Python集合Python中集合(set)的概念来源于数学在的集合,集合中的每个元素都是唯一存在,多次添加同一元素只存在一个。集合区别于列表和元组,其不能通过下表进行访问,但可以将其转换位列表后再进行其他操作。set1=set('abcde')printset1setl.add('f')#添^口'f'元素setl.add('b')#添^口'b'元素printset1printlist(set1)输出结果:set(['a','c','b','e','d'])set(['a','c','b','e','d','f'])['a','c','b','e','d','f']Python中集合常见操作方法:表12Python中集合常见操作方法操作方法功能listl-list2list1与list2的差集list1&list2list1与list2的交集listl|list2list1与list2的并集listl.add()listl.add(‘a')向listl中添加一个元素listl.updata()list1.updata([1,2,3])向listl中添加多个元素list1.remove()listl.remove(‘a')移除listl中的'a'元素Python字符串Python中的字符串是一种只能访问的数据类型,定义之后不能对其内容进行修改否则程序将抛出异常。str1='Abaqus6.14Python'printstr1[0:6]printstr1.center(30,'-')程序运行结果:Abaqus Abaqus6.14Python Python字符串常见操作方法:操作方法功能str1.find(substr,start,end)从strlstr1.find()中搜索substr,不指定start和end时指搜索整个字符串,可以只单独指定startstr1.count(str1.count(substr,start,end)获取)字符出现次数str1.startsstrl.startswith(str)是否以str开with()始str1.endsstr1.endswith(str)是否以str结with()尾()str1.centerstr1.center(n,char)以str1为中心获取n个字符,不够部分使用char填充str1.ljust(n,char)以str1为左对str1.ljust()齐获取n个字符,不够部分使用char填充str1.rjust(n,char)以str1为右对str1.rjust()齐获取n个字符,不够部分使用char填充()str1.upper将str1全部转换为大写()str1.lower将str1全部转换为小写e()str1.replacstr1.replace(old,new,count)count为替换次数,若省略只替换一次str1.strip(char)去除str1前后str1.strip()的char,若省略则去除前后空格str1.split()str1.split(sep,maxcount)以sep分割字符串,maxcount为取功能操作方法功能大分割次数(可省略),省略sep则使用空格进行分割1.7Python分支语句if分支语句有以下三种基本形式,可根据不同情况选用不同的形式,使用时需替换pass占位语句:形式一形式二形式三ifcondition1:ifcondition:passifcondition:passelifcondition2:passelse:passpasselse:pass1.8Python循环语句Python编程语言只包含两种循环结构,分别是for循环和while循环。for循环要比while循环使用更加频繁。for循环for循环主体结构:foriinrange(1,10):passelse:pass其中pass为占位符,else可省略,else只有在for循环不是由break中断的情况下才会执行else下的语句。for循环可遍历元组、列表和字符串:foriin[1,2,3,4,5]:printifor具有一些比较高级的迭代功能(比普通循环更加高效,执行速度更快):print[i*iforiinrange(10)]print[(i,j)foriinrange(3)forjinrange(3)ifi!=j]程序执行结果:[0,1,4,9,16,25,36,49,64,81][(0,1),(0,2),(1,0),(1,2),(2,0),(2,1)]while循环while循环主体结构:i=0whilei<10:passi+=1else:passPython定义函数Python语言定义函数采用def进行声明,函数体需进行统一缩进。Python函数常用的有两种:参数有默认值的函数和参数无默认值的函数,函数参数某一个带默认参数时,其后的参数也需带默认值。#参数无默认值defFunName1(arg1,arg2):returnarg1+arg2#给参数指定默认值defFunName2(arg1,arg2=1):returnarg1+arg2#函数调用printFunName1(1,2)#返回3printFunName2(1)#返回2printFunName2(1,2)#返回3Python语言也有一些自带的函数:表14Python自带函数函数名功能abs()abs(-1)求一个数的绝对值sum()sum([1,2,3])求一个列表的和,等于6.0max()max([1,2,3])求一个列表的最大值,等于3min()min([1,2,3])求一个列表的最小值,等于1range()range(start,end,step)产生一个列表包含start,但不包含end,增量为step(可省略)xrange(start,end,step)和range()函数一样,但其初始时只生成xrange()一部分,一般用在循环次数较多的情况下,能够减少循环时间。type(var)检测变量或内容的类型type()input()接受一个输入,ABAQUS软件中Python的默认输入函input()数有两个:一个为单输入函数getInput(title,default);另一个为多输入函数getInputs(((titlel,defaultl),(title2,default2),...)),其中title和default为字符串,且default可省略。len()len(...)参数可以是兀组、列表或字符串,功能是检测其长度all()all(...)检测参数,都不为0或:返回True,否则返回Falseany()any(...)检测参数,任一不为0或‘',返回True,否则返回令狐采学创作False注:表中只列举了部分直接访问的函数,Python标准库中包含着许多函数,如math库。Python模块Python模块就是一个py文件,文件中可包含变量、函数和类。可在另一个py文件中导入该模块,调用其中的函数。导入模块的方法:importModelNamefromModelNameimportFunName导入自建模块时,需注意Python的搜索路径,只有将模块放入搜索路径中,才能通过以上方法导入Python模块。可通过以下代码查看当前Python编辑器的搜索路径和添加目录到Python的搜索路径:importsysprintsys.path#打印Python的搜索路径sys.path.append('D:\\...')#将“D:\\...”添加到搜索路径中Python包Python包由一个初始化文件“_init_.py”及一个或多个函数文件(模块文件)组成,将这些python文件放入同一个文件夹下就构成了一个Python包。包中的“__init__.py”文件用来申明包中包含的模块文件。如图所示为一个包的文件构成:£'nit.py201打12/1515:06Pythonfile1KE尸getMaxDisplacement.py2O17/12;1715^)6Pythonfile1KttgetfVlaxStress.py2O17A271716:0&Pythonfile1KLtopenOdbFile.py2017/12/1517:14PythonFile1KL图1.1Python包文件构成—init—.py文件包含的内容如下:__author__="FanShengbao"__all__=['openOdbFile','getMaxStress','getMaxDisplacement']其他文件中均包含着对应的函数导入模块的方法(包文件夹需放入Python的搜索路径之下):单个函数导入:fromPythonPackageNameimportgetMaxStress一次全部导入:fromPythonPackageNameimport*1.12Python文件和目录1.12.1目录操作获取当前工作目录和更改当前工作目录:importosprintos.getcwd()#获取当前工作目录令狐采学创作令狐采学创作os.chdir('D:\\')#更改当前工作目录获取指定目录下的某种类型文件,可以使用一个Python的标准库glob,代码实例如下:importglobprintglob.glob('D:\\*.odb')#获取所有的odb文件printglob.glob('D:\\name.*')#所有以name为名的文件1.12.2文件操作打开和关闭文件:file=open('D:\\1.txt')#打开文件,也可指定打开方式(r、w等)file.close()#关闭文件读写文件内容:通常读文件时使用一条语句读取全部内容,并将每一行内容独立存入列表中,具体示例代码如下:f=open('D:\\1.txt').read().split('\n').strip()也可以使用下表所示的读写文件函数进行读写操作,Python还有其他的一些读写操作函数未列举在表中。表15文件读写函数函数功能read()一次性读取全部内容readline()每次读取一行内容readlines(num)每次读取num行内容write()写文件,参数为一个字符串,可包含换行符writelines()与多仃,参数为一个列表,换仃添加\n1.13Python异常处理Python异常处理能够规避程序执行错误,当程序出错时能够进行相应的处理或者直接忽略错误继续执行程序。异常处理结构(pass可以替换为相应的代码):try:passexceptErrorType:passfinally:pass将可能出错的代码放入try代码行下面,except后接指定的错误类型或不指定(接受所有错误),当指定错误发生时,程序执行except下的程序,最后执行finally下的程序。
第二章ABAQUS/Python二次开发ABAQUS执行Python程序ABAQUS执行Python程序的方法可以找百度,下图为ABAQUS软件自带的编译器PDE,可用于调试Python程序,支持断点调试。图2.1ABAQUS软件PDE编辑器常用的ABAQUS软件执行Python方法:Fil—>RunScript...再选择需要运行的Python程序文件直接在宏程序里面编写程序,再调用宏管理器(Fil—>MacroManager...)执行程序只写几行代码的话,可以到ABAQUS软件底部的kernelcommandlineinterface中编写图2.2kernelcommandlineinterface窗口
令狐采学创作编写ABAQUS/Python程序下面是一个ABAQUS/Python程序的简单例子:该段程序生成如图所示的三维模型并导入到装配模块中。#-*-coding:utf-8-*-fromabaqusimport*#导入Abaqus常量模块fromabaqusConstantsimport*#导入Abaqus中常用的模块,例如step,materialfromcaeModulesimport*#新建一个Model并命名为Model-1model1=mdb.Model(name='Model-1')#创建一个三维可变形实体,并命名为Part-1part1=model1.Part(name='Part-1',dimensionality=THREE_D,type=DEFORMABLE_BODY)#创建一个名为Sketch-1的草图skt=model1.ConstrainedSketch(name='Sketch-1',sheetSize=100)#在创建的草图中绘制一个矩形skt.rectangle(point1=(-50,-50),point2=(50,50))#在草图中心绘制一个R=25的圆skt.CircleByCenterPerimeter(center=(0,0),point1=(25,0))#对草图skt进行拉伸,指定深度为50part1.BaseSolidExtrude(sketch=skt,depth=50)asm=model1.rootAssembly #访问装配模块#将新建的part1添加到装配中asm.Instance(name='Part-1-1',part=part1,dependent=ON)ABAQUS录制Python程序使用宏管理器可以将对ABAQUS的操作录制成Python程序,通过宏录制可缩短程序开发时间,方便对ABAQUS软件进行二次开发。稍加修改录制后的程序,就能得到想要的效果。下图为ABAQUS软件的宏管理器(File—〉MacroManager…):DismissDismiss图2.3ABAQUS软件宏管理器令狐采学创作点击Create…能够对ABAQUS软件的操作进行录制,生成Python代码并添加到宏管理器中,某些情况下需对程序进行一定的编辑才能重复出录制的操作,直接运行可能得不到与之前操作一样的结果或者程序直接报错。ABAQUS/Python对象介绍session对象session模块主要用来控制窗口显示属性,例如新建多个窗口、设置窗口大小、调整当前显示窗口和打开odb文件等。录制程序时会出现多行以session开头的语句,但其中大部分记录的是我们调整视图的操作,例如转动或平移一下模型,编辑时可删除这些语句。获取当前显示的窗口名称:viewportName=session.currentViewportName获取当前显示的窗口的model名称:viewportName=session.currentViewportNamemodelName=session.viewports[viewportName].displayedObject.modelName新建一个窗口:session.Viewport(name='Viewport:2')mdb对象mdb对象是ABAQUS前处理中最为重要的一个对象,是一个顶层对象,下面包含着丰富的子对象和方法。表21mdb对象信息成员类型名称功能构造函数Mdb()生成一个新的模型数据库openMdb()新建一个cae文件,参数为cae文件兀整路径mdb.close()关闭当前cae文件,并不保存成员函数mdb.save()保存当前cae文件mdb.saveAs()另存为cae文件,参数为另存cae文件的兀整路径mdb.Model()生成一个model,参数为model名()当前模型创建的所有job成员变量mdb.models()当前模型所有的model每个cae文件包含一个或多个Model,大部分前处理信息均包含在每个Model下面,通过mdb.models[modelName冋单独访问每个Model下的数据。通过每个Model可继续访问之下的part、material和rootAssembly等。\=iHModels⑵ *(DtLParts(2)CeMaterials?卜様Calibrationsr宜Sections;Profiles0tSAssembly亩ASteps⑴rteFieldOutputRequests;hteHistofyOutputRequests图2.4Model下的部分对象Python在前处理中,可以用来建立复杂的三维模型,下面程序建立了一个三维函数曲面图,数学公式如式2.1所示,代码如下:#程序开始#-*-coding:utf-8-*-fromabaqusimport*fromabaqusConstantsimport*fromcaeModulesimport*importmathpart1=mdb.models['Model-1'].Part(name='Part-1',dimensionality=THREE_D,type=DEFORMABLE_BODY)point_U=[]point_Utemp=Nonepoint_V=[]point_Vtemp=[]foriinrange(-100,100):point_V.append([])foriinxrange(-100,100):point_U=[]forjinxrange(-100,100):x=0.025*iy=0.025*jcoord=(x,y,3*x*math.exp(-x**2-y**2))point_U.append(coord)point_V[j+100].append(coord)part1.WireSpline(points=point_U,mergeType=MERGE,meshable=ON,smoothClosedSpline=ON)foriinpoint_V:part1.WireSpline(points=i,mergeType=MERGE,meshable=ON,smoothClosedSpline=ON)part2=mdb.models['Model-1'].Part(name='Part-2',dimensionality=THREE_D,type=DEFORMABLE_BODY)edges=[]foriinpoint_V:part2.WireSpline(points=i,mergeType=MERGE,meshable=ON,smoothClosedSpline=ON)foriinpoint_V:edges.append((part2.edges.findAt(i[0]),))part2.ShellLoft(loftsections=(edges),startCondition=NONE,endCondition=NONE)asm=mdb.models['Model-1'].rootAssemblyasm.Instance(name='Part-1-1',part=part1,dependent=ON)asm.Instance(name='Part-2-1',part=part2,dependent=ON)session.viewports['Viewport:1'].setValues(displayedObject=asm)该程序生成两个三维模型,如图所示:图2.5线框模型图2.6曲面模型odb对象odb对象和mdb对象有很多的相似性,包含的对象和访问方式也几近相同。下面代码可用于读取指定odb文件的最后分析步的最大应力并打印显示出来:defreadMaxStress(myViewport,jobName):path=os.getcwd()o1=session.openOdb(name=path+'\\'+jobName+'.odb')myViewport.setValues(displayedObject=o1)myViewport.odbDisplay.setPrimaryVariable(variableLabel='S',outputPosition=INTEGRATION_POINT,refinement=(INVARIANT,'Mises'),)myViewport.odbDisplay.display.setValues(plotState=(UNDEFORMED,))myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF,))printmyViewport.odbDisplay.contourOptions.autoMaxValue2.5ABAQUS完整二次开发示例该段程序实现了平板拉伸应力分析,完成了从建模、添加边界条件载荷、监控计算状态和应力自动读取完整分析过程。#-*-coding:utf-8-*-fromabaqusimport*fromabaqusConstantsimport*fromcaeModulesimport*importosimport__main__defPlateTensile(h,w,r,t,f):#检测输入是否正确ifr>=h/2.0:print"Error:Radius>Height"returnFalseifr>=w/2.0:print"Error:Radius>width"returnFalseifr<=0ort<=0orf==0:print"ERROR!!!"returnFalse#创建名为'Model-1'的模型对象model=mdb.Model(name='Model-1')part=model.Part(name='Part-1',dimensionality=THREE_D,type=DEFORMABLE_BODY)asm=model.rootAssemblyskt1=model.ConstrainedSketch(name='Skt1',sheetSize=200)skt1.rectangle(point1=(-w/2.0,-h/2.0),point2=(w/2.0,h/2.0))skt1.CircleByCenterPerimeter(center=(0,0),point1=(r,0))part.BaseShell(sketch=skt1)session.viewports['Viewport:1'].setValues(displayedObject=part)model.Material(name='Material-1')model.materials['Material-1'].Elastic(table=((210000.0,0.3),))model.HomogeneousShellSection(name='Section-1',preIntegrate=OFF,material='Material-1',thicknessType=UNIFORM,thickness=t,thicknessField='',idealization=NO_IDEALIZATION,poissonDefinition=DEFAULT,thicknessModulus=None,temperature=GRADIENT,useDensity=OFF,integrationRule=SIMPSON,numIntPts=5)f1=part.facesregion=regionToolset.Region(faces=f1)part.SectionAssignment(region=region,sectionName='Section-1',offset=0.0,offsetType=MIDDLE_SURFACE,offsetField='',thicknessAssignment=FROM_SECTION)asm.Instance(name='Part-1-1',part=part,dependent=ON)model.StaticStep(name='Step-1',previous='Initial')s1=asm.instances['Part-1-1'].edgesedges1=s1.findAt(((w/2.0,0,0),))edges2=s1.findAt(((-w/2.0,0,0),))rp1=asm.ReferencePoint(point=(w/2.0,0,0))region1=regionToolset.Region(edges=edges1)region2=regionToolset.Region(referencePoints=(asm.referencePoints[rp1.id],))#参考点和边进行耦合操作model.Coupling(name='Constraint-1',controlPoint=region2,surface=region1,influenceRadius=WHOLE_SURFACE,couplingType=KINEMATIC,localCsys=None,u1=ON,u2=ON,u3=ON,ur1=ON,ur2=ON,ur3=ON)model.ConcentratedForce(name='Load-1',createStepName='Step-1',region=region2,cf1=f,distributionType=UNIFORM,field='',localCsys=None)model.EncastreBC(name='BC-1',createStepName='Initial',region=regionToolset.Region(edges=edges2),localCsys=None)part.setMeshControls(regions=f1,elemShape=QUAD)令狐采学创作part.seedPart(size=(w+h)/200.0,deviationFactor=0.1,minSizeFactor=0.1)part.generateMesh()jobName='Test-1'mdb.Job(name=jobName,model='Model-1',description='',type=ANALYSIS,atTime=None,waitMinutes=0,waitHours=0,queue=None,memory=90,memoryUnits=PERCENTAGE,getMemoryFromAnalysis=True,explicitPrecision=SINGLE,nodalOutputPrecision=SINGLE,echoPrint=OFF,modelPrint=OFF,contactPrint=OFF,historyPrint=OFF,userSubroutine='',scratch='',resultsFormat=ODB,multiprocessingMode=DEFAULT,numCpus=1,numGPUs=0)fromjobMessageimportJOB_ABORTED,JOB_COMPLETED,JOB_SUBMITTED#读取最大应力值并打印defreadMaxStress(userData):path=os.getcwd()o1=session.openOdb(name=path+'\\'+jobName+'.o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省聊城市文苑中学2025届高考化学五模试卷含解析
- 医学资料 2021年神经外科分级护理标准学习课件
- 工业安全宣传漫画
- 统编版(2024)语文一年级下册第八单元综合素质测评A卷(含答案)
- 云南省巧家县第三中学2025届高考压轴卷化学试卷含解析
- 价格谈判技巧培训
- 吉林省吉林市龙潭区吉化第一高级中学2025届高考化学全真模拟密押卷含解析
- 托班安全我会排好队
- 中考数学高频考点专项练习:专题14 考点32 正方形及答案
- 人教版日月潭课件
- 河南省豫西北教研联盟(洛平许济)2024-2025学年高三第二次质量检测数学试题
- T-SDFA 048-2024 混合型饲料添加剂中二硝托胺的测定 液相色谱-串联质谱法
- 车间规则制度培训
- 2024-2025学年上海市八年级语文下学期3月练习试卷附答案解析
- 2025年辽宁医药职业学院单招职业适应性测试题库附答案
- 指向地理综合思维培养的学科融合教学策略研究
- TSJNX 001-2024 低碳近零碳园区评价规范
- 第三单元第三课信息检索的方法教学设计 2024-2025学年西交大版(2024)初中信息技术七年级上册
- 2024山西云时代技术有限公司社会招聘59人笔试参考题库附带答案详解
- 2025年江苏省高职单招《职测》高频必练考试题库400题(含答案)
- 人教精通版(2024)三年级下册英语全册教案(单元整体教学设计)
评论
0/150
提交评论