Dynamo_language_guide 中文版

Dynamo_language_guide 中文版
Dynamo_language_guide 中文版

Dynamo Language Manual 基于官方手册翻译,如有错误欢迎指出。

翻译:白马、心隐草、未知数、看山是水

(以上排名不分先后)

Dynamo设计综合 :318783072(QQ群)

Contents

1.语言基础知识

2.几何基础知识

3.基本几何体

4.向量(Vector)数学

5.范围(Range)表达式

6.集合

7.函数

8.数学

9.曲线:插入点曲线和控制点曲线

10.移动, 旋转, 和其他变形

11.条件判断和布尔逻辑运算

12.循环

13.Replication Guides

14.集合层级和锯齿状集合

15.曲面: 插入点, 控制点, 放样, 旋转成型

16.几何体参数化

17.相交和剪切

18.几何体布尔运算

A-1. 附件 1: Python Point Generators

Programming languages are created to express ideas, usually involving logic and calculation. In addition to these objectives, the Dynamo textual language (formerly DesignScript) has been created to express design intentions . It is generally recognized that computational designing is exploratory, and Dynamo tries to support this: we hope you find the language flexible and fast enough to take a design from concept, through design iterations, to your final form. This manual is structured to give a user with no knowledge of either programming or architectural geometry full exposure to a variety of topics in these two intersecting disciplines. Individuals with more experienced backgrounds should jump to the individual sections which are relevant to their interests and problem domain. Each section is self-contained, and doesn’t require any knowledge besides the information presented in prior sections. Text blocks inset in the Consolas font should be pasted into a Code Block node. The output of the Code Block should be connected into a Watch node to see the intended result. Images are included in the left margin illustrating the correct output of your program.

Introduction 编程语言的产生是为了表达思想,

通常包括逻辑和计算。除了这些目

标,Dynamo文本语言(原名

DesignScript)已经建立表达设计意

图。通常认为,计算式设计是探索

性的,Dynamo试图支持如下:我

们希望你们找到语言的灵活性、从

概念设计、通过设计迭代快速完成

你的最终形式。

本手册的结构是给没有编程或建筑

几何知识的用户充分展示这两个交

叉学科的各种话题。经验更丰富的

用户应该跳到他们感兴趣及问题领

域的相关章节。每个章节均是独立

的,除了在先前章节提供的信息外

不需要其他知识。

嵌入在Consolas字体里的文本块

应可以被粘贴到代码块节点内。

代码块的输出应被链接到一个

Watch节点,以便看到预期的结

果。左边的图块显示程序的正确

输出。说明

This document discusses the Dynamo textual programming language, used inside of the Dynamo editor (sometimes referred to as “Dynamo Sandbox”). To create a new Dynamo script, open the Dynamo editor, and select the “New” button in the “FILES” group:

This will open a blank Dynamo graph. To write a Dynamo text script, double click anywhere in the canvas. This will bring up a “Code Block” node. In order to easily see the results of our scripts, attach a “Watch” node to the output of your Code Block node, as shown here:

Every script is a series of written commands. Some of these commands create geometry; others solve mathematical problems, write text files, or generate text strings. A simple, one line program which generates the quote “Less is more.” looks like

this:

The Watch node on the left shows the output of the script.

"Less is more.";

1: Language Basics 本文探讨Dynamo文本编程语言,使用

内部的Dynamo编辑器(有时被称

为“Dynamo沙箱”)。打开Dynamo

编辑器,在“FILES”菜单选

择“New”按钮,新建一个Dynamo脚

本。这将打开一个空白的Dynamo图档。双

击画布上的任意地方来编写Dynamo文

本脚本。这将会打开“代码块”节

点。为了更方便看到脚本输出结果,

在代码块节点输出端附加一个Watch节

点,如下所示:每个脚本都是一系列的书面命令。其

中一些命令创建几何体;另外一些解

决数学问题、写入文本文件、或者生

成文本字符串。一个简单例子,一行

程序生成“Less is more”的引用,看

起来像这样:左侧的Watch节点显示脚本输出。语言基础

