[周边教程]MinecraftMOD制作_从入门到精通_第1页
[周边教程]MinecraftMOD制作_从入门到精通_第2页
[周边教程]MinecraftMOD制作_从入门到精通_第3页
[周边教程]MinecraftMOD制作_从入门到精通_第4页
[周边教程]MinecraftMOD制作_从入门到精通_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、完美 WORD格式资料第一草学习Javajava是什么? java是一门计算机语言,我相信很多人都知道这一事实,这很可能是由 于您曾经玩过由这一语言编译而成的游戏。Java是一门面向对象的计算机语言,也就是说它由两主要部分组成:字段和方法。那什么是字段和方法呢?我们以人为例:我们可以把一个人比作一个工程( o(n_n)o好像有些类比不当)。在这个工程中会 有许多包,比如 "human.body.head”。在每个包中会包含好多类(我们之后详细阐述),比 如说"ear.java"就是一个类。现在我们已经知道了字段和方法,那么什么是类呢?我们以之 前的ear.java

2、为例,这个耳朵类可以诸如耳垂高度”和音量”等特征,所以一个解决方案是建立如"listenTo()和moveEars()"等函数。您可能会问这到底是什么呀,也可能会问这些和 Minecraft到底有神马关系?好吧,以 下就是一个例子:方法/函数举例1. public int getMaxHea代h()2. 3. return 20;4. 复制代码这是minecraft中EntityCreeper.java 中的一段代码。这段代码非常基本,您只需关心 的是如果把返回值 20改为其它的什么东西会发生什么呢?当然您有可能会猜测:嗯,有可 能会带来我砍苦力怕多少刀它会死呢?其中的&q

3、uot;public"表示其它的类也可以调用该函数,"int"表示该函数为整型函数(在 +/-2,147,483,647 之间的所有十进制整数)。"getMaxHealth()”为函数名,"return 20"表示返回值,比如如果有人问这个类:苦力怕的最大生命值是多少呀?",它将回答:是20”。由于我们在函数头声明了"int",所以我们的返回值必须为整数。字段/变量举例1. private double velocityY;复制代码这是在EntityMinecart类中所生命的一个字段。其中"p

4、rivate"表示只有这个类才可以访 问这个字段,"double"表示为一个十进制数,"velocityY"为这个变量的变量名(字段和变量 有时表示同一个东西)。以上就是关于Java的一些最基本的知识。网络上还有许许多多更为优秀的Java教程,所以就不再花时间赘述了。相关教程: TheNewBoston's Java (Beginner) ProgrammingTutorials The JavaTM Tutorials第二章计划与头脑风暴再次强调,这一章非常重要,有许多准备制作MOD的人士,最后全都了。您应该对于这个MOD最终能够实现

5、什么功能、您能做到什么程度有- 个明确的计划。可以在脑中对MOD进行简单地规划,或者对于每一项您所要添加的项目列出一份长达10页的清单,这都可以,取决于您个人的习惯。需要牢记的事情:二!, 从简单之处做起!我见过好多好多人再问楼主类似的问题:如何让NPC自动建筑、谈话、打猎、去杀末影之龙呀? "。MOD制作是一个长期的过程,您也不可能马上就成为高手。正如我之前谈过 的,您可以通过学习一些Java基础知识来了解一些知识,这样可以使您更快地成为高手。所以说要从简单之处入手,先试着为 Minecraft添加一个方块吧。 要有兴趣!请注意,为您喜欢的游戏制作MOD并不应该成为您的一份工作,在

6、 MOD制作之时您应该能获得成就感与愉悦。虽然当您不能修正错误,或者您的MOD的反响没有预想中 高时难免会灰心丧气,但这只是一时之举。如果您经常性地感到厌倦并没有从中获得乐趣,或许玩Minecraft更加适合您吧第二章到此结束一一第三章:设置工作环境在这章开始之前呢,我们需要提一下forge。我个人相比较modloader而言更倾向于forge。您可以在安装之前阅读关于Forge与modloader之间的比较,但是记得总结。有许多工具有助于提高您 MOD的兼容性并使您的 MOD制作之路更为轻松。Forge可以通过更 新支持不同的版本但是 modloader只支持对应的版本。所以不要犹豫通过安装

