当前位置:文档之家› AviSynth帮助文件中文版

AviSynth帮助文件中文版

AviSynth帮助文件中文版
AviSynth帮助文件中文版

AviSynth帮助文件中文版

1 开始

简单说来,AviSynth是这样工作的:首先,使用特定的命令形成一个简单的文本文档,称为脚本。这些命令和你要用的一个或多个视频或者滤镜有关。然后,运行一个视频处理程序,比如VirtualDub,并且用其打开这个脚本。这时候,AviSynth开始工作。它打开了你在脚本中使用的视频,运行了指定的滤镜,并且把结果输出给视频处理程序。然而,视频处理程序并不关心AviSynth在台后是如何工作的,它认为它只是直接打开了一个你硬盘上已经存在的过滤好了的一个AVI文件。在AviSynth2中,有很多新的和再开发出来的功能。为了清楚的看到这些新功能(特别是当以前的版本中没有这些特点时),新功能将以v2标识。

2.1 线性编辑

你用AviSynth能做的最简单的事情就是你用VirtualDub也能做到的那种编辑工作。这样的脚本是很容易编写的,因为如果你不想用的话你可以不必去管那些变量和复杂的表达式。

可以做一个测试,把下面的一行文字写在一个文本文件中,保存为test.avs文件。# C, g8 W) g. v) \# i

Version

6 o6 E8 }8 |. X' D

7 w

8 M5 s现在用Windows Media Player打开这个文件,你会看到一个十秒钟的视频剪辑,显示了AviSynth的版本号和拷贝权信息。这里,Version称为“源滤镜”,意思是它产生了一个剪辑而不是更改了一个剪辑。AviSynth脚本的第一条命令一定是一个源滤镜。: F6 n8 f" ^: b, l

现在在刚才生成的脚本文件中加入第二行,这样就变成了如下所示:

$ l/ _0 }; w6 sVersionReduceBy2

# N7 ^( V! n/ B3 p再次用Media Player打开这个脚本文件。你应该再次看到拷贝权信息,但是这次显示内容的大小只有原先的一半。ReduceBy2称为“变形滤镜”,意思是他作用于前一个剪辑并且对它作某种方式的变形处理。你可以连续使用很多变形滤镜,就像用VirtualDub一样。让我们再加一条命令让这个视频最后淡出成黑屏,在脚本文件中再加入另外一行如下所示:

3 l/ D- g# P& R0 M9 kVersionReduceBy2FadeOut(15)! {1 E/ |' C Z2 E6 b( H 现在再次打开文件。前九秒钟剪辑应该没什么变化,在最后一秒,剪辑应该平滑的淡出成黑屏。

1 v8 D. n5 ?) z7 H; _7 }8 k- KFadeOut

7 z0 w; f+ ^' S+ Z滤镜有一个数字参数,表示淡出所用的帧数。由Version 产生的视频剪辑刚好是每秒钟15帧(15fps),因此FadeOut的参数15使得剪辑在最后一秒的时候淡出。(筝儿:这里似乎有点错误,version产生的剪辑似乎是24fps的,所以后面的整个帧数也不对,应该总共是240帧,不过不影响

9 H1 t' \8 {9 n5 F: O, G a对命令的学习,把后面trim的第二个参数都改为0就没什么关系了)0 v9 }- k9 j: b( j7 y/ p5 v S2 O

在淡出前有很长的一段时间,我们可以修整一下剪辑的开始部分来减少我们的等待时间。由Version产生的剪辑有150帧(15fps乘以10秒)。AviSynth从第0帧开始。因此,实际帧数是从0到149。

6 k$ k* C/ c9 \1 W+ \$ b: K4 QFadeOut刚好会增加额外的一帧,这样一来,整个剪辑从头至尾,就有从0到150帧。让我们去掉开始的120帧。1 S& `1 h. |- u* l

VersionReduceBy2FadeOut(15)Trim(120,150) #砍掉前8秒(筝儿:建议写成Trim(192,0) )

0 D* \$ L: I- c" M: ?# _( g; g在这个例子中,我们第一次使用了注释。注释以#开始,持续到这一行的结尾,注释会被AviSynth完全忽略掉。Trim滤镜有两个参数,以分号隔开,分别表示剪辑中所要保留的第一帧和最后一帧。如果把表示最后一帧的参数设为0,则意味着整个剪辑的结尾,因此上面的trim命令也可以简单的写成

8 X B; M7 }% y0 yTrim(120,0)。! | c9 n+ i$ K; U6 z) V

用这种计算帧数的方式是很麻烦的,使用象VirtualDub这样的应用程序来打开一个已经完成了一部分的脚本就要简单得多,因为VirtualDub可以为你显示帧数。你也可以使用ShowFrameNumber滤镜,这个滤镜可以显示每一帧本身的帧序号。再练习一个比Version更有用的滤镜AVISource,这个滤镜可以从硬盘中读取一个AVI文件(或者是一个其他类型的文件)。如果你手边现在就有AVI文件,你就可以按照下面所示试一下:

3 n1 s

4 u8 @) r) ]$ k6 Y' MAVISource(“d:capture.avi”) #这里写你自己的AVI文件的实际路径和文件名ReduceBy2FadeOut(15)Trim(120,0)

6 S k* l& y, @! N8 Y只需要脚本中有一行AVISource命令就可以令视频处理程序支持大于2GB以上的AVI文件,否则的话一般视频处理程序只支持小于2GB 的AVI文件。5 a! P. q5 ^5 n8 [

2.2 非线性编辑6 b5 |0 E. E( @4 R8 t+ _

现在我们开始学习有意思的部分了。按照下面的脚本生成一个AVS文件:

( P. u2 R: y* l2 [; S3 Y sStackVertical(Version, Version)

7 j$ m& p# B- i2 w+ g现在运行这个脚本:出现了两个版本信息,一个在另一个的上面。StackVertical并不用数字或者字符串作为参数,它是用视频剪辑作为参数的。在这个脚本中,Version滤镜被调用了两次。每一次,它都返回一个视频剪辑的复本。这两个副本视频剪辑都传递给了StackVertical,然后StackVertical把它们组合在一起(而不管它们是从哪里来的)。这类滤镜中最有用的一个是UnalignedSplice,它能够把视频头尾相连。下面是一个载入了三个AVI文件并能够连起来播放的脚本:- R1 `7 R% r& |" K# n0 N UnalignedSplice(AVISource(“d:capture.00.avi”),AVISource(“d:capture .01.avi”),AVISource(“d:capture.02.avi”))0 O" A# O% r9 s* T# k/ q StackVertical和UnalignedSplice都可以带两个或者最多六个参数。你可以用+运算符作为UnalignedSplice的简捷方式。例如,上面的脚本和下面的脚本完成同样的功能:6 Z1 r; A% S1 B$ }7 w8 o/ @& \