The command generates a new String object. Strings in Dynamo are designated by two quotation marks ("), and the enclosed

characters, including spaces, are passed out of the node. Code

Block nodes are not limited to generating Strings. A Code Block

node to generate the number 5420 looks like this:

Every command in Dynamo is terminated by a semicolon. If you do not include one, the Editor will add one for you. Also note that the number and combination of spaces, tabs, and carriage returns, called white space, between the elements of a command do not matter. This program produces the exact same output as

the first program:

Naturally, the use of white space should be used to help improve the readability of your code, both for yourself and future readers. Comments are another tool to help improve the readability of your code. In Dynamo, a single line of code is “commented ” with two forward slashes, //. This makes the node ignore everything written after the slashes, up to a carriage return (the end of the line). Comments longer than one line begin with a forward slash

asterisk, /*, and end with an asterisk forward slash, */.

5420;

"Less Is More."

;

该命令新建一个字符串对象。Dynamo

中的字符串是由两个引号(")中之间

的字符组成,字符包括空格。代码块

不限于生成字符串,一个代码块节点

生成数值5420看起来像这样:Dynamo中的命令以分号结束。如果不

含,编辑器将会自动增加。另外注意的

是,数字和字符组合(空格、制表符和回

车等空白字符),一个命令之间的元素无

关紧要。这个程序的输出与第一个程序一

样。当然,空白字符应用于帮助提高代码的

可读性,不管是对自己还是将来的读

者。

注释是另一种提升代码可读性的工具。

在Dynamo中,单行注释代码以双斜

杆“//”开头。这将使得节点忽视斜杆后

的所有信息,直到回车符(该行的结

尾)。多行注释是以斜杆星号(/*)开

头,以星号斜杆(*/)结尾。

So far the Code Block arguments have been ‘literal’ values, either a text string or a number. However it is often more useful for function arguments to be stored in data containers called variables, which both make code more readable, and eliminate redundant commands in your code. The names of variables are up to individual programmers to decide, though each variable name must be unique, start with a lower or uppercase letter, and contain only letters, numbers, or underscores, _. Spaces are not allowed in variable names. Variable names should, though are not required, to describe the data they contain. For instance, a variable to keep track of the rotation of an object could be called rotation . To describe data with multiple words, programmers typically use two common conventions: separate the words by capital letters, called camelCase (the successive capital letters mimic the humps of a camel), or to separate individual words with underscores. For instance, a variable to describe the rotation of a small disk might be named smallDiskRotation or small_disk_rotation , depending on the programmer’s stylistic

preference. To create a variable, write its name to the left of an

equal sign, followed by the value you want to assign to it. For

instance:

Besides making readily apparent what the role of the text string is, variables can help reduce the amount of code that needs updating if data changes in the future. For instance the text of the following quote only needs to be changed in one place, despite its appearance three times in the program.

// This is a single line comment

/* This is a multiple line comment,

which continues for multiple

lines. */

// All of these comments have no effect on

// the execution of the program

// This line prints a quote by Mies van der Rohe

"Less Is More";

quote = "Less is more."

;

到目前未知,代码块参数是“文字”值,

一个文本字符串或一个数。但是往往更有

用的是存储在数据容器中的被称为变量的

函数参数,能使代码更具有可读性和消除

代码中的冗余命令。变量名字由程序员自

己决定,虽然变量名字必须唯一,变量名

字以小写或大写字母开始,仅仅包含字

母、数字或下划线。变量名字不允许有空

白字符。变量名字应该(尽管不是必须

的)描述它们说包含的数据。例如,一个

变量用来记录一个对象的旋转可被称

为"rotation"。为了使用多个单词描述数

据,程序员通常使用两个公共约定:用大

写字母分割单词,称为camelCase(连续

大写字母模拟骆驼的驼峰);使用下划线

分割单词。例如,一个变量来描述一个小

圆盘的旋转可命名为smallDiskRotation或

small_disk_rotation,这取决于程序的风

格。创建一个变量,其名字写在等式的左

边,然后写入你要分配给它的值。例如:除了显而易见的文本字符串的角色,当

以后数据改变时,变量可以帮助减少大

量代码的更新。例如:如下引用文本仅

需要在一处改变,虽然它在程序中出现

了三次。

Here we are joining a quote by Mies van der Rohe three times, with spaces between each phrase. Notice the use of the + operator to ‘concatenate’ the strings and variables together to form one continuous output.

// My favorite architecture quote quote = "Less is more."; quote + " " + quote + " " + quote; // My NEW favorite architecture quote

quote = "Less is a bore.";

quote + " " + quote + " "

+ quote;

在这里,添加一个短语并重复三次,每

个短语之间用空格隔开。请注意,使用

运算符“+”来连接字符串或变量以形

成一个连续的输出。

The simplest geometrical object in the Dynamo standard geometry library is a point. All geometry is created using special functions called constructors, which each return a new instance of that particular geometry type. In Dynamo, constructors begin with th e name of the object’s type, in this case Point , followed by the method of construction. To create a three dimensional point specified by x, y, and z Cartesian coordinates, use the ByCoordinates constructor: Constructors in Dynamo are typically design ated with the “By ” prefix, and invoking these functions returns a newly created object of that type. This newly created object is stored in the variable named on the left side of the equal sign, and any use of that same original Point. Most objects have many different constructors, and we can use the BySphericalCoordinates constructor to create a point lying on a sphere, specified by the sphere’s radius, a first rotation angle, and a second rotation angle (specified in degrees):

// create a point with the following x, y, and z // coordinates: x = 10; y = 2.5; z = -6; p = Point.ByCoordinates(x, y, z); // create a point on a sphere with the following radius,

// theta, and phi rotation angles (specified in degrees)

radius = 5;

theta = 75.5;

phi = 120.3;

cs = CoordinateSystem.Identity();

p = Point.BySphericalCoordinates(cs, radius, theta, phi);

2: Geometry Basics 几何基础

在Dynamo标准几何库中,

点“Point”是最简单的几何对象。所

有的几何体均使用称为构造函数的特

殊函数来创建,它返回一个特定几何

类型的新实例。在Dynamo中,构造

函数名称以对象类型名字开头,以

点“Point”为例,下面演示其构造方

法。使用ByCoordinates构造函数来创

建一个指定x、y、z值的笛卡尔坐标

的三维点。

在Dynamo中,构造函数通常

以“By”作为前缀,调用这些函数创

建一个该类型的新对象。新创建对象

覆给了等式左边的变量,其使用等同

于原始Point。

多数对象用于许多不同的构造函数,

通过给定球体半径,第一和第二旋转

角度(单位为“°”或“度”),我

们就可以使用构造函数

(BySphericalCoordinates)创建球体上

的点Point。

Points can be used to construct higher dimensional geometry such as lines. We can use the ByStartPointEndPoint constructor to create a Line object between two points:

Similarly, lines can be used to create higher dimensional surface geometry, for instance using the Loft constructor, which takes a series of lines or curves and interpolates a surface between them.

Surfaces too can be used to create higher dimensional solid geometry, for instance by thickening the surface by a specified distance. Many objects have functions attached to them, called methods, allowing the programmer to perform commands on that particular object. Methods common to all pieces of geometry include Translate and Rotate , which respectively translate (move) and rotate the geometry by a specified amount. Surfaces

have a Thicken method, which take a single input, a number specifying the new thickness of the surface.

// create two points:

p1 = Point.ByCoordinates(3, 10, 2);

p2 = Point.ByCoordinates(-15, 7, 0.5);

// construct a line between p1 and p2

l = Line.ByStartPointEndPoint(p1, p2);

// create points:

p1 = Point.ByCoordinates(3, 10, 2);

p2 = Point.ByCoordinates(-15, 7, 0.5);

p3 = Point.ByCoordinates(5, -3, 5);

p4 = Point.ByCoordinates(-5, -6, 2);

p5 = Point.ByCoordinates(9, -10, -2);

p6 = Point.ByCoordinates(-11, -12, -4);

// create lines:

l1 = Line.ByStartPointEndPoint(p1, p2);

l2 = Line.ByStartPointEndPoint(p3, p4);

l3 = Line.ByStartPointEndPoint(p5, p6);

// loft between cross section lines:

surf = Surface.ByLoft({l1, l2, l3});

Point(点)能够用于构建更高维度的几何体,比如线。我们可以使用

ByStartPointEndPoint构造函数来创建两点之间的直线对象。同样,Line线可以用于构建更高维度的几何体“面”,例如使用Loft(放样)构造函数,以一些直线或曲线内插为一个表面。“面”也可以用于构建更高维度的立

体几何,例如通过给定的距离来加厚

表面。许多对象有附加功能,称

为“方法”,它允许程序员对指定对

象执行命令。所有几何体常用方法包

括平移和旋转,通过给定的量来分别

移动或旋转几何体。“面”有一个

Thichken方法,根据输入值来设

定“面”的新的厚度。

Intersection commands can extract lower dimensional geometry from higher dimensional objects. This extracted lower dimensional geometry can form the basis for higher dimensional geometry, in a cyclic process of geometrical creation, extraction, and recreation. In this example, we use the generated Solid to create a Surface, and use the Surface to create a Curve.

p1 = Point.ByCoordinates(3, 10, 2); p2 = Point.ByCoordinates(-15, 7, 0.5); p3 = Point.ByCoordinates(5, -3, 5); p4 = Point.ByCoordinates(-5, -6, 2); l1 = Line.ByStartPointEndPoint(p1, p2); l2 = Line.ByStartPointEndPoint(p3, p4); surf = Surface.ByLoft({l1, l2}); // true indicates to thicken both sides of the Surface: solid = surf.Thicken(4.75, true); p1 = Point.ByCoordinates(3, 10, 2);

p2 = Point.ByCoordinates(-15, 7, 0.5);

p3 = Point.ByCoordinates(5, -3, 5);

p4 = Point.ByCoordinates(-5, -6, 2);

l1 = Line.ByStartPointEndPoint(p1, p2);

l2 = Line.ByStartPointEndPoint(p3, p4);

surf = Surface.ByLoft({l1, l2});

solid = surf.Thicken(4.75, true);

p = Plane.ByOriginNormal(Point.ByCoordinates(2, 0, 0),

Vector.ByCoordinates(1, 1, 1));

int_surf = solid.Intersect(p);

int_line = int_surf.Intersect(Plane.ByOriginNormal(

Point.ByCoordinates(0, 0, 0),

Vector.ByCoordinates(1, 0, 0)));

Intersection命令可以从高维对象提取

低维几何体。该提取的低维几何体能

够形成基本的更高维度几何体,在一

个圆柱体(Cyclic)中处理几何创

建、提取和重建。在下面的例子中,

我们使用生成的实体来创建“面”,

使用“面”来创建“曲线”。

While Dynamo is capable of creating a variety of complex geometric forms, simple geometric primitives form the backbone of any computational design: either directly expressed in the final designed form, or used as scaffolding off of which more complex geometry is generated. While not strictly a piece of geometry, the CoordinateSystem is an important tool for constructing geometry. A CoordinateSystem object keeps track of both position and geometric transformations such as rotation, sheer, and scaling. Creating a CoordinateSystem centered at a point with x = 0, y = 0, z = 0, with no rotations, scaling, or sheering transformations, simply requires calling the Identity constructor:

CoordinateSystems with geometric transformations are beyond

the scope of this chapter, though another constructor allows you to create a coordinate system at a specific point,

CoordinateSystem.ByOriginVectors : The simplest geometric primitive is a Point, representing a zero-dimensional location in three-dimensional space. As mentioned earlier there are several different ways to create a point in a particular coordinate system: Point.ByCoordinates creates a

// create a CoordinateSystem at x = 0, y = 0, z = 0,

// no rotations, scaling, or sheering transformations

cs = CoordinateSystem.Identity();

// create a CoordinateSystem at a specific location,

// no rotations, scaling, or sheering transformations

x_pos = 3.6;

y_pos = 9.4;

z_pos = 13.0;

origin = Point.ByCoordinates(x_pos, y_pos, z_pos);

identity = CoordinateSystem.Identity();

cs = CoordinateSystem.ByOriginVectors(origin, identity.XAxis, identity.YAxis, identity.ZAxis);

3: Geometric Primitives

基本几何Dynamo能够创建各种复杂几何形

体,简单的几何图元形成任何计算式

设计的基本骨架:不管是直接表示为

最终设计形体,还是以搭积木形式生

成更复杂几何体。

虽然没有严格一块的几何

体,CoordinateSystem是构建几何体

的重要工具。一个Coordinate对象

跟踪位置及几何体转换(如旋转、

剪切和缩放)

创建一个CoordinateSystem:中心点

在(0,0,0),没有旋转、缩放或剪

切等转换,只需要调用Identify构造

方法即可。虽然CoordinateSystems几何变换超出本章范围,但另一个构造函数允许你创建一个基于特定点的坐标系,即

CoordinateSystem.ByOriginVectors

“点”是最简单的几何图元,它代表

三维空间中的零维定位。如前所述,

在一个特定的坐标系中,有多种方式

创建点Point:Point.ByCoordinates 使

用给定的x、y、z坐标来创建一个

点;

point with specified x, y, and z coordinates; Point.ByCartesianCoordinates creates a point with a specified x, y, and z coordinates in a specific coordinate system ; Point.ByCylindricalCoordinates creates a point lying on a cylinder with radius, rotation angle, and height; and Point.BySphericalCoordinates creates a point lying on a sphere with radius and two rotation angle. This example shows points created at various coordinate systems: The next higher dimensional Dynamo primitive is a line segment, representing an infinite number of points between two end points. Lines can be created by explicitly stating the two boundary points with the constructor Line.ByStartPointEndPoint , or by specifying a start point, direction, and length in that direction, Line.ByStartPointDirectionLength .

// create a point with x, y, and z coordinates x_pos = 1; y_pos = 2; z_pos = 3; pCoord = Point.ByCoordinates(x_pos, y_pos, z_pos); // create a point in a specific coordinate system cs = CoordinateSystem.Identity(); pCoordSystem = Point.ByCartesianCoordinates(cs, x_pos, y_pos, z_pos); // create a point on a cylinder with the following // radius and height radius = 5; height = 15; theta = 75.5; pCyl = Point.ByCylindricalCoordinates(cs, radius, theta, height); // create a point on a sphere with radius and two angles phi = 120.3; pSphere = Point.BySphericalCoordinates(cs, radius,

theta, phi); Point.ByCartesianCoordinates使用

给定的x、y、z坐标,在制定的坐

标系中来创建一个点;

Point.ByCylindricalCoordinates使用半径、旋转角度和高度创建位于

圆柱体上的点;

Point.BySphericalCoordinates使用

半径和两个旋转角度创建位于球

体上的点。

下面的例子中展示了在不同坐标

系中创建点Point。

下一个更高维度的Dynamo基本图元

是线段,代表两个端点之间的无限

数量的点。通过明确两个边界点,

使用Line.ByStartPointEndPoint构造函

数可以创建一个直线,或者通过明

确一个起始点、方向和该方向上的

长度,使用

Line.ByStartPointDirectionLength来创

建一个直线。

Dynamo has objects representing the most basic types of geometric primitives in three dimensions: Cuboids, created with

Cuboid.ByLengths ; Cones, created with Cone.ByPointsRadius and Cone.ByPointsRadii ; Cylinders, created with

Cylinder.ByRadiusHeight ; and Spheres, created with Sphere.ByCenterPointRadius . p1 = Point.ByCoordinates(-2, -5, -10);

p2 = Point.ByCoordinates(6, 8, 10);

// a line segment between two points

l2pts = Line.ByStartPointEndPoint(p1, p2);

// a line segment at p1 in direction 1, 1, 1 with

// length 10

lDir = Line.ByStartPointDirectionLength(p1,

Vector.ByCoordinates(1, 1, 1), 10);

// create a cuboid with specified lengths

cs = CoordinateSystem.Identity();

cub = Cuboid.ByLengths(cs, 5, 15, 2);

// create several cones

p1 = Point.ByCoordinates(0, 0, 10);

p2 = Point.ByCoordinates(0, 0, 20);

p3 = Point.ByCoordinates(0, 0, 30);

cone1 = Cone.ByPointsRadii(p1, p2, 10, 6);

cone2 = Cone.ByPointsRadii(p2, p3, 6, 0);

// make a cylinder

cylCS = cs.Translate(10, 0, 0);

cyl = Cylinder.ByRadiusHeight(cylCS, 3, 10);

// make a sphere

centerP = Point.ByCoordinates(-10, -10, 0);

sph = Sphere.ByCenterPointRadius(centerP, 5);

Dynamo中表示几何图元的基本类型的三维对象:长方体,使用

Cuboid.ByLengths创建;圆锥,使用Cone.ByPointsRadius 和

Cone.ByPointsRadii创建;圆柱体,使用Cylinder.ByRadiusHeight创建;球体,使用Sphere.ByCenterPointRadius创建。

Objects in computational designs are rarely created explicitly in their final position and form, and are most often translated, rotated, and otherwise positioned based off of existing geometry. Vector math serves as a kind-of geometric scaffolding to give direction and orientation to geometry, as well as to conceptualize movements through 3D space without visual representation. At its most basic, a vector represents a position in 3D space, and is often times thought of as the endpoint of an arrow from the position (0, 0, 0) to that position. Vectors can be created with the ByCoordinates constructor, taking the x, y, and z position of the newly created Vector object. Note that Vector objects are not geometric objects, and don’t appear in the Dynamo window. However, information about a newly created or modified vector can be printed in the console window: A set of mathematical operations are defined on Vector objects, allowing you to add, subtract, multiply, and otherwise move objects in 3D space as you would move real numbers in 1D space on a number line. Vector addition is defined as the sum of the components of two vectors, and can be thought of as the resulting vector if the two component vector arrows are placed “tip to tail.” Vector addition

is performed with the Add method, and is represented by the diagram on the left.

// construct a Vector object v = Vector.ByCoordinates(1, 2, 3); s = v.X + " " + v.Y + " " + v.Z; a = Vector.ByCoordinates(5, 5, 0);

b = Vector.ByCoordinates(4, 1, 0);

// c has value x = 9, y = 6, z = 0 c = a.Add(b);

4: Vector Math 数学矢量

在计算式设计中,对象创建时几乎

不在其最终位置和形式,而经常使

用平移、旋转和基于现有几何体的

其他定位。矢量作为一种几何骨架

给出几何体的方向和取向,等同于

通过三维空间的没有视觉表现的概

念化动作。

其最基本的,一个向量代表一个三

维空间中的位置,通常认为是一个

从(0,0,0)到其位置的一个箭头。

可以使用ByCoordinates构造函数,

并代入将创建新矢量对象的

x,y,z来创建矢量。请注意,矢

量对象不是一个几何体对象,且不

会出现在Dynamo窗口内。然而,

新创建或修改的矢量信息能够打印

在控制台中内。

矢量对象定义了一组数学操作,允许

在三维空间内进行加、减、乘、以及

移动等操作,就像在一维数轴上移动

实数。

矢量叠加定义为两个矢量的分量之

和,当两个矢量箭布置成“箭头连着

箭尾”时,它可以看做是新的矢量结

果(第一个箭尾引至第二个箭头)。

使用Add方法执行矢量叠加运算,如左

图所示:

Similarly, two Vector objects can be subtracted from each other

with the Subtract method. Vector subtraction can be thought of

as the direction from first vector to the second vector.

Vector multiplication can be thought of as moving the endpoint of

a vector in its own direction by a given scale factor.

Often it’s desired when scaling a vector to have the resulting

vector’s length exactly equal to the scaled amount. This is easily

achieved by first normalizing a vector, in other words setting the

vector’s length exactly equal to one.

c still points in the same direction as a (1, 2, 3), though now it has length exactly equal to 5.

a = Vector.ByCoordinates(5, 5, 0);

b = Vector.ByCoordinates(4, 1, 0);

// c has value x = 1, y = 4, z = 0

c = a.Subtract(b);

a = Vector.ByCoordinates(4, 4, 0);

// c has value x = 20, y = 20, z = 0

c = a.Scale(5);

a = Vector.ByCoordinates(1, 2, 3);

a_len = a.Length;

// set the a's length equal to 1.0

b = a.Normalized();

c = b.Scale(5);

// len is equal to 5

len = c.Length; 同样,两个矢量对象可以彼此使用Subtract方法执行减法运算。矢量

减可以看做为第一个矢量到第二个矢量的方向(新的箭,箭头在第

一个矢量箭头,箭尾在第二矢量箭头)

矢量数乘可看做为通过给定的缩放因子,沿着矢量方向移动矢量端

点。

缩放矢量,通常需要使其长度精确到某个量。这很容易实现,首先

使矢量单位化,也就是说将矢量的长度恰好等于1。

c仍然指向与(1,2,3,)相同的方向,但是现在它的长度恰好等于5。

Two additional methods exist in vector math which don’t have clear parallels with 1D math, the cross product and dot product. The cross product is a means of generating a Vector which is orthogonal (at 90 degrees to) to two existing Vectors. For example, the cross product of the x and y axes is the z axis, though the two input Vectors don’t need to be orthogonal to each other. A cross product vector is calculated with the Cross method. An additional, though somewhat more advanced function of vector math is the dot product. The dot product between two vectors is a real number (not a Vector object) that relates to, but is not exactly , the angle between two vectors. One useful properties of the dot product is that the dot product between two vectors will be 0 if and only if they are perpendicular. The dot

product is calculated with the Dot method.

a = Vector.ByCoordinates(1, 0, 1);

b = Vector.ByCoordinates(0, 1, 1); //

c has value x = -1, y = -1, z = 1 c = a.Cross(b); a = Vector.ByCoordinates(1, 2, 1);

b = Vector.ByCoordinates(5, -8, 4);

// d has value -7

d = a.Dot(b);

在数学矢量中的另外两个方法,其

与一维数学具有明显的不同,是叉

积和点积。叉积是两个矢量正交

(90°)生成一个矢量。例如,x轴

与y轴的叉积是z轴,而两个给定的

矢量不需要正交。叉积运算使用

Cross方法。

另外,点积是数学矢量中较为高级

功能。两个矢量的点积是一个实数

(不是一个矢量对象),且确切来

说没有涉及到两个矢量之间的角

度。点积的一个有用的特性是:两

个矢量的点积为0当且仅当两者垂

直。点积运算使用Dot方法。

Almost every design involves repetitive elements, and explicitly typing out the names and constructors of every Point, Line, and other primitives in a script would be prohibitively time consuming. Range expressions give a Dynamo programmer the means to express sets of values as parameters on either side of two dots (..), generating intermediate numbers between these two extremes. For instance, while we have seen variables containing a single number, it is possible with range expressions to have variables which contain a set of numbers. The simplest range expression fills in the whole number increments between the range start and end. In previous examples, if a single number is passed in as the argument of a function, it would produce a single result. Similarly, if a range of values is passed in as the argument of a function, a range of values is returned. For instance, if we pass a range of values into the Line constructor, Dynamo returns a range of lines. By default range expressions fill in the range between numbers incrementing by whole digit numbers, which can be useful for a quick topological sketch, but are less appropriate for actual designs. By adding a second ellipsis (..) to the range expression, you can specify the amount the range expression increments between values. Here we want all the numbers between 0 and 1, incrementing by 0.1:

a = 1..6; x_pos = 1..6; y_pos = 5; z_pos = 1; lines = Line.ByStartPointEndPoint(Point.ByCoordinates(0, 0, 0), Point.ByCoordinates(x_pos, y_pos, z_pos));

5: Range Expressions 范围表达式

几乎所有的设计都涉及到重复元素,

并且明确键入每个点的名字和构造函

数,以及其他操作,这在脚本中将是

非常耗时的。范围表达式给Dynamo

程序员提供了一种方法来表达一堆

值,即在两侧参数中间设置两个点

(..),这可以生成包含两个极限值之间

的数字。

例如:虽然我们看到变量包含单个数

字,它可能是使用范围表达式生成包

含一堆数字的变量。最简单的范围表

达式生成范围开始和结束之间的整数

增值。

在之前的例子中 ,如果单个数字作为

函数的参数,它会产生单个结果。同

样,如果一个范围值作为函数的参

数,那么它会返回一个范围值。

例如,我们给Line构造函数传入一个

范围值,Dynamo返回一堆直线。

范围表达式默认以整数增值填充整个

数字区域,这对快速生成拓扑结构非

常有用,但是不适合实际设计。通过

再增加一个省略号(..)给范围表达式,

你可以指定范围表达式之间的增值。

这里,我们希望得到0与1之间,以0.1

为增值的所有数字。

One problem that can arise when specifying the increment

between range expression boundaries is that the numbers

generated will not always fall on the final range value. For

instance, if we create a range expression between 0 and 7,

incrementing by 0.75, the following values are generated:

If a design requires a generated range expression to end

precisely on the maximum range expression value, Dynamo can

approximate an increment, coming as close as possible while still

maintaining an equal distribution of numbers between the range

boundaries. This is done with the approximate sign (~) before the

third parameter:

However, if you want to Dynamo to interpolate between ranges

with a discrete number of elements, the # operator allows you to specify this:

a = 0..1..0.1; a = 0..7..0.75;

// DesignScript will increment by 0.777 not 0.75

a = 0..7..~0.75;

// Interpolate between 0 and 7 such that

// “a” will contain 9 element s

a = 0..7..#9;

当指定范围表达的增量时会出现一个问题,即数值往往不会落在最

后的范围值。例如,如果我们创建一个0到7的范围表达,增量为

0.75,生成的数值如下:

如果设计需要产生的范围表达,其结束值正好是最大范围表达式的最大值,Dynam可微调增量值,来尽可能保证范围边界之间的数值

均匀分布。这是通过在第三个参数前添加近似符号(~)完成的。

当然,如果你想让Dynamo内插在区域中若干离散的元素,“#”操

作符允许你指定:

Collections are special types of variables which hold sets of values. For instance, a collection might contain the values 1 to 10, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, assorted geometry from the result of an Intersection operation, {Surface, Point, Line, Point}, or even a set of collections themselves, { {1, 2, 3}, {4, 5}, 6}. One of the easier ways to generate a collection is with range expressions (see: Range Expressions ). Range expressions by default generate collections of numbers, though if these collections are passed into functions or constructors, collections

of objects are returned.

When range expressions aren’t appropriate, collections can be created empty and manually filled with values. The square bracket operator ([]) is used to access members inside of a collection. The square brackets are written after the variable’s name, with the number of the individual collection member contained inside. This numb er is called the collection member’s index. For historical reasons, indexing starts at 0, meaning the first element of a collection is accessed with: collection[0],

and is often called the “zeroth” number. Subsequent members

are accessed by increasing the index by one, for example:

The individual members of a collection can be modified using the same index operator after the collection has been created:

// use a range expression to generate a collection of

// numbers

nums = 0..10..0.75;

// use the collection of numbers to generate a

// collection of Points

points = Point.ByCoordinates(nums, 0, 0);

// a collection of numbers

nums = 0..10..0.75;

// create a single point with the 6th element of the

// collection points = Point.ByCoordinates(nums[5], 0, 0);

6: Collections

集合是特殊类型变量,具有一组值。

例如,一个集合可能包含值1到10,{1,

2, 3, 4, 5, 6, 7, 8, 9, 10};相交操作返回

的多种几何对象,{Surface, Point, Line,

Point};甚至包含集合自己{ {1, 2, 3},

{4, 5}, 6}.

生成集合的最简单方式是范围表达式

(查看:5 范围表达式)。范围表达

式默认生成数字集合,但是如果这些

对象传入到函数或构造函数,将返回

对象集合。当范围表达式不是适当的,将创建

空的集合,并手动填充值。方括号

操作符[]用于范围集合的内部成员方

括号书写在变量名后,其里面输入

集合成员的序号。序号被称为集合

成员索引。由于历史原因,索引从0

开始,这意味着集合的首个元素使

用collection[0]访问,通常称为“零

号”。通过逐渐给索引号增加1,来

访问随后成员,例如:创建集合后,使用同样的索引操作符可以修改集合的个体成员:6:集合

In fact, an entire collection can be created by explicitly setting

every member of the collection individually. Explicit collections

are created with the curly brace operator ({}) wrapping the

collection’s starting values, or left empty to create an empty

collection:

Collections can also be used as the indexes to generate new sub collections from a collection. For instance, a collection containing the numbers {1, 3, 5, 7}, when used as the index of a collection, would extract the 2nd , 4th , 6th , and 8th elements from a

collection (remember that indices start at 0):

Dynamo contains utility functions to help manage collections. The

Count function, as the name implies, counts a collection and returns the number of elements it contains. // generate a collection of numbers

a = 0..6;

// change several of the elements of a collection

a[2] = 100; a[5] = 200; // create a collection explicitly

a = { 45, 67, 22 };

// create an empty collection

b = {};

// change several of the elements of a collection

b[0] = 45;

b[1] = 67;

b[2] = 22;

a = 5..20;

indices = {1, 3, 5, 7};

// create a collection via a collection of indices

b = a[indices];

实际上,可以显示设置集合的每个成员来创建一

个集合。使用花括号操作符{}封装集合的初始值

集或者留空创建空集来创建显示集合。

集合也可以作为索引集,从一

个集合中来生成一个子集合。

例如,集合{1,3,5,7},当被作为

一个索引集合,这将从一个集

合中提取第2、4、6、8个元素

(记住,索引是从0开始的):Dynamo提供有用函数来管理集

合。函数Count,顾名思义,统计集合并返回它所包含元素的数量。

13 ADAMS_CAR模块详细实例教程(柔性体篇)

13柔性体介绍 (253) 13.1柔性体引入ADAMS建模 (253) 13.1.1打开原有的X5后悬架模板 (253) 13.1.2将小连杆的模态中性文件导入ADAMS (254) 13.2利用Hyper Mesh及Motion View软件来生成模态中性文件MNF (256) 13.2.1创建小连接杆的CAD模型 (256) 13.2.2将iges格式文件导入到Hyper Mesh划分网格 (257) 13.2.3创建材料 (268) 13.2.4创建刚性单元 (273) 13.2.5给刚性中心节点编号 (282) 13.2.6导出nastran模板格式文件 (283) 13.2.7创建h3d文件及MNF文件 (284) 252

《柔性体篇》 13柔性体介绍 在模型中引入柔性体可以提高仿真的精度。柔性体可采用模态中性文件(MNF)来描述。该文件是一个二进制文件,包含了以下信息: 几何信息(结点位置及其连接); 结点质量和惯量; 模态; 模态质量和模态刚度。 可以利用ANSYS、NASTRAN、ABAQUS等限元软件包进行分析并将结果写成模态中性文件,输入到ADAMS/View或ADAMS/Car中,建立相应零件的柔性体。 13.1柔性体引入ADAMS建模 在模型中引入柔性体首先要在ADAMS/Car中读入模态中性文件,然后ADAMS/Car会创建必要的几何实体用以显示柔性体。然后在模型中与其它刚体部件之间施加约束。本教程以后悬架的小连接板为例。 13.1.1打开原有的X5后悬架模板 253

13.1.2将小连杆的模态中性文件导入ADAMS 在ADAMS/Car中读入模态中性文件的过程如下: Parts>Flexible Body>New 1)从Build菜单中选择 设定对话框如下,在Left Modal Neutral File和Right Modal Neutral File里右击鼠标选择自己已经创建好的MNF文件,点击OK。 254