7、FML和其他一些工具,您可以不需要安装那繁多的API。如果您有任何问题,请移驾至并加入 #MinecraftForge 。请参阅本文:准备文件在工作环境中,您需要一份纯净的.minecraft文件夹。可以通过备份您当前 .minecraft文件夹,并通过点击 "force update"来获得纯净的 minecraft文件下载您在开始MOD制作之前还需要下载一下这三样东西: 最新版本的Eclipse :/downloads/packages/eclipse-ide-java-developers/junor 最新版本的 Minecr

8、aft ForgeSRC : 最新版本的 MCP: http:/mcp.ocean-labs.de/index.php/MCP_Releases设置工作环境首先将MCP解压缩至您所希望的位置,我个人的习惯是在桌面新建一个名为"Mods"的文件夹,并将MCP解压缩至那里。Forge SRC的下载文件应该会是一个单独的名为"forge"的文件夹,将其解压缩至MCP目录下的“jars文件夹里(其实只需要Bin和resources文件夹但是无妨)。由于 Forge不在依赖 modloader ,所以您不再需要安装 modloader 了。如果您计划制作支持多人生

9、存模式(SSP)的MOD,您必须要在 下载 minecraft_server.jar 文件,也放在前文所述的"jars"文件夹中,如下图所示:Dat© modrfied,Favorites.DownloadCrossbow Mod New匚 DesktopRecent Places-DropboxName. binresou re EE|i*l nnintcrafLserverjar22/0C/2012 302 PMZZWZOH 32 PM22/06/2口 12PMTypeFile folderFile folderExecutable Jar F专业整理分享 L

10、ibraries*' DccLimeritsMjiic-PicturesVideos通 HomegroupCcmputer:Local Disk (C) jData (X:)斗 Netwarer 工 MHCH-PCrri3 items完美 WORD格式资料现在返回MCP目录下的“forge文件夹,运行"install.cmd"文件,如果您操作系统不同文件名 字也不同。稍等片刻,安装结束后我们继续收尾工作如果您在运行install.bat或者install.sh文件时没有任何错误,您现在应该可以开始您 的大师之路了。返回 Mcp/eclipse文件夹中,复制文件夹的地

11、址,如:X:UsersMitchDesktopModsNewModMCPeclipse 。现在您可以通过在您文件解压缩至您所希 望的位置的方式安装 eclipse。安装结束之后通过双击eclipse.exe的方式运行eclipse ,当系统问及您的工作环境时,粘贴之前您复制的Mcp/eclipse文件夹的位置。当加载结束后,需要您找到"Client/src/net.minecraft.src/ 的位置。第四章:您等待已久的一章我希望您能多加阅读一些Minecraft的代码,虽然对于一个java造诣不精人来说,代码有可能显得凌乱,但是不要灰心丧气。第一节:您的第一个方块通过在net.m

12、inecraft.src 包内右击任意文件,点击New ->Class 。将其命名为 “mod_YOURMODNAME ,必须确保其以 “mod开头,因为只有这样系统 才会识别该文件为一个 MOD并开始加载。无需在底部选择任何的选项,点击"Finish"完成创建。此时您会看见一段预先写好的类代码。您的第一件事就是要扩展这个MOD使之成为一个基本类(BaseMod )。您可以通过添加"extends BaseMod”这样的代码完成类的声明,此时代码如下:1. package net.minecraft.src; 2.3. public class mod_Yo

13、urModName extends BaseMod 5.专业整理分享完美 WORD格式资料复制代码当然,此时会在“mod_YOURMODNAME处显示错误,此时将鼠标移至该错误处,在弹 出的对话框中单击"Add unimplemented methods"。此时会在当前的基本类里添加两个类函数:“load与“getVersion您可以删除掉“/TODO'这种行,在"getVersion类函数中,您需要将null替换为" 1.0或者其他您喜欢的版本号。您需要保留引用,就如同需要返回一个字 符串一样。此时的代码如下所示:1. package net.

14、minecraft.src;2.3. public class mod_YourModName extends BaseMod 4.5. Override6. public String getVersion() 7. return "1.0"8. 9.10. Override11. public void load() 12.13. 14.15. 复制代码现在您终于可以开始创作您的第一份方块代码啦在类的顶端添加下列代码(在“之内):1. public static Block yourFirstBlock = new BlockTutorial(blockID,0).se

