1、第九章 直接生成9.1 什么是直接生成?直接生成是一种直接定义节点和单元的方法,尽管 ANSYS程序提供了许多方便的命令用于节点和单元的拷贝、映像、缩放等操作,但用直接生成法构造模型是实体模型建模法构造同样模型的十倍数据量。本手册前面讨论的预规划(2)、坐标系(3)和工作平面(4)适用于直接生成也适用于实体建模。由直接生成法生成的模型严格按节点和单元的顺序定义组集而成,即使节点、单元生成操作可交替进行,单元必须在其节点全部生成后才能定义。9.2 节点本节叙述多种直接生成节点的方法,主题包括:定义节点从已有节点生成另外的节点查看和删除节点移动节点旋转节点的坐标系读、写包含节点数据的文本文件9.2
2、.1 定义节点利用下列方法定义节点:在激活的坐标里定义单个节点,用下列方法:命令:NGUI: Main MenuPreprocessorCreateNodesIn Active CSMain MenuPreprocessorCreateNodesOn Working Plane如果利用 ANSYS交互功能,可定义一个工作平面的捕捉增量在图上通过拾取N,P生成节点。(关于工作平面可参见4)。在已有关键处定义节点,用下列方法:命令:NKPTGUI: Main MenuPreprocessorCreateNodesOn Keypoint移动一个节点到坐标系平面的一个交点,用下列方法:命令:MOVEG
3、UI: Main MenuPreprocessorMove / ModifyTo Intersect9.2.2 从已有节点生成另外的节点一旦生成了初始模式的节点,可用下列方法生成另外的节点:在已有两节点间的连线上生成节点,用下列方法:命令:FILLGUI: Main MenuPreprocessor-Modeling-CreateNodesFill between Nds从一种模式的节点生成另外的节点,用下列方法:命令:NGENGUI: Main MenuPreprocessor-Modeling-Copy-Nodes-Copy从一种模式的节点生成缩放的节点集,用下列方法:命令:NSCALEG
4、UI: Main MenuPreprocessorCopyScale & CopyMain MenuPreprocessorMove / ModifyScale & MoveMain MenuPreprocessorOperateScaleScale & CopyMain MenuPreprocessorOperateScaleScale & Move从三节点的二次线上生成节点,用下列方法:命令:QUADGUI: Main MenuPreprocessor-Modeling-CreateNodesQuadratic Fill生成一映像节点集,用下列方法:命令:NSYMGUI: Main Men
5、uPreprocessor-Modeling-ReflectNodes将一种模式的节点转换到另一个坐标系,用下列方法:命令:TRANSFERGUI:Main MenuPreprocessorMove / ModifyTransfer CoordNodes在弧线的曲率中心定义一个节点,用下列方法:命令:CENTERGUI: Main MenuPreprocessorCreateNodesAt Curvature Ctr如果在弧的曲率中心定义了一个局部柱坐标系CS,可用 FILL命令 Main MenuPreprocessor CreateNodesFill between Nds在孤线上生成另外
6、的节点。如果给定了曲率半径,在节点 NODE1、NODE2、NODE3 确定的平面上,沿NODE1NODE2 的中垂线方向中可自动计算其曲线中心。9.2.3 查看和删除节点利用下列方法查看和删除节点:对节点列表,用下列方法:命令:NLISTGUI: Utility MenuListNodesUtility MenuListPicked EntitiesNodes显示节点用下列方法:命令:NPLOTGUI: Utility MenuPlotNodes如已用/PNUM 命令(菜单途径 Utility MenuPlotElements)激活了节点号显示,用 EPLOT命令(菜单途径 Utility
7、MenuPlotCtrlsNumbering)画单元时将标出节点号。用下列方法删除节点:命令:NDELEGUI: Main MenuPreprocessorDeleteNodes注意:删除节点也将删除包括节点在内的任何边界条件(如位移、力等)及任何耦合或约束方程。9.2.4 移动节点用下列方法移动节点:用 N命令(或其它任何生成节点的命令)通过屏蔽重新定义一节点。修改一个(或所有)已定义节点的坐标(即将一个节点移动到一个新位置),用下列方法:命令:NMODIFGUI: Main MenuPreprocessorCreateNodesBy AnglesMain MenuPreprocessorM
8、ove / ModifyBy AnglesMain MenuPreprocessorMove / ModifySet of NodesMain MenuPreprocessorMove / ModifySingle Node9.2.5 计算节点间的距离计算两节点间的距离:命令:NDISTGUI: Main MenuPreprocessor-Modeling-Check GeomND distances9.2.6 旋转节点坐标系用下列方法旋转节点的坐标系(缺省地与总体笛卡尔坐标系平行):将节点坐标系旋转到激活的坐标系,用下列方法:命令:NROTATGUI: Main MenuPreprocess
9、orCreateNodes-Rotate Node CS-To Active CSMain MenuPreprocessorMove / Modify-Rotate Node CS-To Active CS通过方向余弦旋转节点坐标系,用下列方法:命令:NANGGUI: Main MenuPreprocessorCreateNodesBy VectorsMain MenuPreprocessorMove / ModifyBy Vectors用 N或 NMODIF命令(本章前面叙述的)按一定角度旋转节点坐标系。关于节点坐标系参见3。9.2.7 读、写包含节点数据的文本文件可以读入包含节点数据的文本
10、文件。此功能对输入从另一个网格生成器、一个 CAD/CAM程序或另一个 ANSYS对话生成的 ASCII节点数据有用处。还可以将这样一个 ASCII文件写输出到另一程序(必须能读这个 ANSYS文件)或另一个 ANSYS对话中去。对于标准的 ANSYS模型生成对话不需要读写节点数据。指定从一节点文件读入节点数据用下列方法:命令:NRRANGGUI: Main MenuPreprocessorCreateNodesRead Node File从一文件读入节点,用下列方法:命令:NREADGUI: Main MenuPreprocessorCreateNodesRead Node File将节点写
11、到一文件,用下列命令:命令:NWRITEGUI: Main MenuPreprocessorCreateNodesWrite Node File9.3 单元本节叙述多种直接生成单元的方法。主题包括:定义单元的前提条件组集单元表指向单元表的项查看单元表的内容定义单元查看和删除单元从已有单元生成另外的单元利用特殊方法生成单元读写包含单元数据的文本文件通过改变节点修改单元通过改变单元属性修改单元9.3.1 定义单元属性的前提条件定义一个单元之前需要做两件事:1、必须已定义该单元所需的最少节点。2、必须已指定合适的单元属性9.3.1.1 组集单元表用下列方法和不同的坐标系命令组集单元属性表。关于生成单
12、元属性表的详细内容参见7。从单元库中定义一种单元类型,用下列方法:命令:ETGUI: Main MenuPreprocessorElement TypeAdd/Edit/Delete定义单元实常数用下列方法:命令:RGUI: Main MenuPreprocessorReal Constants定义线性材料属性用下列方法:命令:MP, MPDATA, MPTEMP, etc.GUI: Main MenuPreprocessorMaterial Propsoption激活一个数据表(对非线性材料属性)用下列方法:命令:TB, TBDATA, etc.GUI: Main MenuPreproces
13、sorMaterial PropsData TablesoptionMain MenuPreprocessorMaterial PropsMooney-Rivlinoption9.3.1.2 指向单元表中的项一旦生成了单元属性表,可以指向单元表中的不同项。这些指针在生成单元时有效,ANSYS 程序把表中的属性赋给单元。设置单元类型指针TYPE、单元实常数设置属性指针REAL、单元材料属性指针MAT或单元坐标系属性指针ESYS,可用下列方法(这四个命令的 GUI途径相同):命令:TYPE、REAL、MAI 或 ESYSGUI:Main Menu Preprocessor -Modeling-Op
14、erateExtrude/Sweep Default AttribsMain MenuPreprocessorCreateElementsElem Attributes属性表的示意图参见7 中的图 7-2。9.3.1.3 查看单元表的内容通过下列方法查看单元表的内容:对当前已定义单元类型的列表用下列方法:命令:ETLISTGUI: Utility MenuListPropertiesElement Types用下列方法列表实常数的设置:命令:RLISTGUI: Utility MenuListPropertiesAll Real ConstantsUtility MenuListPropert
15、iesSpecified Real Constants用下列方法列表线性材料属性:命令:MPLISTGUI: Main MenuPreprocessorMaterial PropsListUtility MenuListPropertiesAll MaterialsUtility MenuListPropertiesAll Matls, All TempsUtility MenuListPropertiesAll Matls, Specified TempUtility MenuListPropertiesSpecified Matl, All Temps用下列方法列表数据表:命令:TBLIS
16、TGUI: Main MenuPreprocessorMaterial PropsData TablesListUtility MenuListPropertiesData Tables用下列方法列表坐标系:命令:CSLISTGUI: Utility MenuListOtherLocal Coord Sys9.3.2 定义单元一旦定义了必要的节点并设置了单元属性,就可以定义单元了。利用下列方法,可通过确定其节点定义单元,必须输入的节点数和节点输入顺序由单元类型决定。例如,二维梁单元 BEAM3要求二个节点(I,J),三维块单元SOLID45要求 8个节点(第一个面 I、J、K、L 节点,对面
17、M、N、O、P 节点)。节点输入顺序决定了单元法向方向。详见8 中8.4。用下列方法定义单元:命令:EGUI: Main MenuPreprocessorCreateElements-Auto Numbered-Thru NodesMain MenuPreprocessorCreateElements-User Numbered-Thru Nodes如果交互进行工作,可用上面 GUI途径在图上拾取(节点)生成单元。如果用命令输入,只有 8节点可用 E命令输入。对于需要超过 8节点的单元类型,用 EMORE命令定义另外的节点。例如,三维 20节点块单元 SOLID95,除 E命令外还需要两个 E
18、MORE命令。(如果在图上拾取节点生成单元 EMORE命令是不需要的。)9.3.3 查看和删除单元用下列方法操作单元:用下列方法对单元列表:命令:ELISTGUI: Utility MenuListElementsUtility MenuListPicked EntitiesElements用下列方法显示单元命令:EPLOTGUI : Utility MenuPlotElements如果用/PNUM 命令(菜单途径 Utility MenuPlotCtrlsNumbering)打开单元号显示,在 EPLOT命令显示单元时将显示单元号。多数情况下,程序会自动分配单元号,使用下一个未用的号码。(第
19、一个 E命令定义单元号 1,第二个命令定义单元号 2,依次类推)。用下列方法删除单元:命令:EDELEGUI: Main MenuPreprocessorDeleteElements删除单元会在单元号序列中产生空白。尽管形成的空白编号是在单元编号序列的末尾,自动编号程序将不使用这些空白号码。(如果定义了 10个单元,然后将其全部删去,下一个 E命令会定义单元号 11,编号 110 将保持空白。)可以通过编号控制命令(见11)或通过 EN命令(菜单途径 Main MenuPreprocessorCreateElements)控制单元编号,将使用户能直接定义单元编号。9.3.4 从已有单元生成另外
20、的单元一旦定义了基本的单元,就可以用下列方法生成另外的单元:从已有模式的单元生成单元,用下列方法:命令:EGENGUI: Main MenuPreprocessorCopyAuto Numbered从已有模式的单元通过对称映像生成单元,用下列方法:命令:ESYMGUI: Main MenuPreprocessorReflectAuto Numbered从已有模式单元(手工控制编号)生成单元,用下列方法:命令:ENGENGUI: Main MenuPreprocessorCopyUser Numbered用对称映像(手工控制编号)生成单元,用下列方法:命令:ENSYMGUI: Main Menu
21、PreprocessorReflectUser Numbered这些命令并不生成节点,必须事先生成必要的节点。而且,生成单元属性(MAT、TYPE、REAL 和 ESYS)依赖于原来模式的单元属性而不依赖于当前指定的设置。9.3.5 用特殊方法生成单元有些特殊的单元可用下列特殊方法生成:在已生成单元外表面上生成表面单元用下列方法:命令:ESURFGUI: Main MenuPreprocessor-Modeling-CreateElements-On Contct Surf-option在某些热分析中,可用 ESURF,XNODE 命令生成带有任选节点的 SRUF151或SURF152单元。要
22、在已有面单元的边上生成重叠的表面单元并分配额外的节点作为最近的流体单元节点,用下列方法:命令:LFSURFGUI: Main MenuPreprocessorCreateElementsSurface EffectLine to Fluid在某些热分析中,用 LFSURF命令生成带有任选节点的 SURF151单元。要在已有实体单元的表面上生成重叠的表面单元并分配额外的节点作为最近的流体单元节点,用下列方法:命令:AFSURFGUI: Main MenuPreprocessorCreateElementsSurface EffectArea to Fluid在某些热分析中,可用 AFSURF命令
23、生成带有可选节点的 SURF152单元。当模型是由直接生成方法装配的,可以直接在已有单元的表面叠加生成表面单元并分配另外的节点作为最近流体单元的节点。用下列方法实现:命令 : NDSURFGUI:MainMenuPreprocessor-Modeling-CreateElements-Surf/Contact-Surface Effect-Attach to Fluid-Node to Fluid在有些热分析中用 NDSURF生成可选择节点的 SURF151或 SURF152单元。按下列方法用二维线单元(诸如间隙单元)连接重合的节点:命令:EINTFGUI: Main MenuPreproce
24、ssorCreateElementsAt Coincid Nd下列方法生成一般的接触单元(参见 ANSYS结构分析指南中的接触)命令:GCGENGUI: Main MenuPreprocessorCreateElementsAt ContactSrf9.3.6 读写包含单元数据的文本文件可以读或写一个包含单元数据的文本文件。这些命令用于和其它程序(或另一个 ANSYS对话)交换数据。在标准的 ANSYS模型生成中,不需要这些命令。用下列方法指定从一单元文件中读入单元:命令:ERRANGGUI: Main MenuPreprocessorCreateElementsRead Elem File用
25、下列方法从一文件中读单元:命令:EREADGUI: Main MenuPreprocessorCreateElementsRead Elem File用下列方法将单元数据写到一文件:命令:EWRITEGUI: Main MenuPreprocessorCreateElementsWrite Elem File9.3.7 注意重叠单元如果生成了重叠单元(即有相同节点和相同空间位置的单元)。则 ANSYS中诸如图形、加面载荷、选择逻辑等操作可能不会象预期那样,最好避免使用重叠单元,若不能避免的话,无论何时用到重叠单元必须格外小心。9.3.8 通过改变节点修改单元用不同节点重新定义单元,可用下列方法
26、,注意将单元属性指针置成正确的值(执行这些命令将当前的单元类型、实常数、材料特性及某些类型单元的单元坐标系赋给修改后的单元)。用下列方法修改已定义的单元:命令:EMODIFGUI: Main MenuPreprocessorMove / ModifyModify Nodes用下列方法通过定义编号和连接的节点重新定义单元:命令:ENGUI: Main MenuPreprocessorCreateElementsThru Nodes可用本章前面所述的 ENGEN和 ENSYM命令或 GUI途径,重写或修改单元组。9.3.9通过修改单元属性修改单元修改已生成单元属性有下述几种方法:在前处理 PREP
27、7或求解器 SOLUTION中用下列方法修改指定单元的材料号:命令:MPCHGGUI: Main MenuPreprocessorLoadsOtherChange Mat PropsChange Mat NumMain MenuPreprocessorMaterial PropsChange Mat NumMain MenuSolutionOtherChange Mat PropsChange Mat Num在前处理器中 EMODIF和*REPEAT 命令提供了一种修改单元属性的通用方法。不能直接在 GUI中得到*REPEAT 命令。EMODIF 和*REPEAT 命令的使用如下:E,1,2
28、! Element 1 REAL,3 ! REAL set pointer = 3E,2,3 ! Element 2 (REAL=3)EGEN,40,1,2 ! Generate 40 elements from el. 2 (all with REAL=3)EMODIF,5,REAL,4 ! Redefine element 5 with REAL set 4*REPEAT,18,2 ! Redefine els. 7-39 in steps of 2 (with REAL=4)参见ANSYS Commands Reference中 EGEN、EMODIF 和* REPEAT 命令的叙述。另
29、外,在单元生成之后进入求解器 SOLUTION之前,可改变其单元属性表中的项。如果实常数组或材料特性组中含有未使用的项(如把梁单元的实常数组赋给杆单元),则在屏幕上会出现警告信息。修改单元属性的另一种方法(是用 EDELE命令或菜单途径 Main MenuPreprocessorDeleteElements)是删除单元,重新定义属性指针(再用EN命令或菜单途径 Main MenuPreprocessorCreateElementsThru Nodes)重新生成单元。9.3.10 增加和删除中间节点的注意事项若需改变单元类型,用带有中间节点的单元代替无中间节点的单元时,可用 EMID命令补加中间
30、节点。而且为删除中间节点,必须首先从中间节点单元用EMID,-1 命令除去中间节点:命令:EMIDGUI: Main MenuPreprocessorMove / ModifyAdd Mid NodesMain MenuPreprocessorMove / ModifyRemove Mid Nd当用直接生成方法定义中间节点单元时(即 E、EN 及类似的命令),中间节点按下列方案生成和排列:有些高阶单元允许去除中间节点,对这类单元,当定义高阶单元时中间节点用了 0值(或空),相应的中间节点将从单元中去掉。结果单元的形函数中有些或全部二次项被忽略(取决于去掉中间节点号),因此使单元的边仍为直的。极端情况去掉单元的所有中间节点,单元会使用线性形函数,产生的结果与相似的低阶(无中间节点)单元类型的相近。当定义了高阶单元,如果所用的中间节点号还未定义(N,NGEN,FILL,NSYM 及类似命令),然后该节点会被自动地定义并给定几何位置,这就是计算的各自角点的中点(在笛卡尔坐标系下线性插值)。这种节点的旋转角也是由角节点的旋转角自动地进行线性插值而得到。这样可以方便地生成中间节点单元而不必明确地定义中间节点的几何位置在角点的中间。注意:这种应用只适用于模型的直接生成方法,ANSYS 网格划分控制提供了对已划分网格模型控制中间节点的方法。