精益生产管理的十大改善工具

精益生产管理的十大改善工具 精益生产管理的十大改善工具 1、价值流分析(VSM) 精益生产始终围绕着价值这个核心,关于价值有两个层面: ①客户需要支付的价值, ②客户愿意多付的价值(增值)。 精益生产的价值更趋向于第②个层面。价值流分析就是通过价值的2个层面对产品生产流程中的要素进行界定,首先去除浪费(客户不支付的),进而缩减客户不愿意多付的要素,从而实现设备和员工有效时间的最大化和价值最大化。 2、标准化作业(SOP) 标准化是生产高效率和高质量的最有效管理工具。生产流程经过价值流分析后,根据科学的工艺流程和操作程序形成文本化标准,标准不仅是产品质量判定的依据,也是培养员工规范操作的依据。这些标准包括现场目视化标准、设备管理标准、产品生产标准及产品质量标准。精益生产要求的是“一切都要标准化”。 3、5S与目视化管理 5S(整理Seiri、整顿Seiton、清扫Seiso、清洁Seiketsu、素养Shitsuke)是现场目视化管理的有效工具,同时也是员工素养提升的有效工具。5S成功的关键是标准化,通过细化的现场标准和明晰的责任,让员工首先做到维持现场的整洁,同时暴露从而解决现场和设备的问题,进而逐渐养成规范规矩的职业习惯和良好的职业素养。 4、全员设备保全(TPM) 全员设备保全(TPM)是准时化生产的必要条件,目的是通过全员的参与实现设备过程控制和预防。TPM的推行首先要具备设备的相关标准,如日常维护标准、部件更换标准等,随之就是员工对标准的把握和执行。TPM推行的目的是事前预防和发现问题,通过细致到位的全面维护确保设备的“零故障”,为均衡生产和准时化生产提供保障。 5、精益质量管理(LQM) 精益质量管理(LQM)更关注的是产品的过程质量控制,尤其是对于流程型产品,在制品质量不合格和返工会直接导致价值流的停滞和过程积压,因此更需要产品过程质量的控制标准,每个工序都是成品,坚决消除前工序的质量问题后工序弥补的意识。 6、TOC技术与均衡化生产