15、tHardness(2.5F).setStepSound(Block.soundWoodFootstep).setBlockName I ("blockName"); 复制代码其中:名称含义public表示所有类均可以访问。表示在类内不创建一个新的实例的条件下即可访问(详情请查阅 程)staticBlock该变量引用"Block.java "yourfirstBLock变量名,叫什么都行此时在BlockTutorial类中创建一个新的头例,由于我们之前没=new BlockTutorial因此会出错。您可以将其改为任何您喜欢的名字,只要之后的名同就可以了

16、。您所传递给BlockTutorial类的信息,就是方块ID。您可以在这里 成您所希望的任何数值。特别提醒您,在最新版本的Forge中,(blockID, 0)调整您的方块ID,并将其设置到137到4096中的一个未使用过您可以在这里查看您的 MOD与MOD的兼容性。之后的0稍后会 阐述,现在暂且放过它。.setHardness(2.5F)设置该方块的硬度为 2.5,您可以随意调整。走在上面的严首,如果您喜欢的话,也可以将soundWoodFootsoundClothFootstep或者任彳可你售欢的严日。 .setStepSound(Block.soundWoodFootstep)这个变量无

17、关紧要,只是要保证每个的名字不同就可以了。.setBlockName("blockName");现在您已经掌握了如何新建一个BlockTutorial类了,当然有可能在之前您就把这个名字改掉了现在我们要扩展方块,我们首先需要执行ITextureProvider ,当您将如下代码复制进其 中时,可以使鼠标悬停在ITextureProvider 处并单击导入(import )。2. public class BlockTutorial extends Block implements ITextureProvider 复制代码现在我们需要为我们之前跳过的那部分创建一个构造函数(

18、可以在 java教程中获得更 为详实的信息)。3. public BlockTutorial(int i, int j)4. 5. super(i, j, Material.wood);复制代码含义由于是构造函数,此处需与类的名字相同。6. 我们在之前使用(blockID, 0)的声明。更为详细的来说,表示该构造函数使用两个整数变量并 名为i和jo表示需要使用超类来传递方块信息,这也是问什么我们扩展这个类的缘故。可能难以理解但java 教程 o( n n )oMaterial.wood 是这是由我们的 MOD类中继承的将要传给方块的参数,我们同时也传递了 望这个方块在被镐敲击时可以更为容易地被

19、破坏。好,现在您即将进行的步骤是添加一个Forge的类函数以便我们可以为这个方块设置材质。1. public String getTextureFile()2. 3. return "/Mic'sMods/CrossbowMod/gui/Crossbow.png"4. 复制代码切记:不要更改类函数的第一行!乱修改可能覆盖或者替换类函数。这是一个用于十字弓MOD的例子,其中的材质存储在 minecraft.jar的相应位置中。您可以很轻松地修改您所使用的材质,但是如果指向一个空位置则无法进行加载。当然也要保证是双引号最后还需要一个Forge的类函数将该方块添加至创造模