AVISource(”d:capture.00.avi + AVISource(”d:capture.01.avi”) + AVISource(”d:capture.02.avi”)

7 G3 f6 q6 T: [9 D现在假设你用某个程序抓屏,并且存成了多个AVI片段,但是把声音放在了一个单独的WAV文件当中了,我们能把这些都组合在一起吗?你猜呢:

, Q* F4 j R. wAudioDub(AVISource(”d:capture.00.avi”)+AVISource(”d:capture.01.avi”)+AVISource(”d:capture.02.avi”), WAVSource(”d:audio.wav”))(筝儿:上面的例子应该写成一行)

4 v4 M- e. |' Z- u# D2.3 语法7 `7 |7 p# ]* ^4 q9 Y7 c

2.3.1 表达式

0 N7 Q( n$ f1 o一个AviSynth脚本由下面这样的多行语句组成:

2 O) j( M( u6 ?; d u l+ b变量名 = 表达式

. a! Q* q! h3 ]6 P在这个例子中,求出的表达式的值存放在变量名当中。

: T/ A/ d W! f# P% s+ f# [; q还可以用简单的方式来表示,这一点很重要:表达式在这个例子中,表达式的值求出来之后被放在一个特殊的剪辑变量last 当中。上面的语句就相当于:8 b5 @; S2 B' _7 K) T/ i: S

last = 表达式

B' e, q4 _% _; R* }: T脚本结尾总是写成这样:9 V: U4 y" x6 m- L% {; L9 m

return 表达式! g) |. T/ B% m8 r' Y

这里的表达式已经求出值并且作为脚本的返回值,也就是说,现在视频剪辑可以用能够打开AVI文件的应用程序播放了。

& Q" t: _9 U# |6 |" T调用函数的表达式的基本形式如下:' g) [6 I0 [9 v, b 函数(参数表)

" @8 z" N7 f0 D, e# {& C( z剪辑函数可以产生一个新的视频剪辑,但不会改变现有的剪辑。参数表是用逗号隔开的函数的参数列表。参数表可以为空(意思是全部或者部分参数可选)如果滤镜函数以视频剪辑作为第一个参数,而且这个参数没有给出,那么就会使用一个特殊的变量last来代替。

+ w" p7 T5 H, N" l3 _/ s/ G4 z& fAviSynth滤镜可以带命名参数。命名参数可以以任意顺序来说明,而且,滤镜会为你没有选择的参数取默认值(命名参数总是可选的)。这使得某些滤镜用起来更容易一些。

a! H$ X+ n$ g, s5 k+ c' Z你可以用

8 @" O6 l n- m& W# _# ?8 TSubtitle(“Hello, World!”, text_color=$00FF00, x=100, y=200) E: q6 c' M+ L: y0 Q8 U7 J

来代替

! K" @! v; S( b4 gSubtitle(“Hello, World!”, 100, 200, 0, 999999, “Arial”, 24, $00FF00) | _% _4 Z8 _2 E3 e8 H

剪辑函数有一种替换语法(称为“面向对象设计的符号”):& d* x9 {' ~( q4 c0 e7 u

表达式.函数(参数表) " ]# [+ Q' i2 x4 \

例如:

4 V3 B& _) ]8 O& uVersion.ReduceBy2.FadeOut(15)

6 Q$ P. _% P" V& |5 S这等价于' d! k' l+ c( ^% M; e

函数(表达式, 参数) ! g1 Q" o) f' F% l- B3 u

例如:# z0 k. W' V9 R. i" m; |5 V

FadeOut(15, ReduceBy2(Version))

; @5 ^/ q/ B# o+ }' J- ^而且可以理解为函数作用于表达式。面向对象设计的符号有一个缺点就是只能使用带有一个视频剪辑参数的滤镜,而不能用于带有多个参数的滤镜。' ]4 q& X: `( f

不管语法看起来有多复杂,所有的AviSynth函数都可以生成输出帧数和帧速率的定义号。AviSynth在读完脚本之后就知道输出会有多长,帧速率是多少,以及所有输入的剪辑顺序。这些都在打开脚本的时候被计算出来。只有实际的过滤过程是按照需要在运行时进行的。, l5 Y# L7 r: o) E! E0 t

注释:AviSynth忽略任何以#开头直到这行末尾的内容。

0 E6 f9 P ~: B忽略大小写:aVISouRCe 和 AVISource是一样的" N) [6 }6 q& {, ^# ]8 F0 i

下一行继续或者接前行:

5 G2 A/ ^" z4 D3 |9 H+ Q4 VSubtitle(“Test-Text”)

, G' l$ n3 Z M3 L& H$ ^$ W \! aSubtitle( “Test-Text”)4 p4 J/ d/ b: l

Subtitle( “Test-Text”)

6 \: Z

7 [7 Z$ y1 G7 J(筝儿:Subtitle的第一个参数是视频剪辑参数,不可缺省,上面写的例子只是为了说明换行的用法,实际应该写成 Subtitle(version, “Test-Text”) ,这里version可以替换为其他的视频剪辑文件)! B- d. j! l9 l) ]5 a1 U3 Z/ B0 I

2.3.2 变量

4 B* Y$ x7 n* i- y变量名最长可以有50个字符,包括字母、数字和下划线,但是不允许用其他的符号。名字不可以以数字开头。下面是可以使用的变量类型:1 `0 w8 Q) ^% K n( qclip:包括视频和/或音频的视频剪辑。脚本中至少要有一个clip变量并且要由脚本返回。

3 @" M: w

4 r; Xstring:两边加双引号(英文引号——筝儿)。string类型文本可以包括任何字符,但不包括表示string结束的双引号。如果你要让字符串包括双引号,就要用文本符号(中文引号——筝儿)。你还可以用Windows的扩展ASCII码中的弯双引号来代替直的双引号来绕过这种限制(似乎就是用中文引号来代替英文引号,但我试好像不行——筝儿)。. ]" ]- {) _ J& K

int:以数字字符串形式输入,开头可以有+或者-。

& n' X. ]+ i. a0 j! Dfloat:带小数点的数字字符串,也可以有+或者-。例如 +1. 被看作浮点数。

& X! ]$ Z! S2 |8 D3 g, E* nval:用做函数的参数类型,而不管它是int还是float类型。

7 E! [) h5 Q( C; W7 Xbool:只能为TRUE或者FALSE。9 n* _/ s- J: k9 A hexadecimal numbers:前面加$表示。这个变量被当作整数对待。很多滤镜用这种声明来表示颜色。例如:$FF8800 表示桔色。; U0 s1 P0 x7 C; ~$ u8 ]1 F2 u' Q7 M

global:定义一个全局变量,通常用于所有的用户定义函数和主脚本。V25 k* J) m/ r& a7 |1 i1 T, ?

下面是前文例子的另一个版本,但是这里可操作性要更好,而且更容易理解:# J- B, a' r6 `8 X4 {- l* M

a=AVISource(”d:capture.00.avi”)b=AVISource(”d:capture.01.avi”)c=A VISource(”d:capture.02.avi”)sound_track

=WAVSource(”d:audio.wav”)AudioDub(a+b+c, sound_tr ack)

) N* E- Y& p F! F o; C2.4 运算符

( n/ X2 q1 k2 N% Q& T对于所有类型的操作数(clip,int,float,string,bool)你可以使用:

- Y `8 E! k6 H. ?5 E== 等于

+ {0 x9 q; ?5 ~# t!= 不等于# O' k/ p, s! d( C& H1 k' D* M

|| 或

6 d9 \6 S0 k& e& g2 P ?/ d&& 与4 f9 G, a3 p1 D( m b

对于数值类型(int,float)

) m: v) \. X, r" b3 I5 j) t+ 加+ d$ W9 N: d0 J/ y3 b! E

- 减 F* P7 s! g: o) Z6 R. s

* 乘% Y7 h3 F- D, {+ |. i V, Q$ l

/ 除6 [+ m# H+ y0 U# M8 P- b! T" Y

% 求余' T5 F) ]& c D6 ~

>= 大于等于3 r1 ~" @( ?7 V# X

<= 小于等于3 C0 f& o6 F+ k8 j a

< 小于

3 B) k+ s; r, I& s> 大于- G: B3 p! p+ a6 v6 R

AviSynth在以前的版本中是从右到左解析表达式的,这样可能会给出错误结果:: v7 q+ O5 t/ S* \1 w# w2 U4 I

a = 10 – 5 – 5 结果为 10- (5 – 5 ) = 10 而不是 (10 – 5 ) – 5 = 0 !* Q6 J+ g! T- o( v5 d! V2 b

这个错误已经被改正过来。从2.53版开始,连乘法和除法都是从左到右解析(而不是从右到左)。

! q" ~/ \1 u% t c4 O5 D: w对于string类型:% o$ T' E: V4 ^ k' W+ m + 加) [. X3 |% o$ s0 O

>= 大于等于(大小写敏感)7 W( {& ^& |% ^. z3 Z2 j

<= 小于等于(大小写敏感)

+ ]. I3 ]+ |: l" U' C! `< 小于(大小写敏感); Q1 z" |1 [# F# o, v

> 大于(大小写敏感)0 T: [6 w. W1 L, k2 _" v

对于clip类型:

3 K1 F0 [5 m" S2 Z% U, a* J+ 和函数UnalignedSplice的功能一样

' U2 x5 M7 o0 e9 a- _- u++ 和函数AlignedSplice的功能一样

5 m

6 _) o+ Q' h+ v8 L& ?0 H对于bool类型, k. D4 V$ I- m* K: r+ K

?: 有条件执行代码

: k6 F) o* d" E6 ?& J6 L7 U' T6 Jb = (a==true) ? 1 : 2

4 W3 i; C8 ?% \: Y z在pseudo-basic语言中意思是:

5 c8 J! B1 H; c9 ^4 g0 f" Cif (a=true) then b=1 else b=28 S. i2 y2 [1 U2 s) i

3 函数$ [, R- N1 L$ D" S2 n

3.1 脚本函数

6 P! x5 T9 s* M, {这些函数的输入输出不是剪辑,而是脚本中用到的其他变量。: Q E- g4 B

7 h* j7 U& M

3.1.1 数值函数

9 o8 }+ r2 p h3 [+ IFloor (float): 将float 类型转换成int 类型Floor(1.2) = 1 Floor(1.6) = 1 Floor(-1.2) = -2 Floor(-1.6) = -2

t( ]) j7 R2 i/ \& J# t* H( hCeil (float): 将 float 类型转换成 int 类型 Ceil(1.2) = 2.0 Ceil(1.6) = 2.0 Ceil(-1.2) = -1 Ceil(-1.6) = -1

1 ?7 h& x* I. p* ERound (float): 将 float 类型转换成 int 类型 Round(1.2) = 1 Round(1.6) =

2 Round(-1.2) = -1 Round(-1.6) = -2

5 w8 y: u7 Z3 |2 O$ s2 I! _Int(float): 将 float 类型转换成 int 类型(四舍五入). v2.07 Int(1.2) = 1 Int(1.6) = 1 Int(-1.2) = -1 Int(-1.6) = -1

+ `) N; j! P% y2 H, ^Float(int): 将 int 类型转换成 float 类型. v2.07 6 T. N4 {5 d9 l4 a

Frac(float): 返回float 类型数值的小数部分. v2.07 Frac(3.7) = 0.7 Frac(-1.8) = -0.8, p( v P/ T9 ~/ g1 K5 X

Abs (integer) / Abs(float): 计算整数和单精度类型数值的绝对值. v2.07 Abs(-3.8) = 1.8

0 k% K) z% y4 H1 u3 H& }Sign(int) / Sign(float): 以 -1, 0 or 1的形式返回数值的符号位. v2.07 Sign(-3.5) = -1 Sign(3.5) = 1 Sign(0) = 0' C, S4 Q! }7 g: M: s- |

HexValue(string) 返回一个十六进制字符串的值. v2.07 HexValue ( “FF00″ ) = 65280! b1 G9 K! O# t+ {; {1 ~

Sin (float) v2

$ h' W( ]& x' HCos (float) v2 # b1 r" N7 [) u9 L

Pi () v2

6 |! c$ o5 F. kLog (float) v2 ( W. J1 M; l8 k& V! _* C0 B0 F

Exp (float) v2

3 H/ o2 z" @+ I W: b% y5 u5 ^Pow (float base, float power) v2

3 {, S) b | n- u- ySqrt (float) v2 9 n3 b8 }* b: x

Rand([int

- s; l/ @2 ~) G. L n, g5 w+ bmax] [, bool scale] [, bool seed]): 返回0到最大值(max)之间的随机整数. v2.07

: o. L. T! g8 P7 J2 J( j, ]默认值: max = 32768 scale = TRUE ( TRUE = 正

常模式, FALSE = 模块模式)5 x$ i* R1 \8 K9 T; z P6 k. h

seed = FALSE (TRUE = 用时间作为随机数种子) Rand(100) =0到99之间的整数) V% {. f7 b+ {6 R; _ n

Spline (float X, x1,y1, x2,y2, …., bool “cubic”) v2.5

9 i, u, B, h3 i4 _& H0 j! Y使用控制点x1/y1在X点处插入Y 值至少要有两个x/y对. 插值可以是立方(结果为样条曲线)或者线性(结果为多边形)

4 J9 c& r3 P- ~Spline(5, 0,0, 10,10, 20,0, false) =

5 Spline(5, 0,0, 10,10,20,0, true) = 7

* z( o2 C! h5 h/ d- G3 h3.1.2 字符串函数

+ h7 N4 l: b1 A- `% N6 |5 }UCase(string): 返回全部大写的字符串 v2.07 UCase(”AviSynth”) = “AVISYNTH”* }2 K) ?8 k! w3 V