【Adams应用教程】第10章ADAMS参数化建模及优化设计

第10章 ADAMS参数化建模及优化设计

本章将通过一个具体的工程实例,介绍ADAMS/View的参数化建模以及ADAMS/View 提供的3种类型的参数化分析方法:设计研究(Design study)、试验设计(Design of Experiments, DOE)和优化分析(Optimization)。其中DOE是通过ADAMS/Insight来完成,设计研究和优化分析在ADAMS/View中完成。通过本章学习,可以初步了解ADAMS参数化建模和优化的功能。 10.1 ADAMS参数化建模简介 ADAMS提供了强大的参数化建模功能。在建立模型时,根据分析需要,确定相关的关键变量,并将这些关键变量设置为可以改变的设计变量。在分析时,只需要改变这些设计变量值的大小,虚拟样机模型自动得到更新。如果,需要仿真根据事先确定好的参数进行,可以由程序预先设置好一系列可变的参数,ADAMS自动进行系列仿真,以便于观察不同参数值下样机性能的变化。 进行参数化建模时,确定好影响样机性能的关键输入值后,ADAMS/View提供了4种参数化的方法: (1)参数化点坐标在建模过程中,点坐标用于几何形体、约束点位置和驱动的位置。点坐标参数化时,修改点坐标值,与参数化点相关联的对象都得以自动修改。 (2)使用设计变量通过使用设计变量,可以方便的修改模型中的已被设置为设计变量的对象。例如,我们可以将连杆的长度或弹簧的刚度设置为设计变量。当设计变量的参数值发生改变时,与设计变量相关联的对象的属性也得到更新。 (3)参数化运动方式通过参数化运动方式,可以方便的指定模型的运动方式和轨迹。 (4)使用参数表达式使用参数表达式是模型参数化的最基本的一种参数化途径。当以上三种方法不能表达对象间的复杂关系时,可以通过参数表达式来进行参数化。 参数化的模型可以使用户方便的修改模型而不用考虑模型内部之间的关联变动,而且可以达到对模型优化的目的。参数化机制是ADAMS中重要的机制。 10.2 ADAMS参数化分析简介 参数化分析有利于了解各设计变量对样机性能的影响。在参数化分析过程中,根据参数化建模时建立的设计变量,采用不同的参数值,进行一系列的仿真。然后根据返回的分析结果进行参数化分析,得出一个或多个参数变化对样机性能的影响。再进一步对各种参数进行优化分析,得出最优化的样机。ADAMS/View提供的3种类型的参数化分析方法包括:设计研究(Design study)、试验设计(Design of Experiments, DOE)和优化分析(Optimization)。 10.2.1 设计研究(Design study) 在建立好参数化模型后,当取不同的设计变量,或者当设计变量值的大小发生改变时,仿真过程中,样机的性能将会发生变化。而样机的性能怎样变化,这是设计研究主要考虑的内容。在设计研究过程中,设计变量按照一定的规则在一定的范围内进行取值。根据设计变