20、式的物品栏中。1. public void addCreativeItems(ArrayList itemList)2. 3. if(blockID = mod_ YourModName. yourFirstBlock.blockID)4. 5. itemList.add(new ItemStack(this);6. 7. 复制代码当鼠标悬停至ArrayList时可以导入。最后一个类函数可能有些复杂名称含义void表示该函数没有返回值类函数和构造函数的名字。不要进行修改,否则会覆盖 类函数。addCreativeItems(ArrayList itemList)if(根据真假/、问返回值也不同

21、,如果不懂请多看看教程blockID = mod_ YourModName.yourFirstBlock.blockID逻辑表达式,如果该方块的方块ID与您创建的方块的方继续itemList.add(new ItemStack(this);在创造模式中可以创建和堆叠这一方块,这条语句不W亦之后,我们在10ad()类函数中添加如下语句:1. ModLoader.registerBlock(yourFirstBlock);2. ModLoader.addName(yourFirstBlock, "Woohoo! My first Block :D"); 复制代码其中:名称含义M

22、odLoader.registerBlock您所调用的类函数(yourFirstBlock)您所使用的方块,确保之前声明过。ModLoader.addName调用另一个类函数,用于添加名字(yourFirstBlock, "Woohoo! My first这里是为您的方块实例赋予名字的地方,您可以在这里写红石灯(RedstoBlock :D");Lamp)”楼主我要整合包 (LouzhuWoyaoZhengheBao) 等等。现在要做一件最为重要的事请:hx940525 ,如果您要查看本帖隐藏内容请回复 您已经为Minecraft制作了一个属于您 的MOD,不再是MOD制作

23、小白痴了! 无论这个MOD多么粗糙和简陋,但都是 您在MOD制作大师之路的一个见证!希 望当您在成为大师之时蓦然回首还能记 得您的第一份作品,无论如何,恭喜 您! !第四章:您等待已久的一章我希望您能多加阅读一些 Minecraft的代码,虽然对于一个 java造诣不精人来说,代 码有可能显得凌乱,但是不要灰心丧气。第二节:为您的方块添加材质在这一部分教程中,将会为您讲述如何为您的方块添加材质。首先您需要一份默认的 子图所谓 子图”就是一份可以由程序在需要时可以随时加载的图片。在 Minecraft中,可以从terrain.png 和items.png中加载材质。实际上,依托于Forge ,您

24、所做的工作即为编辑一张属于您的terrain.png以及items.png并将您的MOD与这些子图之间建立联系。再次特意为您精心准备了两张默认的子图( items.png、 terrain.png )。我们可以打开编辑软件(Photoshop、Gimp、Paint.NET (译者强力推荐),此时 您可以看见256个紫色方块,现在需要做的就是按照您的喜好绘制图案。请牢记您的材质是16X16的,并且按照如下方式排列。您可能很好奇为什么是从0开始的呢?好吧,还记得我们之前的 “(blockID, 0)吗'?其中的“涮是调用这个文件。如果我们在之前的文档中保持“0不变就会在加载子图之后您的方块

25、将显示为蓝色的“昉块,如果我们在代码中将“改为“1;则在最后您的方块将变为红色“1方块。当您绘制完您的方块材质后,您需要以png格式保存这份子图,否则Minecraft不会正确加载。还记得之前的 “getTextureFile()类'函数么,Forge虽然会自动进行寻找,但还请将 子图与代码放在一系列的文件夹内。打开“YourMCPFolder/jars/bin/minecraft.jar并将文件夹拖入其中,此时 getTextureFile()就应该在 minecraft.jar内找到您子图所在的位置。这可 能有些晦涩难懂,所以我们需要测试一下您是否真正搞懂了。在我们运行客户端之前还

26、有一件事需要进行:需要Forge预加载材质。1. MinecraftForgeClient.preloadTexture("/New/Untitled-1.png"); 复制代码请确保您在类函数中所车入的文件地址与getTexture()所引用地址相同。我使用Forge客户端而不是用普通的forge类的原因是材质只是在客户端加载,不需要服务器端提供支持。现在您就应该看到您的那个大大的0方块啦P.S:默认的子图文件下载地址在这里第四章:您等待已久的一章我希望您能多加阅读一些Minecraft的代码,虽然对于一个 java造诣不精人来说,代码有可能显得凌乱,但是不要灰心丧气。第

27、三节:创建一份合成表在这一节,我将为您讲述如何创建一份合成表,本章不会有任何下载内容o( n _n)o当您已经成功地掌握了前两节的内容,您就已经基本掌握了制作MOD的基本知识。现在需要为那些奋斗在生存模式的人们考虑了本节内容十分简单,仅调用一个类函数。所以您可以尝试一下能否自己一个人搞清楚代码,我会将释义附在后面。当然,这些代码完全可以一行写完,但是写成这样子更为直观,就好像您在用工作台进行合成一样。2. ModLoader.addRecipe(new ItemStack(yourFirstBlock), new Object 3. "BBB",4. "BAB&q

28、uot;,5. "BBB",6. Character.valueOf('A'),Item.diamond,7. Character.valueOf('B'),Block.obsidian8. );复制代码您看懂了么??您当然也可以在合成中使用您自己创建的方块或物品,举例来说,"Character.valueOf('A'), yourFirstBlock "即代表之前所述的“助您所创建的方块。如下图所示:专业整理分享完美 WORD格式资料完美 WORD格式资料以下为一些在编写合成公式时的小技巧:您可以使用空格

29、代表工作台中的空位。1. "DDD", " I ", " I ", 复制代码您可以简化合成公式,这样子无论原材料在工作台内如何放置,只要形状正确即能合成(木板合成工作台就是一例)1."BB", "BB",复制代码您可以只使用单一原材料进行合成,也就是说放入一个该方块或物品即可合成您所希 望的物品。1."Z",复制代码第四章:您等待已久的一章我希望您能多加阅读一些Minecraft的代码,虽然对于一个 java造诣不精人来说,代码有可能显得凌乱,丧气。第四节:生成矿藏现在您可以

30、能会想如何制作一份矿藏呢?如果您希望制作一份矿藏,请不要为其设置可以进行合成的要素 不能合成出来的。建议您重新为自己的矿物方块设计一套材质,毕竟在许多灰色的石头中间突然挖到一个蓝色大方块很是诡 据自己使用photoshop或Gimp的水平进行创作,甚至直接拷贝原版材质并加以修改其中的色调和饱和度也是一 选择.还记得我们在教程之前提到的".setHardness(2.5F)"么?在制作矿藏时这一参数也需要考虑在内:0.1F意味间摧毁该方块,而1000.0F则意味着您可以挖到天荒地老。还有一点请注意,此处与您实际进行采矿无任何相关 会进行讲解。我们使用generateSurfa

31、ce()类函数对modloader类函数进行覆盖,当生成世界时就会调用这个类函数,并进类函数的语句。以下代码将用于您的mod_file :Overriding The ModLoader Method1. Override2. public void generateSurface(World world, Random random, int chunkX, int chunkZ)3. 4.5. 复制代码再次强调,不要做任何修改,因为您的任何改动都会带来不可知的结果。现在需要再去中添加一个循环语句:Generation For Loop ?1. for(int i = 0; i < 2

32、0; i+) 2. int randPosX = chunkX + random.nextInt(16);3. int randPosY = random.nextInt(20);4. int randPosZ = chunkZ + random.nextInt(16);5. new WorldGenMinable(this.yourFirstOre.blockID, 8).generate(world, random, randPosX, ran randPosZ);for(.)表示循环,详ft请参阅 java教程默认的循环语句,您只需要关心其中的“ 20”就可以了,如果您将其设int i

33、= 0; i < 20; i+代表该矿物如同钻石一样珍惜,而将其设置为20则代表如同煤那样广泛可以将其最大设置为 50左右。int randPosX = chunkX + random.nextInt(16);表不藏的确切1i置具中变量randPosX肝f存储矿藏的 X坐标,而矿上置则由1到16的一个随机数与区块位置共同决定。不要更改其中的11int randPosY = random.nextInt(20);矿脉的y坐标由1到20的一个随机数决定,您可以将20改为任何一个如矿石就将其设置为16而煤则为128。int randPosZ = chunkZ + random.nextInt(

34、16);矿脉的Z坐标由变量randPosZ确定,矿脉的实际位置则由1至U 16的一与区块位置共同决定。不要更改其中的16!new WorldGenMinable为WorldGenMinable类中添加一个新的实例,该实例主要用于控制生成(this.yourFirstOre.blockID, 8)控制您所生成矿脉的最大矿石数量,最小值为3亦即每个矿脉只生成.generate在 WorldGenMinable 中调用 generate 类函数。''world''为生成世界的名称,可以由delaration 类函数提供;"Random(world, rand

35、om, randPosX, randPosY, randPosZ)的随机场,也由 delaration 类函数提供;"Random" X, Y, Z 为三个事 用于控制矿脉的位置。我们接下来设置矿藏的硬度等级,也就是说使用何种镐开采这一种矿藏,以下为典型矿石的硬度等级:黑 石为2。铁矿石为1。在您的load()类函数中添加如下代码:Setting Harvest Level1. MinecraftForge.setBlockHarvestLevel(yourFirstOre, "pickaxe", 3); 复制代码此时您的矿藏创建之旅就临近尾声,大家请欣

36、赏我创造的超级恶劣材质的矿藏专业整理分享P.S:在您重新生成一个世界后 (也就是您更改了控制世界生成的变量)如果出现错误,请先检查区块生成检查代码问题。d7z65.png (118.59 KB, 下载次数:14)第四章:您等待已久的一章我希望您能多加阅读一些 Minecraft的代码,虽然对于一个 java造诣不精人来说,代 码有可能显得凌乱,但是不要灰心丧气。第五节:添加烧炼与创建物品在这一节,我们将要为您在上一节创建的矿藏添加烧炼物,以锭为例,因为其相对较 为简单。创建物品与创建方块相比非常类似,事实上我们只需要在方块/物品的代码中修改一点点的地方即可。我们这次需要创建一个物品对象。New

37、 Item Object1. public static Item yourFirstItem = new ItemTutorial(280).setIconIndex(0).setItemName("item 复制代码与方块相比,除去使用的对象和类不同外其余完全相同。我们此时并没有使用在结构 体内添加子图的方法,而是使用.setlconindex(int)类函数,.setitemName与其相同,即使这些并没有在游戏中出现,但也应该与您的方块不同。现在我们创建ItemTutorial类,代码与前文所述 BlockTutorial类的代码完全相同(您 可以自行更改类的名称)。此时只需

38、要扩展item类,注意并不需要覆盖 addCreativeItems类函数。使用Modloader.addName()类函数、预加载子图(如果您方块和物品使用不同子图重 新预加载的话需要)在load()函数中添加如下代码:Into load() ?1. ModLoader.addSmelting(yourFirstOre.blockID, new ItemStack(yourFirstItem); 复制代码其中的第一个参数是输入端,亦即我们之前制作的那个方块,第二个参数为itemStack亦即我们通过熔炉烧炼出的您创建的物品。好啦,您的第一份物品已经通过熔炉烧炼而成了(其实就是一个矿石锭),这

39、一章虽然简单,但是却对下一节的教程非常有用,下一节我们讲述如何制作工具第四章:您等待已久的一章我希望您能多加阅读一些Minecraft的代码,虽然对于一个java造诣不精人来说,代码有可能显得凌乱,但是不要灰心丧气。第四章第六节:创建一组工具在接下来的教程中,我们主要集中于讲述如何创建一组工具。这一节要比其他各节都要复杂,所以各位同学打起精神来首先,我们需要为新的工具创建一个EnumToolMaterial。在您的类中添加如下代码,注意不是在任何的类函数中。New Tool Material ?1. static EnumToolMaterial BLUETOOLS = EnumHelper.

40、addToolMaterial("BLUE", 2,171,5F, 1,5); 复制代码名称含义EnumHelper.addToolMaterial我们所引用的Forge类函数。如果您在此处出现错误,请手动导入 net.minecraft.forge.EnumHelper 。以卜变量可以进行更改''BLUE''材料名称2您所设定的工具能够正常开采的硬度等级(如黑曜石矿为3、钻石矿为2、铁矿)171该工具的耐久度(木质工具为59、钻石,具为1561 )5F使用该工具开米的速度,您可以根据如下数据进行大概地判断(木质工具:2.0F具为8.0F)1

41、该工具对实体所造成的伤害值,具体计算公式如下(该数值+4)+2。(如此时每2.5颗心。)5可附魔性,此处不确定(石头为5、钻石为10、金为22)第二步,我们需要创建一个新的物品对象:New Items2. public static Item blueStoneShovel = new BlueStoneSpade(ItemID1,BLUETOOLS).setIconIndex(0).setItemName("customShovel");3. public static Item blueStonePickaxe = new BlueStonePickaxe(ItemID

42、2,BLUETOOLS).setIconIndex(1).setItemName("customPickaxe");4. public static Item blueStoneAxe = new BlueStoneAxe(ItemID3,BLUETOOLS).setIconIndex(2).setItemName("customAxe");5. public static Item blueStoneHoe = new BlueStoneHoe(ItemID5,BLUETOOLS).setIconIndex(4).setItemName("customHoe");6. public static Item blueStoneSword = new BlueStoneSword(ItemID4,BLUETOOLS).setIconIndex(3).setItemName("customSword");复制代码此时会报错,这是由于还没有新建类。BlueStoneSpade我们接下来所要创建的类的名字(ItemID1,为您的铲子所设置的物品ID。请记得为您每一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论