LCase(string): 返回全部小写的字符串v2.07 LCase(”AviSynth”) = “avisynth”

( v; e% F3 x3 [1 V6 k$ M9 PRevStr(string): 返回字符串的倒序. v2.07 RevStr(”AviSynth”) = “htnySivA”. e' L/ C5 i- T% h! w

StrLen(string): 返回字符串的长度. v2.07 StrLen(”AviSynth”) = 8+ a5 H8 j$ q- [2 ^+ P$ v3 @/ u3 q

Findstr(string1, string2): v2.07 返回字符串2在字符串1中的位置.大小写敏感.

3 K7 Y7 [; U; y/ ~. T/ jFindstr(”AviSynth”,”syn”) = 4

+ J8 B _+ Z$ ~/ O8 dLeftStr(string, length) / RightStr(string, length): v2.07 返回指定长度的字符串的左部分或者右部分 LeftStr(”AviSynth”,3) =

“Avi”

: f3 n5 P+ T8 V7 |3 bMidStr(string,start [, length]): v2.07 返回字符串中从start开始(第一个字符的start是1)1 ~! V" r( u1 b$ D! f

到指定长度或者到结尾的字符串字符。 MidStr(”AviSynth”,3,2) = “iS”9 h, d) X; ?& q3 {4 T7 w

VersionNumber() v2.07 VersionNumber() = 2.07

, U) X( K e* J) [VersionString() v2.07 VersionString() = “AviSynth 2.08 (https://www.doczj.com/doc/de495853.html,) 22 nov. 2002″: j4 L3 b1 ~3 j# |

Chr(int): 返回ASCII 码字符 v2.5 Chr(34) returns the quote character & Y! k+ ?. N8 d4 j* YTime(string):. `/ o/ W. v0 b$ ^7 j6 |* w

返回按照字符串格式定义的当前系统时间v2.5 输出格式代码%a 星期名缩写%A 星期名全写%b 月名缩写%B月名全写%c 日期和时间按照本地方式表示%d 以十进制数表示一月中的每天 (01 – 31) %H 小时采用24小时制(00– 23) %I 小时采用12小时制 (01 – 12) %j 以十进制数表示一年中的每天 (001 –366) %m 以十进制数表示月份(01 – 12) %M 以十进制数表示分钟(00 – 59) %p 当前本地时间中A.M./P.M. 表示 12小时制 %S 用十进制数表示秒(00 – 59) %U

: J; v! i5 u9 E0 ~6 Q$ e5 x* N用十进制数表示一年中的星期,一星期中的第一天为星期日 (00 – 53) %w 用十进制数表示星期(0 – 6;星期日为 0) %W 用十进制数表示一年中的星期,一星期中的第一天为星期一 (00 – 53) %x 用当前本地格式表示日期%X用当前本地格式表示时间%y 用两位十进制数表示年份(00 – 99) %Y 用四位十进制数表示年份%z, %Z时区名或者缩写,如果时区名未知则没有字符%% 百分号 # 标志可以放在任何格式代码前。此时,格式代码的含

义变为如下所示: %#a, %#A,* e5 Z2 O/ ^" ^) \

%#b, %#B, %#p, %#X, %#z, %#Z, %#% # 标志可以忽略。 %#c 长格式显示当前本地日期和时间,例如:

2 o' S; w1 U6 v$ C* [“Tuesday, March 14, 1995, 12:41:29?. %#x 长格式显示当前本地日期,例如:! P* U5 n* H' o9 q2 T0 Q

“Tuesday, March 14, 1995?. %#d, %#H, %#I, %#j, %#m, %#M,

6 q2 J D1 j1 A o! n K' |%#S, %#U, %#w, %#W, %#y, %#Y 去掉开头的0 (如果有的话).

) R3 Q0 e$ C" }# E9 [3.1.3 转换

1 r! n0 ?) s( T$ FValue(string): 返回一个字符串的值. v2.07 Value( “-2.7″ ) = 2.7

$ \' r; u) e) _* t g6 C# h0 F& GString(float / int / string): 将一个数值转换成一个字符串v2 e.g.Subtitle( “Clip height is ”+ String(last.height) )' Z' U2 l$ a7 V6 Q v

3.1.4 测试函数 N' F' u; p/ o

IsBool (变量)

( I$ g6 w B: O+ ]. s# n% iIsInt (变量)

" H) _2 z) x; {9 i1 b/ e# MIsFloat (变量) 9 m8 f6 o2 p' u; k3 j+ u IsString (变量)

8 m9 i c, g* P, D/ K0 l6 R% p+ v6 `( B& [IsClip (变量) 7 t3 u# L5 _% m6 D

3.1.5 其他函数8 q- A; E1 M& ]

Select(index, item0 [, item1…]): 返回由索引号index选择的项目item (0=item0). 项目可以是任何变量、剪辑甚至是混合信息。v2.07 $ L/ `7 u/ G+ |/ z- J1 p, Q

Defined (var): 用于用户定义函数中定义可选参数。

, z0 J( Y( z2 b2 v+ ]Default (x, d): 如果定义了x,则返回x,否则返回d3 n! ?1 j1 X/ N# e' Y

Exist(filename): 如果文件存在则返回TRUE否则返回 FALSE 0 l. ] S& B( }# Q& \& V3 T' R, T

NOP 返回 NULL, 主要用于没有返回值项目的条件执行语句,例如import和没有else语句的条件语句。v2.07 2 N% _" Z7 o- s1 T2 @

Eval (string) $ g- x( \ ~$ ]- K: {

Apply (func-string, arg,…): Eval(”f(x)”) 等价于f(x),等价于Apply(”f”, x))

" e: C. ?$ _4 N2 W8 c你可以这样使用Eval函数:settings = “352, 288″Eval( “BicubicResize(” + settings + “)” )

3 l( M

4 g! w0 A9 y* zImport (filename): 另一个Avisynth脚本的内容值(输入另一个脚本的文本)

B6 Z! ^/ S6 [+ q# f E+ ]1 l! u为了获得错误报告或者捕获用户定义函数的错误输入,你可以这样使用: # s: }! v6 H) D5 H* A. r

Assert (bool, string error-message) ' W8 w, X3 B4 y6 x

Try … Catch 是一个检测是否会发生错误的函数:

' N; W* T3 P3 m( }+ |Try { AviSource(”file.avi”)}Catch(e rr_msg)

{ Blackness.Subtitle(err_msg)}

* ^2 E0 A0 N2 E4 d& M% C) x3.2 运行函数6 j; P: H* n' J

现在已经有“条件滤镜”可以在帧处理的时候计算脚本,这样你就可以基于帧来更改变量。用于计算脚本内容并且给出返回值的运行函数对我们更有用处。v2.5 " F7 B: U9 R3 m* a2 z1 s, l

下面是一个简单的例子,用来计算每一帧的平均亮度并且显示。Version() #- k, `1 n+ |) i7 |

产生测试剪辑ConvertToYV12 # 使用YV12FadeIn(10) #* v* o6 o2 q/ \2 l

产生亮度变量以便我们能看到发生了什么ScriptClip(”Subtitle(String(AverageLuma())) “) #

3 Q' Q7 Z* O* R9 @计算每一帧的亮度值#将平均亮度输出转换成字符串并且显示在输出剪辑上ConvertToRgb # 以RGB形式显示

& U4 w$ a3 S# K3.3 控制函数

8 N. H) h. I0 f1 G2 Z% `SetMemoryMax(int): 设置AviSynth 使用的最大内存(以 MB为单位) v2 。在有些版本里,默认设置为5MB,这是很低的。如果你遇到了什么问题(例如,运行速度慢)试着将这个值设置成至少32MB. SetWorkingDir(string): 设置Avisynth的默认路径. v2 为了便于导入源剪辑,这是很基本的用法。这不会影响插件的自动导入。如果成功则返回0,否则返回-1。

. r8 I# U# g# @7 Z1 p9 a3.4 剪辑属性

9 i! ?! f$ Y5 O5 S, }这些函数以剪辑作为输入,以剪辑的属性作为返回值。 , M: k4 {& b: `7 ^7 r* S4 K W

Width(clip)

- K/ V8 G: k& b6 ]Height(clip)

3 h) F! o2 c0 p. _Framecount(clip) # f) O! j6 I2 l

Framerate(clip) 3 j0 L; I, D+ ?; ^8 Q

Audiorate(clip)

$ F7 j% S! f6 {5 [ zAudiolength(clip)

! m. [8 k1 w$ {- YAudiochannels(clip)

* K& L) |6 Q `4 r w$ U* Y) ^2 iAudiobits(clip)

+ K5 g2 x/ g" s# fIsRGB(clip) y' y; R6 [0 P% j

IsRGB24(clip) v2.07

% ~ w' n# ^. O0 G/ P CIsRGB32(clip) v2.07

0 e/ l! e6 H- KIsYUY2(clip) 1 v/ w9 A0 q) t2 Z0 G0 D8 {5 i5 B7 m

IsYV12(clip) v2.51 / w; o0 K; Z3 A

IsPlanar(clip) v2.51 - C) E1 `( C& `

IsInterleaved(clip) v2.51

n# e/ C0 U. I- t/ Y1 l BIsRGB24(clip)(clip) 4 \& [- {9 J Y* F+ j' t IsRGB32(clip)(clip) 5 U/ S- O( a, A2 R) t

IsFieldBased(clip)

F1 j+ _9 S* J8 k# z# O/ Q. O6 z) eIsFrameBased(clip)

$ [& i* U) _; H6 ]1 b; tGetParity(clip)

# ]4 s$ a2 u& T7 p8 n0 P, t2 M别忘了:你可以将这个属性用于隐含变量LAST 或者是面向对象的声明BilinearResize(Width/2, Height/2) 1 e( e* b8 G# D,

v; C7 j

等价于BilinearResize(Width(Last)/2, Height(Last)/2) 4 v! ^* X& v; i G- t* w6 @/ \

等价于BilinearResize(Last.Width / 2, Last.Height / 2)# Q6 z6 _6 G+ g( u 3.5 用户定义函数0 [8 q) P- G* c# j1 t# u

你可以定义自己的函数,下面的例子做了很好的解释:# ^, t* K9 ^1 Y' l3 e7 c

Function

" N2 M' k0 p4 C7 M- D9 YNTSC2PAL( clip c) { Assert(c.height == 480, “NTSC2PAL: inp ut

{' A* G+ }6 b6 s* iclip must have 480 scan lines”) Bob(c, height=576) return

' V4 B, ?3 u8 s, ZWeave()}

7 e: a; @$ u$ G* ?- S- J) d, _& g% G甚至可以定义递归函数:4 W7 o4 c+ C" H0 C! G

function TRANSITION(clip clip, int

( e% C8 a7 I/ Q3 L) Mstart, int expo, int overlap){ return ( start

& ^" B5 S7 @& O) z>= clip.framecount-expo ? Trim(clip,start,0) :

8 l' {& Q! r# K$ v m- IDissolve(Trim(clip,start,start+expo-1), . N7 D/ O0 R$ } ]# ~

TRANSITION(clip,start+expo,expo,overlap), overlap0 w) x9 A$ w4 a" l# \* u0 w* c% f

)}

% |. T- |( E" k" }9 k9 w/ D带有一个以上输入剪辑的函数

; B' g# r6 L4 z P- M# k# c& O有一些函数可以将两个或者两个以上的剪辑按照不同的方式组合起来。每个函数描述了视频内容经过了怎样的计算,但是这里给出的是最终剪辑应该有的一些基本属性。3 \5 i. r: Q8 @+ P3 \

输入剪辑总是具有相同的颜色格式和——除了Layer之外——相同的尺寸。8 S* j/ @4 S/ A( N! i) x- i: o! J! p

帧速率帧数音频内容音频采样速率

/ X- j' Y- ?$ |* r7 I5 gAlignedSplice,1 ~( s2 I* \1 V1 V UnalignedSplice 第一个剪辑所有剪辑的总和

+ |1 ^" k7 R) X7 f' M参考滤镜说明第一个剪辑5 X' P) M3 H. H$ ~6 T Dissolve 所有剪辑的和减去重叠数参考滤镜说明 ; s5 d7 |- L, v' A- [ MergeLuma,

# w; V# t! V+ X5 `! o+ d3 V- YMergeChroma 第一个剪辑

d! {4 o. I9 X' ?6 Q0 A& H短一点的剪辑的最后一帧将一直重复到这个剪辑的结尾第一个剪辑 ! j8 e: e( o+ m

Layer

/ l1 n+ ~( ^; X5 SSubtract 长一点的剪辑

: @" I7 P+ p9 L4 Z0 @0 n' g& E8 o$ nStackHorizontal,

' Y) d% x8 K4 W- h. P; ZStackVertical

0 K, n- B- r# R: mInterleave

' {% r% P- I R; ?(第一帧的帧速率)X (剪辑数) 2 X 长剪辑的帧数

. E6 }9 O# L, ]* P" p) ~正如你所看见的,函数并不是完全平衡的,而是受到了第一个剪辑的属性的影响。& {6 S4 a0 f |( G" x

4 插件

# ~( X) Z i# K8 a# t, u/ O7 n使用下面这些函数,你可以向AviSynth中加入外部函数。0 m) v* N5 ~) x% L

同名函数调用的顺序为:V2

- s$ t) S5 L& `1.来自外部插件的函数

# n5 ?3 p. y; _- Z: f2.用户自定义的函数

. B3 e* k/ A4 ^# I3.内置函数

4 C2 X+ C2 @2 P# B2 Z6 fLoadPlugin (”filename”[,…]) :调用一个或多个avisynth 的外部插件(DLLs). 7 h* E; y% j, Y

LoadVirtualDubPlugin (”filename”,”filtername”, preroll)

b4 ]. E0 s# ]+ c1 s% B这是调用一个用于VirtualDub的插件. “filename”是.vdf 文件的文件名.

3 f; @$ ]$ W7 ^0 u调用这个函数后,这个滤镜在avisynth中就被命名为”filtername”。 VirtualDub, A* `) ^' V3 ~1 u( S

滤镜只支持RGB32。如果视频是RGB24格式的,就必须使用ConvertToRGB32函数进行转换 (ConvertToRGB函数不行)。有一些滤镜的输出依赖于前面的帧内容,此时,preroll应该设成至少是滤镜能够填充完他的缓存和/或能够升级完它的内部变量所需要预处理的帧数。

& K+ a$ `5 V0 g/ q- s7 j5 O5 B% ULoadVFAPIPlugin (”filename”,”filtername”) :允许使用VFAPI插件(TMPGEnc 输入插件)。% C/ r# Z$ w9 l" u. p# a& w

Process Monitor 中文帮助文档

Process Monitor 帮助文档 【介绍】 Process Monitor(进程监视器)是一个Windows下的高级监视工具,可以实时显示文件系统、注册表和进程/线程的活动。它将Sysinternals以前的两个实用程序Filemon(文件监视器)和Regmon(注册表监视器)结合在一起,并且添加了大量的改进功能,包括丰富的非破坏性的过滤器,全面的事件属性——如会话ID和用户名,可靠的进程信息,对每个操作带有集成的调试符号支持的完整线程堆栈,同步记录日志文件等等。Process Monitor独特的强大功能将使它成为你在系统故障排除和恶意软件查杀中使用的核心实用程序。 Process Monitor可以在Windows 2000 SP4 with Update Rollup 1、Windows XP SP2、Windows Server 2003 SP1、Windows Vista,以及64位版本的Windows XP、Windows Server 2003 SP1和Windows Vista等系统上运行。(译者注:Process Monitor不支持Windows 98、Windows NT等以前的系统,不过可以使用Filemon和Regmon来实现它的部分功能。) 【在Filemon和Regmon基础上的改进】 Process Monitor的用户界面和选项与Filemon和Regmon很相似,但它是从头全部重写的,并且包括许多重大改进,例如: (此处引用自wbpluto的汉化版说明) ? 监视进程和线程的启动和退出,包括退出状态代码 ? 监视映像(DLL 和内核模式驱动程序) 加载 ? 捕获更多输入输出参数操作 ? 非破坏性的过滤器允许你自行定义而不会丢失任何捕获的数据 ? 捕获每一个线程操作的堆栈,使得可以在许多情况下识别一个操作的根源 ? 可靠捕获进程详细信息,包括映像路径、命令行、完整性、用户和会话ID等等 ? 完全可以自定义任何事件的属性列 ? 过滤器可以设置为任何数据条件,包括未在当前视图中显示的 ? 高级的日志机制,可记录上千万的事件,数GB的日志数据 ? 进程树工具显示所有进程的关系

ABAQUS帮助范例中文索引

帮助文档ABAQUS Example Problems Menual 1.静态应力/位移分析 1.1.静态与准静态应力分析 1.1.1.螺栓结合型管法兰连接的轴对称分析 1.1. 2.薄壁机械肘在平面弯曲与内部压力下的弹塑性失效 1.1.3.线弹性管线在平面弯曲下的参数研究 1.1.4.橡胶海绵在圆形凸模下的变形分析 1.1.5.混泥土板的失效 1.1.6.有接缝的石坡稳定性研究 1.1.7.锯齿状梁在循环载荷下的响应 1.1.8.静水力学流体单元:空气弹簧模型 1.1.9.管连接中的壳-固体子模型与壳-固体耦合的建立 1.1.10.无应力单元的再激活 1.1.11.黏弹性轴衬的动载响应 1.1.1 2.厚板的凹入响应 1.1.13.叠层复合板的损害和失效 1.1.14.汽车密封套分析 1.1.15.通风道接缝密封的压力渗透分析 1.1.16.震动缓冲器的橡胶/海绵成分的自接触分析 1.1.17.橡胶垫圈的橡胶/海绵成分的自接触分析 1.1.18.堆叠金属片装配中的子模型分析 1.1.19.螺纹连接的轴对称分析 1.1.20.周期热-机械载荷下的汽缸盖的直接循环分析 1.1.21.材料(沙产品)在油井中的侵蚀分析 1.1.2 2.压力容器盖的子模型应力分析 1.1.23.模拟游艇船体中复合涂覆层的应用 1.2.屈曲与失效分析 1.2.1.圆拱的完全弯曲分析 1.2.2. 层压复合壳中带圆孔圆柱形面的屈曲分析 1.2.3.点焊圆柱的屈曲分析 1.2.4. K型结构的弹塑性分析 1.2.5. 不稳定问题:压缩载荷下的加强板分析 1.2.6.缺陷敏感柱型壳的屈曲分析 1.3. 成形分析 1.3.1. 圆柱形坯料墩粗:利用网格对网格方案配置与自适应网格 的准静态分析 1.3. 2. 矩形方盒的超塑性成型 1.3.3. 球形凸模的薄板拉伸 1.3.4. 圆柱杯的深拉伸 1.3.5. 考虑摩擦热产生的圆柱形棒材的挤压成形分析 1.3.6. 厚板轧制成形分析 1.3.7. 圆柱杯的轴对称成形分析 1.3.8. 杯/槽成形分析 1.3.9. 正弦曲线形凹模锻造

Revolve产品知识

产品名称BOSE SoundLink Revolve 产地墨西哥颜色灰/银 产品尺寸/重量 152×82×82mm/660g 续航时间 12小时 充电时间4小时 供电方式锂电池 音频接口 3.5mm/ USB接口(只限电脑音源)单元尺寸3英寸 NFC功能是 防水级别IPX4防水 通话功能是 语音提示是 APP 是 保修期一年(注册微信会员赠送延保6个月) 包装清单音箱本机x1 USB电源x1USB连接线 x1 交流电源适配器 x1 技术特点1360度全向发声:一个向下发声的全音域单元配合BOSE专利的声波导向技术,可以向四周发出均匀,无死角的声音 技术特点2独特优势:体积小巧 低音震撼 技术特点3优雅的设计:采用高品质阳极氧化铝金属材质配合全新的无缝连接一体成型工艺,是产品更为高雅,耐用 技术特点4蓝牙无线连接:方便,易用,可连接几乎是所有常规的智能手机,平板电脑的蓝牙设 备,可支持与蓝牙设备10米距离的无线连接。技术特点5内置锂电池:更好的便携性,4小时充满电可在正常音量下约12小时的使用时间。 技术特点6IPX4级防水:可以使您在室外环境中放心使用。技术特点7BOSE Connect APP :轻松实现“派对模式”与“立体声模式”的切换,可以满足您更多声音需求。技术特点8支持有线连接:3.5mm与USB接口可以满足你有线音源的连接,连接更多的设备。 技术特点9可选配充电底座:充电方便,同时为扬声器在家中使用时提供了一个放置的地方。 技术特点10 远程操作:可通过配对的蓝牙设备控制扬声器的各项功能(如音量等)不需要携带其他产品说明

音效表现 Feature令人惊艳的宏亮气势,超乎想象的小巧体积。Benefit体积小巧 低音震撼 Advantage 精巧的外壳下装载了众多技术,展现出扬声器超乎想象的的低音效能,让人深深的沉醉在饱满的动人音色中。 Evidence X先生经常会带着家中的小朋友到户外和同事们野餐,因为有小孩子每次外出都需要随身带很多东西。聚会时大家喜欢拿出手机播放孩子们喜欢的音乐增加气氛,偶尔路过门店体验到我们的产品,十分满意。不仅可以满足了他外出携带需要,还提供了完美的音质 360°音效 Feature 可以向四周发出均匀的,无死角的声音。实现零死角的环绕音效。 Benefit随意摆放,一样可以体验到全方位的声音。 Advantage 一个向下发声的全音域单元配合BOSE专利的声波导向器,营造出全方位,无死角的震撼 Evidence X女士三口之家,每天晚上喜欢在客厅给孩子放放音乐,孩子太小总是跑来跑去,之前的音响固定的放在一个位置声音太大影响邻居,声音太小孩子跑来跑去还听不见。选择了我们产品后放在家里中间的位置不管孩子 精致设计 Feature 一体成型的采用高品质阳极氧化铝金属材质配合全新的无缝连接一体成型工艺。 Benefit使产品更为高雅,耐用。 Advantage 精密的设计,一体成型的阳极氧化铝材质,可以提供全方位的音效,不留一丝缝隙,外 Evidence X小姐喜欢游泳,喜欢做SPA ,喜欢泡温泉,更喜欢听音乐。自从购买了产品,她可以随意带着音响到她喜欢的地方,再也没有任何的顾虑。无论什么环境,我们的产品都可以

java中文帮助文档

所有类 chm格式可加Q 1281110301索要AbstractAction AbstractBorder AbstractButton AbstractCellEditor AbstractCollection AbstractColorChooserPanel AbstractDocument AbstractDocument.AttributeContext AbstractDocument.Content AbstractDocument.ElementEdit AbstractExecutorService AbstractInterruptibleChannel AbstractLayoutCache AbstractLayoutCache.NodeDimensions AbstractList AbstractListModel AbstractMap AbstractMethodError AbstractPreferences AbstractQueue AbstractQueuedSynchronizer AbstractSelectableChannel AbstractSelectionKey AbstractSelector AbstractSequentialList AbstractSet AbstractSpinnerModel AbstractTableModel AbstractUndoableEdit AbstractWriter AccessControlContext AccessControlException AccessController AccessException Accessible AccessibleAction AccessibleAttributeSequence AccessibleBundle AccessibleComponent AccessibleContext AccessibleEditableText AccessibleExtendedComponent

abaqus帮助文档中轮胎的例子

外胎是由胎体、缓冲层(或称带束层)、胎面、胎侧和胎圈组成 1、Bead:胎唇部; 2、sidewall:胎侧; 3、tread:胎面;4belt:缓冲层;5、carcass:胎体帘布层。 3.1.8 Treadwear simulation using adaptive meshing in ABAQUS/Standard 3.1.8使用自适应网格在Abaqus/Standard中进行轮胎磨损仿真分析 软件:Abaqus/Standard 这个例子在Abaqus/Standard中使用自适应网格技术对稳态滚动的轮胎进行建模。这次分析使用类似“Steady-state rolling analysis of a tire”Section 3.1.2来建立稳态滚动轮胎的接地印迹和状态。接着,进行稳态传输分析来计算和推测持续分析步,在稳态过程中产生一个近似瞬态磨损解。 问题描述和建模 轮胎描述和有限元建模和“Import of asteady-state rolling tire,”Section 3.1.6一样,但是有一些不一样,在这里需要指出。由于这次分析的中心是轮胎磨损,所以胎面建模需要更加精细。另外台面使用线性弹性材料模型来避免超弹性材料在网格自适应过程中不收敛。 图1所示的是轴对称175SR14轮胎的一半模型。橡胶层用CGAX4和 CGAX3单元建模。加强层使用带有rebar层的SFMGAX1单元模拟。橡胶层和加强层之间潜入单元约束。橡胶层的弹性模量为6Mpa,泊松比为0.49。剩下的轮胎部分用超弹性材料模型模拟。多应变能使用系数C10=10^6,C01=0和D1=2*10^8。用来模拟骨架纤维的刚性层和径向成0°,弹性模量为9.87Gpa。压缩系数设置成受拉系数的百分之一。名义应力应变数据用马洛超弹性模型定义材料本构关系。Belt fibers材料的拉伸弹性模量为172.2Gpa。压缩系数设置成拉伸系数的的百分之一。Belt的纤维走向在轴向±20°内。 旋转前面的轴对称一半模型可得到局部三位模型,如图2所示。我们关注轮胎印迹区域的网格。将局部模型镜像后可得到完整的三维模型。 自适应网格在轮胎磨损计算中的局限性 在这个例子中使用自适应网格必须严格遵守以下条件: 1、圆柱网格不支持自适应网格并且在本例子也没有使用 2、由于梯度状态变量的变形错误严重,自适应网格使用超弹性材料时表现很差。因此胎面用弹性材料定义 3、在自适应网格的范围内不能用包含刚性层的嵌入网格。 4、自适应网格通过网格几何特征来决定自适应网格在自由面光滑的方向,网格几何的特征通常不容易和描述的磨损方向一致。因此,下面将讨论到,通常你需要做额外的工作来明确地描述磨损的方向。 加载

python-ctypes模块中文帮助文档

内容: .加载动态链接库 .从已加载的dll中引用函数 .调用函数1 .基本的数据类型 .调用函数2 .用自己的数据类型调用函数 .确认需要的参数类型(函数原型) .返回值 .传递指针 .结构和联合 .结构或联合的对齐方式和字节的顺序 .结构和联合中的位 .数组 .指针 .类型转换 .未完成的类型 .回调函数 .访问dlls导出的值 .可变长度的数据类型 .bugs 将要做的和没有做的事情 注意:本文中的代码例子使用doctest确保他们能够实际工作。一些代码例子在linux和windows以及苹果机上执行有一定的差别 注意:一些代码引用了ctypes的c_int类型。它是c_long在32位机子上的别名,你不应该变得迷惑,如果你期望 的是c_int类型,实事上打印的是c_long,它们实事上是相同的类型。 加载动态链接库 ctypes加载动态链接库,导出cdll和在windows上同样也导出windll和oledll对象。 加载动态链接库后,你可以像使用对象的属性一样使用它们。cdll加载使用标准的cdecl调用约定的链接库, 而windll库使用stdcall调用约定,oledll也使用stdcall调用约定,同时确保函数返回一个windows HRESULT错误代码。这错误 代码自动的升为WindowsError Python exceptions,当这些函数调用失败时。 这有一些windows例子,msvcrt是微软的c标准库,包含大部分的标准c函数,同时使用cdecl调用约定。 注:cdecl和stdcall的区别请见https://www.doczj.com/doc/de495853.html,/log-20.html >>> from ctypes import * >>> print windll.kernel32 # doctest: +WINDOWS

spring-3.1.0中文版api帮助文档

Spring 3.x权威开发指南:实施Java EE 6 的利器 2011年8月31日

目录 序 ............................................................................................................................................VIII 前言 ........................................................................................................................................... X 1借助Spring 3.1实施Java EE 6 . (1) 1.1Java EE 6编程模型讨论 (1) 1.1.1Java EE 6够敏捷,No! (1) 1.1.2盘旋于具体与抽象之间 (2) 1.2挖掘Spring 3.1的架构价值 (3) 1.2.1精耕细作于Java EE 6平台 (3) 1.2.2面向Spring的SpringSource Tool Suite集成开发工具 (3) 1.2.3全面拥抱OSGi 4.2 (4) 1.2.4开发者决定一切 (4) 1.3下载及构建Spring 3.1 (5) 1.3.1下载Spring 3.1正式发布版 (5) 1.3.2基于SVN库持续构建Spring源码 (6) 1.4小结 (7) 2控制反转容器 (8) 2.1DI及Spring DI概述 (8) 2.1.1面向Java ME/Java SE的BeanFactory (8) 2.1.2面向Java EE的ApplicationContext (9) 2.2多种依赖注入方式 (9) 2.2.1设值注入 (9) 2.2.2构建器注入 (11) 2.2.3属性注入 (12) 2.2.4方法注入 (12) 2.3借助Autowiring策略智能注入协作者 (13)

CAD和TSSD快捷键(含探索者中文键名)

AutoCAD 简化命令 3A, *3DARRAY 3DO, *3DORBIT 3F, *3DFACE 3P, *3DPOLY A, *ARRAY ,阵列ADC, *ADCENTER AD, *ID AE, *AREA AL, *ALIGN AP, *APERTURE ATP, *ATTDISP AT, *DDATTE -AT, *ATTEDIT ATT, *DDATTDEF -ATT, *ATTDEF AV, *DSVIEWER B, *BREAK H, *BHATCH BL, *BMAKE -BL, *BLOCK BO, *BOUNDARY -BO, *-BOUNDARY CO, *COPY CC, *CHAMFER CH, *DDCHPROP -CH, *CHANGE DDC, *DDCOLOR C, *CIRCLE D, *DIM DD, *DDEDIT DDV, *DDVPOINT DI, *DIST DIV, *DIVIDE DO, *DONUT DST, *DIMSTYLE DT, *DTEXT DV, *DVIEW DX, *DDIM DXI, *DXFIN DXO, *DXFOUT E, *ERASE EL, *ELEV ELL, *ELLIPSE EN, *END EP, *EXPLODE EX, *EXTEND F, *FILLET FF, *FILL FI, *FILTER G, *GROUP GR, *DDGRIPS -GR, *GRID HI, *HIDE HE, *HATCHEDIT HT, *HATCH I, *DDINSERT -I, *INSERT IM, *IMAGE -IM, *-IMAGE L, *LINE LA, *LAYER -LA, *-LAYER LE, *LEADER LEN, *LENGTHEN LI, *LIST LS, *LTSCALE LT, *LINETYPE -LT, *-LINETYPE LTS, *LTSCALE M, *MOVE MA, *MATCHPROP ME, *MEASURE MI, *MIRROR ML, *MLINE MO, *DDMODIFY MN, *MENU MS, *MSPACE MT, *MTEXT -MT, *-MTEXT MV, *MVIEW N, *NEW O, *OFFSET OP, *OPEN OS, *OSNAP

ABAQUS2016版安装步骤.pdf

64位Abaqus2016 Win7安装教程 (一颗星星亲测安装)(关闭防火墙)(关闭杀毒软件)Abaqus2016安装共分为三部分,即License、Solver、CAE,这三部分依次安装。安装文件夹下的内容如下图所示。1位License,2为Solver安装部分,3位CAE安装部分。安装前需要将IE浏览器升级至IE10或IE11,我升级至IE10。 1.License安装 1.在_SolidSQUAD_文件夹下,将所有的文件复制到您要安装的文件夹下,如我的安装文件夹为C:\Simulation Software\ABAQUS 2016\License。 2.复制完成后,打开ABAQUS.lin文件,以记事本格式,如下图,将this_host改为您的计算机名,切记其余的不要改动。

3.右键点击server_install.bat,以管理员身份打开。(只需打开以下即可)。 4.右键点击Imtools.exe,出现下图。 5. 点击Config Serverce,出现下图,选在第1步中复制后的文件,此处和Abaqus 以前的版本一致。 6.点击Start/Stop/Reread,再点击Start Server。

7.至此License安装完成。环境变量不需设置。 2. Solver安装 1. 首先安装3DEXPERIENCE_AbaqusSolver,打开此文件夹,以管理员身份运行Steup.exe。 2.点击下一步。 3.选择安装目录,并下一步。

4.点击下一步。 5.点击安装。 6.安装过程中

7.显示安装完成。 8. 安装CAA_3DEXPERIENCE_AbaqusSolver,打开此文件夹,以管理员身份运行Steup.exe。 9.

总结的Javadoc转换chm帮助文档的四种方法

https://www.doczj.com/doc/de495853.html,/blog/1051688 李顺利 [2010年1月6日] 关键词 Javadoc chm 转换 jd2chm javadoc2chm javadoc2help Javadoc2chm 中文乱码李顺利 前言 朋友,当您在一个项目完成后,是不是需要把你的源码打包并且把注释打成Javadoc交给客户,Eclipse或者MyEclipse自动打成的Javadoc文档都是基于网页格式的,打开是很方便,不过真的用的时候,搜索每个方法或者什么的就很麻烦了,而chm帮助文档格式不但文件小,查阅都很方便,所以网上就出现了很多把Javadoc转换为chm格式的帮助文档的软件/工具或者方法。 自己最近需要真的需要这个方面的需求,查阅了网上很多方法,发现很多都是写的很不详细,对于我这种刚接触的很是不清楚,经过我的学习和理解,现提供从网上总结的Javadoc转换chm帮助文档的四种方法,详细提供各个转换的步骤供大家学习,并且提供英文版本和中文版本Javadoc转换过程中出现的问题,特别是中文的时候出现的乱码现象,也提供一些解决方案。 预处理 转换之前需要了解的是chm是微软公司发布的一种帮助文档格式,所有,要使用下面的方法转换,请先安装HTML Help Workshop(后面简称为HHW)(实际上后面的一些处理有些都是在上面操作的) https://www.doczj.com/doc/de495853.html,/en-us/library/ms669985.aspx,下载完毕后就是安装了,很简单。 还有一个很重要的问题,就是如何把项目打成Javadoc,这有人应该会说,很简单啊,就是使用Eclipse或者Myeclipse的Export功能,是的,这是可以,但是有些小的方面还是需要我们强烈注意的

ABAQUS关键字(keywords)

ABAQUS帮助里关键字(keywords)翻译 (2013-03-06 10:42:48) 转载▼ 分类:abaqus 转自人人网 总规则 1、关键字必须以*号开头,且关键字前无空格 2、**为注释行,它可以出现在中的任何地方 3、当关键字后带有时,关键词后必须采用逗号隔开 4、参数间都采用逗号隔开 5、关键词可以采用简写的方式,只要程序能识别就可以了 6、不需使用隔行符,如果参数比较多,一行放不下,可以另起一行,只要在上一行的末尾加逗号便可以 ----------------------------------------------------------------------------------------------------------------------------------------- *AMPLITUDE:幅值 这个选项允许任意的载荷、和其它指定的数值在一个分析步中随时间的变化(或者在ABAQUS/Standard分析中随着的变化)。 必需的参数: NAME:幅值曲线的名字 可选参数: DEFINITION:设置definition=Tabular(默认)给出表格形式的幅值-时间(或幅值-频率)定义。设置DEFINITION=EQUALLY SPACED/PERIODIC/MODULATED/DECAY/SMOOTH STEP/SOLUTION DEPENDENT或BUBBLE来定义其他形式的幅值曲线。 INPUT:设置该参数等于替换输入文件名字。 TIME:设置TIME=STEP TIME(默认)则表示分析步时间或频率。TIME=TOTAL TIME表示总时间。 VALUE:设置VALUE=RELATIVE(默认),定义相对幅值。VALUE=ABSOLUTE表示绝对幅值,此时,行中载荷选项内的值将被省略,而且当温度是指定给已定义了温度TEMPERATURE=GRADIENTS(默认)梁上或壳上的,不能使用ABSOLUTE。 对于DEFINITION=TABULAR的可选参数: SMOOTH:设置该参数等于 DEFINITION=TABULAR的数据行 第一行 1、时间或频率 2、第一点的幅值(绝对或相对) 3、时间或频率 4、第二点的幅值(绝对或相对) 等等 基本形式: *Amplitude,name=Amp-1 0.,0.,0.2,1.5,0.4,2.,1.,1.

python-os模块中文帮助文档

注此模块中关于unix中的函数大部分都被略过,翻译主要针对WINDOWS,翻译速度很快,其中很多不足之处请多多包涵。 这个模块提供了一个轻便的方法使用要依赖操作系统的功能。如何你只是想读或写文件,请使用open() ,如果你想操作文件路径,请使用os.path模块,如果你想在命令行中,读入所有文件的所有行,请使用 fileinput模块。使用tempfile模块创建临时文件和文件夹,更高级的文件和文件夹处理,请使用shutil模块。 os.error 内建OSError exception的别名。 https://www.doczj.com/doc/de495853.html, 导入依赖操作系统模块的名字。下面是目前被注册的名字:'posix', 'nt', 'mac', 'os2', 'ce', 'java', 'riscos'. 下面的function和data项是和当前的进程和用户有关 os.environ 一个mapping对象表示环境。例如,environ['HOME'] ,表示的你自己home文件夹的路径(某些平台支持,windows不支持) ,它与C中的getenv("HOME")一致。 这个mapping对象在os模块第一次导入时被创建,一般在python启动时,作为site.py处理过程的一部分。在这一次之后改变environment不 影响os.environ,除非直接修改os.environ. 注:putenv()不会直接改变os.environ,所以最好是修改os.environ 注:在一些平台上,包括FreeBSD和Mac OS X,修改environ会导致内存泄露。参考putenv()的系统文档。 如果没有提供putenv(),mapping的修改版本传递给合适的创建过程函数,将导致子过程使用一个修改的environment。 如果这个平台支持unsetenv()函数,你可以删除mapping中的项目。当从os.environ使用pop()或clear()删除一个项目时,unsetenv()会自动被调用(版本2.6)。 os.chdir(path) os.fchdir(fd) os.getcwd() 这些函数在Files和Directories中。

Cinema 4D 汉化帮助文档PDF.pdf

Cinema 4D 汉化帮助文档聚众翻译v2015.09.06 【前言】 这只是一个提议,希望有更多朋友的加入,目的没打算是把这玩意全部汉化完成,其中的困难非一小撮人可以解决的。只想能发动很多的朋友来共同学习,古语有云“眼过千遍不如手过一遍”。 其次,也是因为国内盗版盛行,官方是不会做中文帮助文档。倡议大伙多多支持正版软件以求获得官方中文帮助文档的发布 很早以前R13版本时,CG天下(论坛)曾发动过付费的帮助文档的汉化,最终任务艰巨而放弃(猜的)。我在想象,如果这一次的倡议,参与翻译的同学名字能在这个页面写上一千多位,那么真就是全民汉化的奇迹了,目前也就“呵呵”而已吧。做过总比想了不错的好,不怕失败就怕放弃。 话说回来,校对同学是很重要的,需要对C4D软件很了解,校正其中命令菜单的翻译。然后是翻译,还有不可缺少的编辑同学,翻译完成,需要填写进html文档中。估计会有很多同学不会编辑html,当然,若自己能编辑最好了,你可以独立发布,也可以整理在我发布的这个版本中。 支持的同学再多,也敌不过你的加入。 其中菜单命令的翻译,都是在软件中切换中英文来查找的官方中文命令。希望刚开始能有个严谨的态度吧。虽然我也不会英文,也是通过各种汉化工具来做的,每学习一两条,从此进步速速哒,哈哈。 【汉化方法】 方法有多中,首先打开软件安装目录。可以在桌面图标上右键→打开文件所在的位置。或者在这个目录下“X:\Program Files\MAXON\CINEMA 4D R17\help\US\html 全部都是html文件,三千多个。Ctrl+a 全选,右键→属性 取消“只读”的勾选,这样才能编辑文档。 一、使用 notepad++ 软件修改。全部代码编辑,适合码农,编辑性能卓越,操作指数困难。从C4D中打开帮助面板,选择一个你想翻译的页面。右键→属性 地址栏中“5425.html”便是文件名称。 然后在帮助文档的文件夹中“X:\Program Files\MAXON\CINEMA 4D R17\help\US\html”搜索“5425.html”使用notepad++软件打开。

中文帮助文件精选

英文版对应中文目录(2009) 3 执行概况 3 科研与开发 3 市场营销 4 生产 4 财务 5 公司的成功 5 传感器工业 5 传感器的顾客 5 各群体的购买标准 6 定位 7 价格, 年龄, 和可靠性 7 各群体的标准 8 Foundation?快讯 8 首页, 股票和债券总结, 财务报表和生产分析 8 群体分析 9 可达性、市场占有率和产品排行榜 10 市场份额报告和直观图 10 人力资源 / 全面质量管理报告 11 预计报告和年度报告11 资产负债表 11 现金流量表 11 收益表 12 购买决策 12 粗略删减 12 粗删阶段的定位 12 粗删阶段的价格 12 粗删阶段的可靠性 13 精细筛选 13 精选阶段的定位 13 精选阶段的价格 13 精选阶段的可靠性 14 年龄 14 市场因素 14 知名度 14 获得产品难易度 14 卖方市场 15 市场规模与发展 15 以销售量计算的市场规模 15 生产 15 科研与开发 16 改变速度, 尺寸和可靠性 16 开发新产品 16 项目管理 17 产品的年龄 18 市场营销 18 产品定价 18 宣传和销售预算 19 销售预测 20 生产 20 生产力 21 改变自动化程度 21 财务 21 短期债务 22 债券 23 股票 23 紧急贷款 23 信用政策 24 附加模块 24 人力资源 25 全面质量管理 25 形式分析 25 直观图 26 客户需求中心和需求的改变 26 理想点 27 工业需求分析 28 生产能力分析 29 边际分析 30 边际潜力 31 消费者调查报告 32 预测 32 基本预测方法 32 定性分析 33 年底顾客调查报告 33 预测, 预计报告和年底的现金状况 33 最坏情况 / 最好情况 34 六大基本策略34 以产品寿命周期为中心的成本领袖 策略 34 以产品寿命周 期为中心的区别策略 35 全面成本领袖策略 35 全面区别策略 35 壁龛成本领袖策略(低技术) 35 壁龛区别策略(高技术) 36 平衡计分卡36 对你公司的指导 37 索引

ABAQUS帮助文档

初始损伤对应于材料开始退化,当应力或应变满足于定义的初始临界损伤准则,则此时退化开始。Abaqus 的Damage for traction separation laws 中包括:Quade Damage、Maxe Damage、Quads Damage、Maxs Damage、Maxpe Damage、Maxps Damage 六种初始损伤准则,其中前四种用于一般复合材料分层模拟,后两种主要是在扩展有限元法模拟不连续体(比如crack 问题)问题时使用。前四种对应于界面单元的含义如下:Maxe Damage 最大名义应变准则:Maxs Damage 最大名义应力准则:Quads Damage 二次名义应变准则:Quade Damage 二次名义应力准则 最大主应力和最大主应变没有特定的联系,不同材料适用不同准则就像强度理论有最大应力理论和最大应变理论一样~ ABAQUS帮助文档10.7.1 Modeling discontinuities as an enriched feature using the extended finite element method 看看里面有没有你想要的 Defining damage evolution based on energy dissipated during the damage process 根据损伤过程中消耗的能量定义损伤演变 You can specify the fracture energy per unit area,, to be dissipated during the damage process directly. 您可以指定每单位面积的断裂能量,在损坏过程中直接消散。Instantaneous failure will occur if is specified as 0. 瞬间失效将发生 However, this choice is not recommended and should be used with care because it causes a sudden drop in the stress at the material point that can lead to dynamic instabilities.

【资料】Airpak中文帮助文档(1.7部分)

Airpak中文帮助文档(1.7部分) 此文翻译来自Airpak帮助文档1.7部分 通过1.7部分,你将使用Airpak 建立一个问题、解决一个问题以及输出结果。这是 对Airpak 特点的基础介绍。 如有疑问可参考Airpak帮助文档的相关部分

1.7 示例 在下面的示例中,你将使用Airpak建立一个问题、解决一个问题以及输出结果。这是对Airpak特点的基础介绍。使用指南中的例子将提供更完整的程序特点。 1.7.1 问题描述 图1.7.1显示的所要解决的问题。房间中包含了一个开放的进风口、一个排气口和一个恒定温度的墙。房间的长是4.57 m,宽是 2.74 m,高是2.74m。房间外测量值是0.92 m ×0.46 m,同时引入一个冷空气射入房间使得空气流动。排气口的尺寸是0.91 m×0.45 m。惯性的力量、浮力的力量以及湍流混合的相互作用对所提供的空气的渗透及路径有着重要的影响。 1.7.2 主要的过程 图1.7.1显示的问题是一个稳定通风的情形。边界温度以及速度是被定义的。示例中的步骤简要如下: z打开和定义一项工作 z调整默认房间大小 z对于一个房间生成一个进风口(opening)、排气口(vent)以及墙 z生成网格 z计算

z检查结果 1.7.3 开始一个新工作 启动Airpak(1.5节)。图1.7.2.显示的是【Open job】面板。 在【Select the job to open】文本显示框中路径的最后将/sample写上。点击【Accept】打开一个新工作。Airpak将生成一个10 m×3 m×10 m默认房间,同时在图形窗口显示房间。 你可以使用鼠标左键围绕一个中心点旋转房间,或者使用鼠标中间键你可以将房间转移到屏幕的任意一点上。使用右键放大或缩小房间。为了将房间回复的默认方位,点击【Options】菜单下【Orient】,在下拉菜单中选择【Home】。 1.7.4 定义工作 通过定义房间的种类和设置环境温度来开始工作。这些参数在【Problem setup】面板中具体指明了。在【File】菜单中选择【Problem】可以打开【Problem setup】面板(如图1.7.3)。

Sapera LT帮助文档 中文版

Sapera帮助文档 简介:Sapera LT 是一套用于图像采集、显示和控制的独立于硬件以外的 C 和C++ 软件库,支持所有DALSA Coreco 硬件平台。它的综合功能集包括程序可移植性、多样化的相机控制、灵活的显示和管理功能,以及易于使用的应用开发向导。Sapera LT 与Microsoft Visual Studio C/C++、.Net、Visual Basic 6.0 和Borland C++ Builder 兼容,支持Windows XP、2000 和NT 平台。 一.Sapera++介绍 Sapera++是Sapera LT为用户提供的API. Sapera++ 包含两大类:基础应用类(Basic Classes)和GUI类(GUI Classes)。 1.基础应用类: 提供了用户进行图像开发的基本函数,命名方式为Sap+类功能名,其结构如下图所示: Sapera Basic Class 函数功能介绍: Data Classes: 功能:下属多个数据类,每一个数据类管理了一种特定数据类型 下属数据类:SapData Class SapDataHSI Class SapDataHSV Class SapDataFloat Class SapDataFPoint Class SapDataFRGB Class SapDataMono Class SapDataPoint Class SapDataRGB Class

SapDataRGBA Class SapDataYUV Class ●SapAcquisition 功能:控制与板卡相连接的采集设备 常用函数:SapAcquisition::SapAcquisition SapAcquisition::Create SapAcquisition::Destroy SapAcquisition::ApplyLut SapAcquisition::GetParameter, SapAcquisition::SetParameter SapAcquisition::GetSignalStatus SapAcquisition::IsSignalStatusAvailable ●SapAcqCallbackInfo 功能:存储SapAcquisition类回调的内容 常用函数:SapAcqCallbackInfo::GetContext SapAcqCallbackInfo::GetSignalStatus ●SapAcqDevice 功能:由设备读、写信息,还可直接发送、寄存事件至设备。常用于直接连接电脑的相机(如GigE相机) 常用函数:SapAcqDevice::SapAcqDevice SapAcqDevice::Create SapAcqDevice::Destroy SapAcqDevice::GetConfigFile, SapAcqDevice::SetConfigFile SapAcqDevice::UpdateFeaturesFromDevice ●SapAcqDeviceCallbackInfo 功能:存储SapAcqDevice类回调的内容 常用函数:SapAcqDeviceCallbackInfo::SapAcqDeviceCallbackInfo SapAcqDeviceCallbackInfo::GetAcqDevice ●SapBayer 功能:Bayer转换操作(分为软件和硬件实现两种) 常用函数:SapBayer::WhiteBalance SapBayer::EnableLut SapBayer::GetAlign, SapBayer::SetAlign SapBayer::GetWBGain, SapBayer::SetWBGain ●SapBuffer 功能:操作buffer资源 常用函数:SapBuffer::SapBuffer SapBuffer::Create SapBuffer::Clear SapBuffer::Destroy SapBuffer::GetParameter, SapBuffer::SetParameter SapBuffer::GetPitch SapBuffer::GetPixelDepth, SapBuffer::SetPixelDepth SapBuffer::GetIndex, SapBuffer::SetIndex

pyevolve中文帮助文档

Pyevolve的用户手册中文版 1.1.6基本概念 Raw score:表示由适应度函数返回的还未进行比例换算的适应值。 Fitness score :对Raw score进行比例换算后的适应值,如果你使用线性的比例换算(Scaling.LinearScaling()),fitness score将会使用线性方法进行换算,fitness score代表个体与种群的相关程度。 Sample genome : 是所有genome进行复制的基础 1.2.3对pyevolve进行扩展 对pyevolve进行扩展首先要查看GenomeBase.GenomeBase类的源码。 扩展的基本步骤 1)创建染色体类 2)创建染色体的初始化函数 3)创建遗传算子:选择算子,交叉算子,和变异算子等。 1.3模块 1.3.2基本模块 a) Consts :常量模块 Pyevolve 提供了所有的默认遗传算子,这是为了帮助用户方便的使用API,在常量模块中,你可以找到这些默认的设置,最好的情况是查看常量模块,但是不改变常量模块中的内容。 b)Util :公用模块 公用模块中提供了一些公用的函数,比如列表项的交换,随机功能等。 list2DSwapElement(lst, indexa, indexb):交换矩阵中的元素项。 listSwapElement(lst, indexa, indexb):交换列表中的元素项。 c)FunctionSlot :函数分片模块 Pyevolve中广泛使用函数分片的概念;这个想法是很简单的,每个遗传操作或者说是任何遗传操作能够被分配到一个片,按照这种想法,我们能够添加不止一种的遗传操作,比如说同时进行两种或者更多的变异操作,或者两种或更多的计算操作等,函数分片模块是以FunctionSlot.FunctionSlot类来实现的。 例子: Def fit_fun(genome): …. Def fit_fun2(genome): …. Genome.evaluator.set(fit_fun) Genome.evaluator.add(fit_fun2) Print Genome.evaluator #the result is “slot [evaluator] (count:2)” Print Genome.evaluator[0] # the result is “function fit_fun at <....>” Print Genome.evaluator[1] # the result is “function fit_fun2 at <...>”

相关主题
文本预览
相关文档 最新文档