统计分析软件SPSS详细教程

10.11统计分析软件&SPSS建立数据 目录 10.11统计分析软件&SPSS建立数据 (1) 10.25数据加工作图 (1) 11. 08绘图解答&描述性分析: (3) 2.描述性统计分析: (4) 四格表卡方检验:(检验某个连续变量的分布是否与某种理论分布一致,如是否符合正态分布) (7) 第七章非参数检验 (10) 1.单样本的非参数检验 (11) (1)卡方检验 (11) (2)二项分布检验 (12) 2.两独立样本的非参数检验 (13) 3.多独立样本的非参数检验 (16) 4.两相关样本的非参数检验 (16) 5.多相关样本的非参数检验 (18) 第五章均值检验与T检验 (20) 1.Means过程(均值检验)( (20) 4. 单样本T检验 (21) 5. 两独立样本T检验 (22) 6.两配对样本T检验 (23) 第六章方差分析 (25) 单因素方差分析: (25) 多因素方差分析: (29) 10.25数据加工作图 1.Excel中随机取值:=randbetween(55,99) 2.SPSS中新建数据,一列40个,正态分布随机数:先在40那里随便输入一个数表示选择40个可用的,然后按一下操作步骤: 3.排序:个案排秩

4.数据选取:数据-选择个案-如果条件满足: 计算新变量: 5.频次分析:分析-统计描述-频率

还原:个案-全部 6.加权: 还原 7.画图: 11. 08绘图解答&描述性分析:1.课后题:长条图

2.描述性统计分析: (1)频数分析:

(2)描述性分析: 描述性统计分析没有图形功能,也不能生成频数表,但描述性分析可以将原始数据转换成标准化得分,并以变量形式存入数据文件中,以便后续分析时应用。 操作: 分析—描述性分析:然后对结果进行筛选,去掉异常值,就得到标准化的数据: 任何形态的数据经过Z标准化处理之后就会是正态分布的<—错误!标准化是等比例缩放的,不会改变数据的原始分布状态, (3)探索分析:(检验是否是正态分布:茎叶图、箱图) 实例:

精益生产十大工具

工具讲解| 咱们来聊聊精益生产的这10大工具 今天想跟大家聊聊精益,说起这个词:精益,也许很多人第一时间先把它的英文Lean搬出来,然后大谈Lean,天花乱坠的到最后还是剑指日本。 其实精益的产生源于对浪费的零容忍,因此精益的整改也都不是什么高深莫测的科学,反而其整改的基础都来源于人们的常识和人们对其生产环境的思考。作为SQE,我们经常会提及一句话“供应商,请把你的改善报告给我”,当我们向供应商要改善报告的时候,我们到底希望供应商干啥?这个问题,SQE你是否思考过? 其实,我们在做供应商管理的过程中,如果能把杜绝浪费作为我们唯一的出发宗旨,问题也就迎刃而解。 项目不能够按时完成,这是一种浪费:你投入了人力,物力和时间,但是在计划的时间内没有完成任务,这是不是浪费?答案是肯定的。 供应商交付的产品出现质量问题,需要换货,退货,挑选,我们给供应商开事故,让供应商提交8D,最终我们要在8D中看到有效的永久措施:发生原因整改措施,流出原因整改措施,管理原因整改措施。所有的整改是为了预防问题再次发生,其实就是为了防止再次出现浪费。中国的古人说的,亡羊补牢为时未晚就是这个意思。 当我们把工作的终点定义为遏制和防止浪费出现,那么自然而然地将精益思想揪出来,因为精益的核心就是减少浪费提高效率防止错误产生。 一提精益,大家立刻想到日本,我觉得很正常,说明你还是了解精益的,因为如果一提到精益,你想到的是印度,我想说哥们儿你应该不了解精益。 为了防止浪费,日本将精益工具化,思想化甚至生活化。先给大家举个例子,这是发生在我身边的真实的事情。 我老婆去日本旅游,带回来一袋日本的乌冬面。 一天,我心血来潮想尝尝这日本的乌冬面,于是乎在锅中烧开水,然后撕开袋口将一坨面顺势从包装袋中挤出去了,在滚滚的废水中,我突然看到了调味包在沸水中翻滚,这时候我郁闷了:因为我是从事塑料件供应商管理多年的SQE,职业的直觉让我觉得塑料制品在废水中浸泡会释放出有毒物质,我再深入地联想了一下,有毒物质可能致癌,于是乎提起右手狠狠地抽了自己一个耳光,大老远飘洋过海的乌冬面我要倒掉啦!!!因为我胆小惜命,面对可疑0容忍。 于是我将火关掉,用筷子将调味包夹起来,正要扔进垃圾桶的时候发现上面用日文赫然写着:如果不慎进入沸水锅中,请不要担心,面仍可食用!艺多不压身啊,多亏我还是懂一点点日文,不然这一锅面就进垃圾桶了。

SPSS教程中文完整版

SPSS统计与分析 统计要与大量的数据打交道,涉及繁杂的计算和图表绘制。现代的数据分析工作如果离开统计软件几乎是无法正常开展。在准确理解和掌握了各种统计方法原理之后,再来掌握几种统计分析软件的实际操作,是十分必要的。 常见的统计软件有 SAS,SPSS,MINITAB,EXCEL 等。这些统计软件的功能和作用大同小异,各自有所侧重。其中的 SAS 和 SPSS 是目前在大型企业、各类院校以及科研机构中较为流行的两种统计软件。特别是 SPSS,其界面友好、功能强大、易学、易用,包含了几乎全部尖端的统计分析方法,具备完善的数据定义、操作管理和开放的数据接口以及灵活而美观的统计图表制作。SPSS 在各类院校以及科研机构中更为流行。 SPSS(Statistical Product and Service Solutions,意为统计产品与服务解决方案)。自 20 世纪 60 年代 SPSS 诞生以来,为适应各种操作系统平台的要求经历了多次版本更新,各种版本的 SPSS for Windows 大同小异,在本试验课程中我们选择 PASW Statistics 作为统计分析应用试验活动的工具。 1. SPSS 的运行模式 SPSS 主要有三种运行模式: (1)批处理模式 这种模式把已编写好的程序(语句程序)存为一个文件,提交给[开始]菜单上[SPSS for Windows]→[Production Mode Facility]程序运行。 (2)完全窗口菜单运行模式 这种模式通过选择窗口菜单和对话框完成各种操作。用户无须学会编程,简单易用。 (3)程序运行模式

这种模式是在语句(Syntax)窗口中直接运行编写好的程序或者在脚本(script)窗口中运行脚本程序的一种运行方式。这种模式要求掌握 SPSS 的语句或脚本语言。本试验指导手册为初学者提供入门试验教程,采用“完全窗口菜单运行模式”。 2. SPSS 的启动 (1)在 windows[开始]→[程序]→[PASW],在它的次级菜单中单击“SPSS for Windows”即可启动 SPSS 软件,进入 SPSS for Windows 对话框,如图,图所示。 图 SPSS 启动

ADAMS_实例教程--中文01

英文资料翻译:MSC.ADAMS/View使用入门 MSC.ADAMS/View 使用入门练习 欢迎浏览MSC.Software的网址 美国总部:https://www.360docs.net/doc/b54471018.html, 中国办事处:https://www.360docs.net/doc/b54471018.html,

目 录 第一章弹簧挂锁设计问题介绍 总论--------------------------------------------------------------------------------1 你将学习的内容----------------------------------------------------------------------1 你将创建的模型----------------------------------------------------------------------2 设计要求------------------------------------------------------------------------3 弹簧挂锁的工作原理--------------------------------------------------------------3 第二章建模 总论--------------------------------------------------------------------------------5 建造曲柄和手柄----------------------------------------------------------------------5 启动ADAMS/View并建立一个新的数据文件-------------------------------------------6 熟悉ADAMS/View的界面 ----------------------------------------------------------6 设置工作环境--------------------------------------------------------------------7 创建设计点----------------------------------------------------------------------8 建造曲柄(pivot)---------------------------------------------------------------9 重新命名曲柄(pivot)-----------------------------------------------------------9 建造手柄(handle)--------------------------------------------------------------9 用转动副连接各个构件------------------------------------------------------------9 模拟模型的运动-----------------------------------------------------------------10 观察参数化的效果---------------------------------------------------------------10 建造钩子(Hook)和连杆(Slider)---------------------------------------------------10 建造钩子和连杆-----------------------------------------------------------------11 用铰链连接各构件---------------------------------------------------------------12 模型运动仿真-------------------------------------------------------------------12 存储你的数据文件-------------------------------------------------------------------12 第三章测试初始模型 总论-------------------------------------------------------------------------------13 生成地块(Ground Block)-------------------------------------------------------------14 加一个Inplane 虚约束---------------------------------------------------------------14 加一个拉压弹簧---------------------------------------------------------------------15 加一个手柄力-----------------------------------------------------------------------15 弹簧力的测试-----------------------------------------------------------------------16 角度测试---------------------------------------------------------------------------17 生成一个传感器---------------------------------------------------------------------18 存储模型---------------------------------------------------------------------------18 模型仿真---------------------------------------------------------------------------18 第四章验证测试结果 总论-------------------------------------------------------------------------------20 输入物理样机试验数据---------------------------------------------------------------20 用物理样机试验数据建立曲线图-------------------------------------------------------21 编辑曲线图-------------------------------------------------------------------------22 用仿真数据建立曲线图---------------------------------------------------------------22 存储模型--------------------------------------------------------------------------23

精益生产管理的十大工具和实施步骤

一、何为精益生产 精益生产(LeanProduction,简称LP)是美国麻省理工学院数位国际汽车计划组织(IMVP)的专家对日本“丰田JIT(JustInTime)生产方式”的赞誉之称,精,即少而精,不投入多余的生产要素,只是在适当的时间生产必要数量的市场急需产品(或下道工序急需的产品);益,即所有经营活动都要有益有效,具有经济性。精益生产是当前工业界最佳的一种生产组织体系和方式。 精益生产既是一种以最大限度地减少企业生产所占用的资源和降低企业管理和运营成本为主要目标的生产方式,同时它又是一种理念,一种文化。实施精益生产就是决心追求完美的历程,也是追求卓越的过程,它是支撑个人与企业生命的一种精神力量,也是在永无止境的学习过程中获得自我满足的一种境界。其目标是精益求精,尽善尽美,永无止境的追求七个零的终极目标。 二、精益生产的四个特点 大部分的企业都已经认识到了精益生产对企业的一个重要性,当然精益生产管理企业也是一样的,精益生产在一定的程度上会让企业的生产效率提高,同时还可以在一定的程度上增强企业的自己的竞争能力,但是虽然很多的企业都想实行精益管理,但是却没有真正的明白精益生产的一个特点,那么精益生产管理有什么特点呢? 1、消除一切浪费,追求精益求精 精益生产的特点是消除一切浪费,追求精益求精和不断改善。去掉生产环节中一切无用的东西,每个工人及其岗位的安排原则是必须增值,撤除一切不增值的岗位。精简是它的核心,精简产品开发设计、生产、管理中一切不产生附加值的工作,旨在以最优品质、最低成本和最高效率对市场需求作出最迅速的响应。 2、强调人的作用,发挥人的潜力 精益生产方式把工作任务和责任最大限度地转移到直接为产品增值的工人身上。而且任务分到小组,由小组内的工人协作承担。为此,要求工人精通多种工作,减少不直接增值的工人,并加大工人对生产的自主权。当生产线发生故障,工人有权自主决定停机,查找原因,做出决策。小组协同工作使工人工作的范围扩大,激发了工人对工作的兴趣和创新精神,更有利于精益生产的推行。 3、零浪费目标 库存是"祸根":高库存是大量生产方式的特征之一。由于设备运行的不稳定、工序安排的不合理、较高的废品率和生产的不均衡等原因,常常出现供货不及时的现象,库存被看作是必不可少的"缓冲剂"。但精益生产则认为库存是企业的"祸害",其主要理由是:①库存提高了经营的成本;②库存掩盖了企业的问题。

Adams柔性体例子—机器人Adams虚拟实验详细步骤

一.ADAMS软件简介 (2) 1.1ADAMS软件概述 (2) 1.2用户界面模块(ADAMS/View) (3) 1.3求解器模块(ADAMS/Solver) (5) 1.4后处理模块(ADAMS/PostProcessor) (6) 1.5控制模块(ADAMS/Controls) (8) 二.典型机器人虚拟实验 (9) 2.1串联机器人 (9) 2.1.1 运动学分析 (9) 2.1.2 动力学分析 (14) 2.1.3 轨迹规划 (17) 2.1.4 基于ADAMS和MATLAB的联合运动控制 (22)

一.ADAMS软件简介 虚拟样机仿真分析软件ADAMS(Automatic Dynamic Analysis of Mechanical Systems)是对机械系统的运动学与动力学进行仿真的商用软件,由美国MDI (Mechnical Dynamics Inc.)开发,在经历了12个版本后,被美国MSC公司收购。ADAMS集建模、计算和后处理于一体,ADAMS有许多个模块组成,基本模块是View模块和Postprocess模块,通常的机械系统都可以用这两个模块来完成,另外在ADAMS中还针对专业领域而单独开发的一些专用模块和嵌入模块,例如专业模块包括汽车模块ADAMS/Car、发动机模块ADAMS/Engine、火车模块 ADAMS/Rail、飞机模块ADAMS/Aircraft等;嵌入模块如振动模块 ADAMS/Vibration、耐久性模块ADAMS/Durability、液压模块ADAMS/Hydraulic、控制模块ADAMS/Control和柔性体模块ADAMS/AutoFlex等[3]。 1.1ADAMS软件概述 ADAMS是以计算多体系统动力学(Computational Dynamics of Multibody Systems)为基础,包含多个专业模块和专业领域的虚拟样机开发系统软件,利用它可以建立复杂机械系统的运动学和动力学模型,其模型可以是刚体的,也可以是柔性体,以及刚柔混合体模型。如果在产品的概念设计阶段就采取ADAMS进行辅助分析,就可以在建造真实的物理样机之前,对产品进行各种性能测试,达到缩短开发周期、降低开发成本的目的。 ADAMS,即机械系统动力学自动分析(Automatic Dynamic Analysis of Mechanical Systems)该软件是美国MDI公司(Mechnical Dynamics Inc.)开发的虚

精益生产十大工具

精益生产的十大工具------施增虎 一、精益生产的起源 精益生产:不多不少,不迟不早,刚刚好,以最少的投入来满足顾客的需求,企业获得最大的回报,投入里面包括人力、物力、设备、时间、场地,通过你的加工、生产、制造变成了成品,成品质量要好,数量要准确,供货要及时,价格要具有竞争力。 生产资源投入5M:人员manpower,机器machine,材料materials,方法methods,测量measuremant. 成品输出SQDCM:安全safety,质量quality,成本cost,交期delivery,士气morale. 精益5大原则:寻找价值;认识价值流;让作业流动起来;按客户的需求拉动生产;持续生产,尽善尽美。 -丰田生产方式与精益生产 -丰田生产方式产生背景及发展 -精益生产的新发展 二、精益生产两大支柱 -核心理论:消除八大浪费,降低成本 -两大支柱:准时化和自动化 三、精益生产要领的应用 精益案例:一、通用加工工厂从濒临破产到精益生产美国第一工厂。 二、从求医进程看医院办理 四、杜绝浪费消除成本(一) 精益生产的思想基础:消除浪费 浪费:一切不为顾客创造价值但却消耗资源活动或行为。 区分增值活动与非增值活动 增值活动:将原料或信息转换,改变形状,第一次来满足客户的需求; 浪费:目前是不能取消的动作叫浪费 增值的三个条件:改变形状或形态,第一次做对不返工,客户付钱。 五、杜绝浪费消除成本(二) 七种浪费:过量生产浪费,纠正缺陷浪费,多余工序浪费,过渡库存浪费,物料运输浪费,

多余动作浪费,等候时间浪费 去除过量生产浪费技巧:小批量生产(或单件流),拉动式生产,均衡计划。 去除纠正缺陷浪费技巧:供应商质量保证,防错,减少变差,在线检验 去除多余工序浪费技巧:对比现有工艺和顾客需求,产品设计改进, 六、杜绝浪费消除成本(三) 去除过渡库存浪费技巧:小批量生产,均衡计划,拉动系统,提升设备可利用率和一次合格率,及时处理过期物料,小批量采购,及时生产,缩小仓库面积。 去除物料运输浪费技巧:预设搬运路线/频繁送料,小转运箱/配套,拉动系统,改进工厂布局,单件流。 去除多余动作浪费技巧:工位设计,压缩设备布局和零件呈送(减小转运箱尺寸),设立/标识生产线旁的储存区域。 七、杜绝浪费消除成本(四) 去除等候时间浪费技巧:改进工作分配,操作者多技能培训,拉动系统,频繁送料,缩短换型时间, 员工创造力浪费 八、精益生产十大工具(一) 精益生产十大工具:5S----工作场地有序安排,目视化管理,问题解决,全员生产维护(TPM),标准化作业,现场改善,防错,看板,快速换模,价值流图析 5S----工作场地有序安排:整理,整顿,清扫,清洁,素养。 九、精益生产十大工具(二) 目视化管理 问题解决-----现场、现物、现实 十、精益生产十大工具(三) 全员生产维护(TPM) 十一、精益生产十大工具(四) 标准化作业要素:节拍时间,作业顺序,标准在制品存量 现场改善关注要素:安全、质量、成本、交期、士气 防错 看板 快速换模 价值流图析 十二、精益生产推行战略 -树立精益的需求:由需求带动精益的实施 -从5S和VSM入手,二者同时进行:(从现场和流程开始) -看板、拉动、快速换模进行柔性生产和及时生产 -通过可视化、TPM、防错等进行持续改善(十大工具交叉、融合进行) 精益生产改进路线:建立改善团队→精益原理培训→价值流图析→列举问题,明确机会→制定目标,解决问题→标准化体系与连续流→建立节拍/提高效率/缩短制造周期→PDCA 及持续改进。

SPSS简明教程(绝对受用)

第一章SPSS概览--数据分析实例详解 1.1 数据的输入和保存 1.1.1 SPSS的界面 1.1.2 定义变量 1.1.3 输入数据 1.1.4 保存数据 1.2 数据的预分析 1.2.1 数据的简单描述 1.2.2 绘制直方图 1.3 按题目要求进行统计分析 1.4 保存和导出分析结果 1.4.1 保存文件 1.4.2 导出分析结果 希望了解SPSS 10.0版具体情况的朋友请参见本网站的SPSS 10.0版抢鲜报道。 例1.1 某克山病区测得11例克山病患者与13名健康人的血磷值(mmol/L)如下, 问该地急性克山病患者与健康人的血磷值是否不同(卫统第三版例4.8)? 患者: 0.84 1.05 1.20 1.20 1.39 1.53 1.67 1.80 1.87 2.07 2.11 健康人: 0.54 0.64 0.64 0.75 0.76 0.81 1.16 1.20 1.34 1.35 1.48 1.56 1.87 解题流程如下:

1.将数据输入SPSS,并存盘以防断电。 2.进行必要的预分析(分布图、均数标准差的描述等),以确定应采 用的检验方法。 3.按题目要求进行统计分析。 4.保存和导出分析结果。 下面就按这几步依次讲解。 §1.1 数据的输入和保存 1.1.1 SPSS的界面 当打开SPSS后,展现在我们面前的界面如下: 请将鼠标在上图中的各处停留,很快就会弹出相应部位的名称。 请注意窗口顶部显示为“SPSS for Windows Data Editor”,表明现在所看到的是SPSS的数据管理窗口。这是一个典型的Windows软件界面,有菜单栏、

002索尼精益生产管理实践

索尼?中村研究所董事长论“日本制造业的关键” “振兴日本生产制造业应当灵活运用日本企业擅长的商品开发能力。”—因负责索尼“天琴座(织女星)”系列彩电的开发而广为人知的索尼?中村研究所董事长兼总经理中村末广出席在东京BIGSIGHT(东京大全景国际展览中心)举行的“第14次设计制造解决方案展”并发表主题讲演时,对振兴日本制造业,介绍了包括上述内容在内的诸多思路。 中国不是威胁 中村先生首先谈到:“对于一些人认为中国(制造业)的存在威胁了日本的制造业这种说法,我持否定态度。”其理由之一,就是中国市场的魅力。中村说,“12亿人口中,被称为‘新富’的富有阶层只占总人口的10%,这恰好等于日本的总人口。这个阶层具有很强的购买力和购买欲,也就是说,一个和日本的购买力差不多一样大的大市场突然出现在了日本的面前。”他对此表示欢迎,说“再没有比这更让人高兴的了!” 就日本制造业企业将生产据点转移到中国这个问题,中村说,“中国专长于简单的复制”。关于中国的技术水准,中村说“中国在人才方面具有压倒性的优势,但是在新产品开发能力方面处于劣势”,他强调,在新产品开发方面日本具有优势。 应当由组装?加工业决定市场的整体 对于现在盛行的生产外包,中村也明确提出了质疑。他以台湾电脑厂商宏基电脑董事长施振荣提倡的微笑曲线为例,发表了自己的看法。 所谓微笑曲线,就是如果用曲线图来表示,处于上游的产品开发、零部件生产和处于下游的销售和售后服务产生的附加值高,处于中游的加工?组装部分产生的附加价值小。附加值高则利润率高,反之,附加值小的组装部分利润率也小。基于此种认识,将组装?加工等业务委托给电子生产承包商(EMS)的趋势日益明显。在这种所谓的“集中与选择”的名目下,生产外包以及公司裁员不断发生。

ADAMS_CAR模块实例(悬架分析篇)

10悬架分析 (225) 10.1悬架模型参数调整 (225) 10.2悬架参数设定 (229) 10.3悬架仿真 (231) 10.4查看后处理结果 (233) 附例 (234) 224

《悬架分析篇》 10悬架分析 在ADAMS/Car下可进行的悬架分析包括: (1)车轮同向运动(Parallel wheel analysis) (2)车轮反向运动(Oppositel wheel analysis) (3)侧倾和垂直力分析(Roll and vertical forces)-悬架的侧倾角变化,同时保持作用于悬架的总垂直力不变,因此作用于左右车轮的垂直力会变化,导致左右轮心的位置改变。 (4)单轮运动(Single wheel travel)-一个车轮固定,另一个车轮运动。 转向(Steering)-在给定轮心高度下,在转向盘或转向机上施加运动。 (5)静态分析(Static load)-可以在轮心或轮胎印迹上施加载荷,如纵向力、侧向力、垂直力。 (6)外部文件分析(External file)-利用外部文件来驱动仿真。 1)载荷分析(Loadcase),文件中包含的输入可以是轮心位移、转向盘转角,或 者是作用力; 2)车轮包络分析(wheel envelope),车轮同向运动的同时,车轮发生转到,主 要是与CAD软件结合检查悬架、转向系等与车身的干涉。 10.1悬架模型参数调整 在前面第8章已经完成前悬架模块的装配,在子系统或装配体中质量、硬点、衬套、弹簧和减振器特性是可以修该的,以满足用户实际情况。 1)修改质量特性 在部件附近右击鼠标,在出现的清单里找到所要修改的部件,选择Modify。 出现如下窗口: 225

千与千寻的片尾曲歌词

哪位大虾能帮我解释一下千与千寻片尾曲always with me 的歌词的意思? 歌词: 内心深处的呼唤 我想要走进悸动的梦中 虽然悲伤总是会重演 但我一定能在某处与你相逢 人们总是不停犯错 他们只知道天是蓝的 虽然前路渺茫 但他们的双手仍在寻找光明 离别时平静的心 身体归于虚无时的倾听 莫名的生存,莫名的死去 花,风,城市都是如此 啦啦啦~~~ 内心深处的呼唤 让我们不停的画出梦的色彩 比起回忆心中的悲伤 不如用同样的唇轻声歌唱 即使在封锁的回忆中 仍然还有无法忘记的呢喃 即使在粉碎的镜片中 仍然能映出新的景色 晨色初照下的宁静窗台 还有化为虚无的身体 从此我不会越过大洋去寻找 闪耀的所有都在身边 我将自己去追寻 啦啦啦~~~ 我来帮他解答 满意回答 2009-03-29 12:40 这是我一点不成熟的看法,理解的不到位,见谅

宫崎骏大师总是善于刻画孩子内心对世界的看法和对待事物的心理,大家都看过这部电影吧,刚开始的时候,千寻是一个胆小麻木的孩子,这与家长的教育很有关,家长首先就对千寻不是很重视,从简短的几句对白和在通往神明的隧道口就能够看出来,不过虽然千寻对世事比较麻木,但是毕竟她还是生活在象牙塔里的小学生而已,大人们对她自身的想法不重视导致她对自己的不自信和对除自己之外的人的不相信。到这就不难理解这段歌词了。 首先第一句是说有关她的这段非比寻常的经历,对这段故事的不舍,那个如梦一样的世界跟现实世界一样,值得她去怀念。在即将和那个世界作别时,他和小白的对话中,充分显示了他们互相的不舍。其实这个世界,离别才是永恒的,但他们仍然相信他们可以重逢。 第二段,宫崎骏借千寻的角度道破,其实大人们总是太过自私,总是不顾一切的去追逐自己想要的,却忽略了最重要的。 第三段,千寻刚进入那个世界是胆小的,眼睛里充满茫然,而且不懂礼貌,对救了她的锅炉爷爷都没说一句谢谢,去见汤婆婆连门也没敲。可是后来千寻却能把河神给自己的丸子给白龙和无面人吃,足以看出千寻的变化。在回到人类世界之后,千寻回头不舍得望向给自己很多宝贵东西的时候,眼神是那么坚定。这时的千寻实际上已经从神明世界的小千那里继承了某种精神,她已经不再像以前那样迷茫,相信她在这个故事之后,会有她的另一个人生。 之后的几段我感觉和前面的差不多,就是

【Adams应用教程】第11章ADAMS二次开发及实例

第11章 ADAMS二次开发及实例 ADAMS具有很强的二次开发功能,包括ADAMS/View界面的用户化设计,利用cmd语言实现自动建模和仿真控制,通过编制用户子程序满足用户的某些特定需求,甚至可以拓展ADAMS的功能。 本章主要介绍如何定制用户化界面、宏命令的用法和条件循环命令的用法,以及综合以上功能的应用实例。由于用户子程序的主要内容已在第9章进行了详细介绍,因此本章只对所涉及到的用户子程序编译联接操作过程进行简单介绍。 11.1 定制用户界面 ADAMS/View的界面对象都是以层次结构存储在模型数据库中,类似于零件模型的层次结构。所有定制的界面对象都存储在名为GUI的数据库中,该数据库可以很方便地管理所有的标准界面对象。如图11-1所示。 图11-1 界面对象的层次结构

机械系统动力学分析及ADAMS应用 最上层的界面对象是窗口和对话框。如果主要建模窗口起名为main的话,其数据库全名应为.gui.main。 尽管窗口和对话框看起来很相似,但它们却是很不相同的。窗口通常是在用户工作的时候在屏幕上停留一段时间,而对话框通常是在用户输入数据或是进行访问控制时才会出现。窗口有工具条和菜单栏,窗口和对话框也包含其他的界面对象如按钮,标签等等。 大多数用户化操作涉及到创建对话框或者修改标准对话框。但若不用创建一个完整的用户化界面时,则通常只用修改菜单条和工具栏。 ADAMS所包含界面对象属性如表11-1所示。 表11-1 ADAMS所包含界面对象属性

第11章ADAMS二次开发及实例 在大多数情况下,用户定制界面是指制作用户自己的菜单和对话框。通常可使用菜单编辑器和对话框编辑器来定制界面,通过它们可以很快地访问并改变大多数界面对象和功能。下面就这两方面的内容作简单介绍。 11.1.1 定制菜单 1。菜单编辑器 通过以下菜单路径可以调出菜单编辑器窗口: Main menu==》Tools==》Menu==》Modify…… 菜单编辑器窗口如图11-2所示: 图11-2 菜单编辑窗口 在菜单编辑器窗口中显示的是ADAMS菜单文件,菜单文件是按照一定的语法书写的解释性程序文件,在默认情况下,菜单编辑器窗口里显示的是描述ADAMS标准菜单的菜单文件,通过按照一定的语法规则修改该菜单文件,就可以得到用户化的菜单。

工程案例—机器人Adams虚拟实验详细步骤(精)

一.ADAMS软件简介 虚拟样机仿真分析软件ADAMS(Automatic Dynamic Analysis of Mechanical Systems)是对机械系统的运动学与动力学进行仿真的商用软件,由美国MDI (Mechnical Dynamics Inc.)开发,在经历了12个版本后,被美国MSC公司收购。ADAMS集建模、计算和后处理于一体,ADAMS有许多个模块组成,基本模块是View模块和Postprocess模块,通常的机械系统都可以用这两个模块来完成,另外在ADAMS中还针对专业领域而单独开发的一些专用模块和嵌入模块,例如专业模块包括汽车模块ADAMS/Car、发动机模块ADAMS/Engine、火车模块ADAMS/Rail、飞机模块ADAMS/Aircraft等;嵌入模块如振动模块ADAMS/Vibration、耐久性模块ADAMS/Durability、液压模块ADAMS/Hydraulic、控制模块ADAMS/Control和柔性体模块ADAMS/AutoFlex等[3]。 1.1ADAMS软件概述 ADAMS是以计算多体系统动力学(Computational Dynamics of Multibody Systems)为基础,包含多个专业模块和专业领域的虚拟样机开发系统软件,利用它可以建立复杂机械系统的运动学和动力学模型,其模型可以是刚体的,也可以是柔性体,以及刚柔混合体模型。如果在产品的概念设计阶段就采取ADAMS 进行辅助分析,就可以在建造真实的物理样机之前,对产品进行各种性能测试,达到缩短开发周期、降低开发成本的目的。 ADAMS,即机械系统动力学自动分析(Automatic Dynamic Analysis of Mechanical Systems)该软件是美国MDI公司(Mechnical Dynamics Inc.)开发的虚拟样机分析软件。目前,ADAMS已经被全世界各行各业的数百家主要制造商采用。根据1999年机械系统动态分析软件国际市场份额的统计资料,ADAMS 软件销售总额近八千万美元、占据了51%的份额。 ADAMS软件使用交互式图形环境和零件库、约束库、力库,创建完全参数化的机械系统几何模型,其求解器采用多刚体系统动力学理论中的拉格朗日方程方法,建立系统动力学方程,对虚拟机械系统进行静力学、运动学和动力学分析,

精益生产管理的十大工具和实施步骤

一、何为精益生产 精益生产(LeanProduction,简称LP)就是美国麻省理工学院数位国际汽车计划组织(IMVP)得专家对日本“丰田JIT(JustInTime)生产方式”得赞誉之称,精,即少而精,不投入多余得生产要素,只就是在适当得时间生产必要数量得市场急需产品(或下道工序急需得产品);益,即所有经营活动都要有益有效,具有经济性。精益生产就是当前工业界最佳得一种生产组织体系与方式。 精益生产既就是一种以最大限度地减少企业生产所占用得资源与降低企业管理与运营成本为主要目标得生产方式,同时它又就是一种理念,一种文化。实施精益生产就就是决心追求完美得历程,也就是追求卓越得过程,它就是支撑个人与企业生命得一种精神力量,也就是在永无止境得学习过程中获得自我满足得一种境界。其目标就是精益求精,尽善尽美,永无止境得追求七个零得终极目标. 二、精益生产得四个特点 大部分得企业都已经认识到了精益生产对企业得一个重要性,当然精益生产管理企业也就是一样得,精益生产在一定得程度上会让企业得生产效率提高,同时还可以在一定得程度上增强企业得自己得竞争能力,但就是虽然很多得企业都想实行精益管理,但就是却没有真正得明白精益生产得一个特点,那么精益生产管理有什么特点呢? 1、消除一切浪费,追求精益求精 精益生产得特点就是消除一切浪费,追求精益求精与不断改善.去掉生产环节中一切无用得东西,每个工人及其岗位得安排原则就是必须增值,撤除一切不增值得岗位。精简就是它得核心,精简产品开发设计、生产、管理中一切不产生附加值得工作,旨在以最优品质、最低成本与最高效率对市场需求作出最迅速得响应。 2、强调人得作用,发挥人得潜力 精益生产方式把工作任务与责任最大限度地转移到直接为产品增值得工人身上。而且任务分到小组,由小组内得工人协作承担。为此,要求工人精通多种工作,减少不直接增值得工人,并加大工人对生产得自主权。当生产线发生故障,工人有权自主决定停机,查找原因,做出决策。小组协同工作使工人工作得范围扩大,激发了工人对工作得兴趣与创新精神,更有利于精益生产得推行。 3、零浪费目标 库存就是”祸根”:高库存就是大量生产方式得特征之一。由于设备运行得不稳定、工序安排得不合理、较高得废品率与生产得不均衡等原因,常常出现供货不及时得现象,库存被瞧作就是必不可少得"缓冲剂"。但精益生产则认为库存就是企业得"祸害",其主要理由就是:①库存提高了经营得成本;②库存掩盖了企业得问题。 生产中得无效劳动与提前进入库存得过剩劳动都就是浪费。为杜绝这些浪费,精益生产方式要求毫不留情地撤掉不直接为产品增值得环节与工作岗位。 4、追求完美,永不满足 精益生产方式则把”无止境地追求完美"作为经营目标,追求在产品质量、成本与服务方面得不断完善.这一思想就是区别于大量生产方式得重要特征,也就是精益生产走向成功得精神动力。准时化生产方式(JIT)与不断改进流程(CIP)就是精益生产追求完美得思想体现。

相关文档
最新文档