set 续1

--------siwuxie095

   

   

   

三、用 set 实现计算

   

语法:

SET /A expression

   

/A 命令行开关指定等号右边的字符串为待计算的数字表达式。

   

该表达式的各种计算符号的优先级如下:

   

符号

注释

优先级

备注

( )

分组

1

  

~ ! -

一元运算符

2

  • 是负号,表负数

* / %

算术运算符

3

% 是求余运算

+ -

算术运算符

4

  

<< >>

二进制逻辑位移

5

输入表达式时,符号要添加双引号

&

二进制按位 "与"

6

输入表达式时,符号要添加双引号

^

二进制按位 "异"

7

输入表达式时,符号要添加双引号

|

二进制按位 "或"

8

输入表达式时,符号要添加双引号

= *= /=

%= += -=

算术赋值

9

输入表达式时,符号要添加双引号

&= ^= |=

<<= >>=

二进制算术赋值

10

输入表达式时,符号要添加双引号

,

表达式分隔符

11

  

   

   

   

set 的 /a 参数就是让 set 可以支持数学符号进行运算。所有需要进行计算的表达式,

都必须添加 /a 开关

   

   

注意:

DOS 计算只能精确到整数,小数采用四舍五入

DOS 计算的有效值范围是-2147483647 至 2147483647,超出无效

DOS 计算精确到32位(二进制),最高位符号位(0 正 1 负)

   

   

   

   

运算符号说明:

( ) 最优先运算

! 逻辑非,除 0 以外的任何数字,取 ! 都等于 0,而 !0 等于 1(在 DOS 里,

字母和符号取非也都等于 1

~ 取反,但批处理的操作都是对数字先加 1 后再取反,如:~1 = -2

- 负号,表示负数。如果两头都有数字,就是减号

+ - * / 数学最基本的加减乘除

% 取余数,这个运算符非常特殊,当使用 set /p a=请输入一个表达式 :

读取用户输入时,在命令行窗口可以使用 m%n 形式的表达式。

如果是在批处理文本里,则要使用 set /a num=m%%n 这种形式,否则

运算无法进行,使用转义字符 ^ 也不行

   

如:

@echo off

set /p var=请输入一个表达式

set /a result=%var%

echo %result%

pause

   

   

运行一览:

   

和:

@echo off

set /a result=10%%3

echo %result%

pause

   

运行一览:

   

   

   

   

以上符号在输入时,正常输入即可,不必加双引号

以下符号,无论是手动输入到命令行窗口的形式,还是批处理文件里

数学表达式的形式,都必须添加双引号,否则计算机无法识别和计算

   

   

<< >> 位运算符号,如: 7">>"1,(或用转义字符^7^>^>1

结果是 3:十进制的 7 用二进制表示为 111,向右移动一位变成 11

再换成十进制就是 3

& 二进制按位与,两个数从个位对齐,上下两个数字都是 1,结果为 1,

否则为 0。如:77"&"21,(或用转义字符 ^77^&21)结果是 577

的二进制表示是 100110121的二进制表示是 10101,按位与后是 101

再换成十进制就是 5

^ 二进制按位异,两个数从个位对齐,上下两个数字相同,结果为 0,两个

数字不同,结果为 1

| 二进制按位或,两个数从个位对齐,上下两个数字只要有一个为 1,结果就

1,否则为 0

= *= /= %= += -= 赋值符号(6个),先运算后赋值,简化表达式,常用于计数器

&= ^= |= <<= >>= 二进制赋值符号(5个),先运算后赋值

, 逗号运算符,分隔不同运算组

如:

@echo off

set /a a=1+1,b=2+1,c=3+1

echo %a% %b% %c%

pause

   

   

   

   

   

   

十六进制有 0x 前缀,八进制有 0 前缀,其余数字值都是十进制。如:0x12=18=022

注意:八进制数字没有 08、09。凡是位计算,计算机都会换算成二进制运算后还原成

十进制显示出来

   

   

   

set /a var=num+1

等号左边是被赋值变量,不可以使用变量符号 %var% !var!,等号右边的

计算式中的 num,使不使用变量符号 %var%!var! 都可以

   

延迟变量的情况下,等号右边的计算式中不使用变量符号 !var!,变量 var 的值

依然是实时动态值。但如果使用变量符号 %var%,得到的就不是动态值了

   

   

测试代码:

@echo off

setlocal enabledelayedexpansion

set var=0

for /l %%i in (1,1,10) do (

set /a var=%%i*2+1

set /a tem1=!var!+2

set /a tem2=var+2

set /a tem3=%var%+2

echo tem1=!tem1! tem2=!tem2! tem3=!tem3!

)

pause

   

sublime中:

   

   

运行一览:

   

   

   

   

   

   

   

建议:对于 set /a 的计算式,最好用双引号引起来,有些表达式会简单一些

如:不用双引号时

@echo off

set /p N=请输入一个数字

set /a num=1^<^<N

echo %num%

pause

   

表达 1<<N 时,就要用到转义符号 ^,否则 < 管道符号的意思就是

从某地方读入数据

   

如果用双引号:

@echo off

set /p N=请输入一个数字

set /a num="1<<N"

echo %num%

pause

   

   

   

有一种情况,set /a 表达式如果含有括号,而 set /a 语句外又有

括号包含着此 set 语句,那么此时的 set /a 表达式里的括号就必

须用转义字符转义,或整个表达式用双引号

   

(原因:批处理太死板,括号一般表达的是分隔效果,但在表达式里

表达的是计算效果,如果不转义,批处理认为括号早早的就括回去,

导致程序出错)

   

如:

@echo off

setlocal enabledelayedexpansion

for /l %%i in (1,1,10) do (

set /a var=^(%%i+1^)*3

echo var=!var!

echo ^(%%i^)

)

pause

   

sublime中:

   

   

运行一览:

   

   

   

使用一个转义字符亦可:

@echo off

setlocal enabledelayedexpansion

for /l %%i in (1,1,10) do (

set /a var=(%%i+1^)*3

echo var=!var!

echo (%%i^)

)

pause

   

sublime中:

   

   

运行一览:

   

   

   

改为使用双引号:

@echo off

setlocal enabledelayedexpansion

for /l %%i in (1,1,10) do (

set /a var="(%%i+1)*3"

echo var=!var!

echo "(%%i)"

)

pause

   

sublime中:

   

   

运行一览:

   

   

   

使用双引号后,echo "(%%i)" 会输出双引号,让人讨厌

   

显然:echo 后面回显的内容有括号,而还有括号包含此 echo 时,

回显的括号也要转义

   

   

   

阶乘程序:

@echo off

set a=1

set /p n=请输入一个数字

if %n%==0 (

rem 0!的感叹号表示阶乘

echo 0!=1 & pause>nul & exit

) else (

if %n% lss 0 (

echo 负数不可以阶乘 & pause>nul & exit

)

)

for /l %%i in (1,1,%n%) do set /a a*=%%i

echo %n%!=%a%

pause>nul

   

sublime中:

   

   

运行一览:

   

   

   

   

   

求 2 的 n 此方:利用位运算 <<,每左移一次,增大一倍,这样效率最高

@echo off

set /p n=请输入 2 的几次方:

set /a num=1^<^<N

echo %num%

pause

   

   

   

   

set 命令显示诗句前面多个空格

显示一首诗时,在每一句前面需要打出很多空格 ,使得整首诗占据

窗口的中间。但一开始对每行空格输入的数量,不一定符合要求,

需要进行增删修改。如果每一行都需要增删空格,操作就非常繁琐。

用 set 就可以简单处理,而且删减空格也很方便。

@echo off

:: k 后面有看不见的空格

set k=

echo %k%水光潋滟晴方好

echo %k%山色空蒙雨亦奇。

echo %k%欲把西湖比西子

echo %k%淡妆浓抹总相宜。

pause>nul

   

sublime中:

   

   

运行一览:

   

   

   

   

【made by siwuxie095】

   

   

   

转载于:https://www.cnblogs.com/siwuxie095/p/6361912.html

Language="VBSCRIPT" Sub CATMain() Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.Part Set hybridBodies1 = part1.HybridBodies Set hybridBody1 = hybridBodies1.Add() part1.Update Set selection1 = partDocument1.Selection Set visPropertySet1 = selection1.VisProperties Set hybridBody2 = hybridBodies1.Item("wwwwwwwwwww") Set hybridBodies1 = hybridBody2.Parent Dim bSTR1 bSTR1 = hybridBody2.Name selection1.Add hybridBody2 Set visPropertySet1 = visPropertySet1.Parent Dim bSTR2 bSTR2 = visPropertySet1.Name Dim bSTR3 bSTR3 = visPropertySet1.Name visPropertySet1.SetShow 1 selection1.Clear Set hybridShapeFactory1 = part1.HybridShapeFactory Set parameters1 = part1.Parameters Set hybridShapeCurveExplicit1 = parameters1.Item("IntCurveHighM_8") Set reference1 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(GSMMonoDim.1;2);None:(Limits1:();Limits2:();+1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", hybridShapeCurveExplicit1) Set hybridShapeExtractMulti1 = hybridShapeFactory1.AddNewExtractMulti(reference1) hybridShapeExtractMulti1.AddConstraintTolerant reference1, 1, False, False, 0.100000, 0.500000, 0.980000, 1 hybridShapeExtractMulti1.SetElement 1, reference1 hybridShapeExtractMulti1.SetPropagationType 1, 1 hybridShapeExtractMulti1.SetComplementaryExtractMulti 1, False hybridShapeExtractMulti1.SetIsFederated 1, False hybridShapeExtractMulti1.SetDistanceThresholdActivity 1, False hybridShapeExtractMulti1.SetAngularThresholdActivity 1, False hybridShapeExtractMulti1.SetCurvatureThresholdActivity 1, False hybridBody1.AppendHybridShape hybridShapeExtractMulti1 part1.InWorkObject = hybridShapeExtractMulti1 part1.Update Set reference2 = part1.CreateReferenceFromObject(hybridShapeCurveExplicit1) Set reference3 = part1.CreateReferenceFromObject(hybridShapeExtractMulti1) Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference2, reference3, 10.000000, False) hybridShapePointOnCurve1.DistanceType = 1 hybridBody1.AppendHybridShape hybridShapePointOnCurve1 part1.InWorkObject = hybridShapePointOnCurve1 part1.Update Set parameters2 = part1.Parameters Set length1 = parameters2.Item("点\Spacing") length1.Value = 10.000000 Set reference4 = part1.CreateReferenceFromObject(hybridShapeCurveExplicit1) Set reference5 = part1.CreateReferenceFromObject(hybridShapePointOnCurve1) Set hybridShapePlaneNormal1 = hybridShapeFactory1.AddNewPlaneNormal(reference4, reference5) hybridBody1.AppendHybridShape hybridShapePlaneNormal1 part1.InWorkObject = hybridShapePlaneNormal1 part1.Update part1.Update Set reference6 = part1.CreateReferenceFromObject(hybridShapeCurveExplicit1) Set reference7 = part1.CreateReferenceFromObject(hybridShapeExtractMulti1) Set hybridShapePointOnCurve2 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference6, reference7, 120.000000, False) hybridShapePointOnCurve2.DistanceType = 1 hybridBody1.AppendHybridShape hybridShapePointOnCurve2 part1.InWorkObject = hybridShapePointOnCurve2 part1.Update Set parameters3 = part1.Parameters Set length2 = parameters3.Item("点\Spacing") length2.Value = 120.000000 Set reference8 = part1.CreateReferenceFromObject(hybridShapeCurveExplicit1) Set reference9 = part1.CreateReferenceFromObject(hybridShapePointOnCurve2) Set hybridShapePlaneNormal2 = hybridShapeFactory1.AddNewPlaneNormal(reference8, reference9) hybridBody1.AppendHybridShape hybridShapePlaneNormal2 part1.InWorkObject = hybridShapePlaneNormal2 part1.Update part1.Update Set reference10 = part1.CreateReferenceFromObject(hybridShapePointOnCurve1) Set reference11 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircleCtrRad1 = hybridShapeFactory1.AddNewCircleCtrRad(reference10, reference11, False, 10.000000) hybridShapeCircleCtrRad1.DiameterMode = True hybridShapeCircleCtrRad1.SetLimitation 1 hybridBody1.AppendHybridShape hybridShapeCircleCtrRad1 part1.InWorkObject = hybridShapeCircleCtrRad1 part1.Update Set reference12 = part1.CreateReferenceFromObject(hybridShapePointOnCurve2) Set reference13 = part1.CreateReferenceFromObject(hybridShapePlaneNormal2) Set hybridShapeCircleCtrRad2 = hybridShapeFactory1.AddNewCircleCtrRad(reference12, reference13, False, 10.000000) hybridShapeCircleCtrRad2.DiameterMode = True hybridShapeCircleCtrRad2.SetLimitation 1 hybridBody1.AppendHybridShape hybridShapeCircleCtrRad2 part1.InWorkObject = hybridShapeCircleCtrRad2 part1.Update Set reference14 = part1.CreateReferenceFromObject(hybridShapePointOnCurve1) Set reference15 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircleCtrRad3 = hybridShapeFactory1.AddNewCircleCtrRad(reference14, reference15, False, 4.000000) hybridShapeCircleCtrRad3.DiameterMode = True hybridShapeCircleCtrRad3.SetLimitation 1 hybridBody1.AppendHybridShape hybridShapeCircleCtrRad3 part1.InWorkObject = hybridShapeCircleCtrRad3 part1.Update Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(1.000000, 2.000000, 3.000000) Set reference16 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) Set hybridShapeExtremum1 = hybridShapeFactory1.AddNewExtremum(reference16, hybridShapeDirection1, 1) hybridBody1.AppendHybridShape hybridShapeExtremum1 part1.InWorkObject = hybridShapeExtremum1 part1.Update Set reference17 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) Set reference18 = part1.CreateReferenceFromObject(hybridShapeExtremum1) Set hybridShapePointOnCurve3 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromPercent(reference17, reference18, 0.200000, False) hybridBody1.AppendHybridShape hybridShapePointOnCurve3 part1.InWorkObject = hybridShapePointOnCurve3 part1.Update Set reference19 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) Set reference20 = part1.CreateReferenceFromObject(hybridShapePointOnCurve3) Set hybridShapePointOnCurve4 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromPercent(reference19, reference20, 0.100000, False) hybridBody1.AppendHybridShape hybridShapePointOnCurve4 part1.InWorkObject = hybridShapePointOnCurve4 part1.Update Set relations1 = part1.Relations Set parameters4 = part1.Parameters Set realParam1 = parameters4.Item("点\比率") Set formula1 = relations1.CreateFormula("", "", realParam1, "1 / 10") Set reference21 = part1.CreateReferenceFromObject(hybridShapePointOnCurve4) Set hybridShapePointOnCurve5 = hybridShapeFactory1.DuplicateGSMSpec(reference21) Set reference22 = part1.CreateReferenceFromObject(hybridShapePointOnCurve5) Set reference23 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference22, reference23 Set relations2 = part1.Relations Set parameters5 = part1.Parameters Set realParam2 = parameters5.Item("点\比率") Set formula2 = relations2.CreateFormula("", "", realParam2, "2 / 10") Set reference24 = part1.CreateReferenceFromObject(hybridShapePointOnCurve4) Set hybridShapePointOnCurve6 = hybridShapeFactory1.DuplicateGSMSpec(reference24) Set reference25 = part1.CreateReferenceFromObject(hybridShapePointOnCurve6) Set reference26 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference25, reference26 Set relations3 = part1.Relations Set parameters6 = part1.Parameters Set realParam3 = parameters6.Item("点\比率") Set formula3 = relations3.CreateFormula("", "", realParam3, "3 / 10") Set reference27 = part1.CreateReferenceFromObject(hybridShapePointOnCurve4) Set hybridShapePointOnCurve7 = hybridShapeFactory1.DuplicateGSMSpec(reference27) Set reference28 = part1.CreateReferenceFromObject(hybridShapePointOnCurve7) Set reference29 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference28, reference29 Set relations4 = part1.Relations Set parameters7 = part1.Parameters Set realParam4 = parameters7.Item("点\比率") Set formula4 = relations4.CreateFormula("", "", realParam4, "4 / 10") Set reference30 = part1.CreateReferenceFromObject(hybridShapePointOnCurve4) Set hybridShapePointOnCurve8 = hybridShapeFactory1.DuplicateGSMSpec(reference30) Set reference31 = part1.CreateReferenceFromObject(hybridShapePointOnCurve8) Set reference32 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference31, reference32 Set relations5 = part1.Relations Set parameters8 = part1.Parameters Set realParam5 = parameters8.Item("点\比率") Set formula5 = relations5.CreateFormula("", "", realParam5, "5 / 10") Set reference33 = part1.CreateReferenceFromObject(hybridShapePointOnCurve4) Set hybridShapePointOnCurve9 = hybridShapeFactory1.DuplicateGSMSpec(reference33) Set reference34 = part1.CreateReferenceFromObject(hybridShapePointOnCurve9) Set reference35 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference34, reference35 Set relations6 = part1.Relations Set parameters9 = part1.Parameters Set realParam6 = parameters9.Item("点\比率") Set formula6 = relations6.CreateFormula("", "", realParam6, "6 / 10") Set reference36 = part1.CreateReferenceFromObject(hybridShapePointOnCurve4) Set hybridShapePointOnCurve10 = hybridShapeFactory1.DuplicateGSMSpec(reference36) Set reference37 = part1.CreateReferenceFromObject(hybridShapePointOnCurve10) Set reference38 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference37, reference38 Set relations7 = part1.Relations Set parameters10 = part1.Parameters Set realParam7 = parameters10.Item("点\比率") Set formula7 = relations7.CreateFormula("", "", realParam7, "7 / 10") Set reference39 = part1.CreateReferenceFromObject(hybridShapePointOnCurve4) Set hybridShapePointOnCurve11 = hybridShapeFactory1.DuplicateGSMSpec(reference39) Set reference40 = part1.CreateReferenceFromObject(hybridShapePointOnCurve11) Set reference41 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference40, reference41 Set relations8 = part1.Relations Set parameters11 = part1.Parameters Set realParam8 = parameters11.Item("点\比率") Set formula8 = relations8.CreateFormula("", "", realParam8, "8 / 10") Set reference42 = part1.CreateReferenceFromObject(hybridShapePointOnCurve4) Set hybridShapePointOnCurve12 = hybridShapeFactory1.DuplicateGSMSpec(reference42) Set reference43 = part1.CreateReferenceFromObject(hybridShapePointOnCurve12) Set reference44 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference43, reference44 Set relations9 = part1.Relations Set parameters12 = part1.Parameters Set realParam9 = parameters12.Item("点\比率") Set formula9 = relations9.CreateFormula("", "", realParam9, "9 / 10") Set reference45 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) Set reference46 = part1.CreateReferenceFromObject(hybridShapePointOnCurve3) Set hybridShapePointOnCurve13 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromPercent(reference45, reference46, 0.100000, False) hybridBody1.AppendHybridShape hybridShapePointOnCurve13 part1.InWorkObject = hybridShapePointOnCurve13 part1.Update Set relations10 = part1.Relations Set parameters13 = part1.Parameters Set realParam10 = parameters13.Item("点\比率") Set formula10 = relations10.CreateFormula("", "", realParam10, "1 / 10") Set reference47 = part1.CreateReferenceFromObject(hybridShapePointOnCurve13) Set hybridShapePointOnCurve14 = hybridShapeFactory1.DuplicateGSMSpec(reference47) Set reference48 = part1.CreateReferenceFromObject(hybridShapePointOnCurve14) Set reference49 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference48, reference49 Set relations11 = part1.Relations Set parameters14 = part1.Parameters Set realParam11 = parameters14.Item("Part2\Mixed light pattern\点.58\比率") Set formula11 = relations11.CreateFormula("", "", realParam11, "2 / 10") Set reference50 = part1.CreateReferenceFromObject(hybridShapePointOnCurve13) Set hybridShapePointOnCurve15 = hybridShapeFactory1.DuplicateGSMSpec(reference50) Set reference51 = part1.CreateReferenceFromObject(hybridShapePointOnCurve15) Set reference52 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference51, reference52 Set relations12 = part1.Relations Set parameters15 = part1.Parameters Set realParam12 = parameters15.Item("Part2\Mixed light pattern\点.59\比率") Set formula12 = relations12.CreateFormula("", "", realParam12, "3 / 10") Set reference53 = part1.CreateReferenceFromObject(hybridShapePointOnCurve13) Set hybridShapePointOnCurve16 = hybridShapeFactory1.DuplicateGSMSpec(reference53) Set reference54 = part1.CreateReferenceFromObject(hybridShapePointOnCurve16) Set reference55 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference54, reference55 Set relations13 = part1.Relations Set parameters16 = part1.Parameters Set realParam13 = parameters16.Item("Part2\Mixed light pattern\点.60\比率") Set formula13 = relations13.CreateFormula("", "", realParam13, "4 / 10") Set reference56 = part1.CreateReferenceFromObject(hybridShapePointOnCurve13) Set hybridShapePointOnCurve17 = hybridShapeFactory1.DuplicateGSMSpec(reference56) Set reference57 = part1.CreateReferenceFromObject(hybridShapePointOnCurve17) Set reference58 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference57, reference58 Set relations14 = part1.Relations Set parameters17 = part1.Parameters Set realParam14 = parameters17.Item("Part2\Mixed light pattern\点.61\比率") Set formula14 = relations14.CreateFormula("", "", realParam14, "5 / 10") Set reference59 = part1.CreateReferenceFromObject(hybridShapePointOnCurve13) Set hybridShapePointOnCurve18 = hybridShapeFactory1.DuplicateGSMSpec(reference59) Set reference60 = part1.CreateReferenceFromObject(hybridShapePointOnCurve18) Set reference61 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference60, reference61 Set relations15 = part1.Relations Set parameters18 = part1.Parameters Set realParam15 = parameters18.Item("Part2\Mixed light pattern\点.62\比率") Set formula15 = relations15.CreateFormula("", "", realParam15, "6 / 10") Set reference62 = part1.CreateReferenceFromObject(hybridShapePointOnCurve13) Set hybridShapePointOnCurve19 = hybridShapeFactory1.DuplicateGSMSpec(reference62) Set reference63 = part1.CreateReferenceFromObject(hybridShapePointOnCurve19) Set reference64 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference63, reference64 Set relations16 = part1.Relations Set parameters19 = part1.Parameters Set realParam16 = parameters19.Item("Part2\Mixed light pattern\点.63\比率") Set formula16 = relations16.CreateFormula("", "", realParam16, "7 / 10") Set reference65 = part1.CreateReferenceFromObject(hybridShapePointOnCurve13) Set hybridShapePointOnCurve20 = hybridShapeFactory1.DuplicateGSMSpec(reference65) Set reference66 = part1.CreateReferenceFromObject(hybridShapePointOnCurve20) Set reference67 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference66, reference67 Set relations17 = part1.Relations Set parameters20 = part1.Parameters Set realParam17 = parameters20.Item("Part2\Mixed light pattern\点.64\比率") Set formula17 = relations17.CreateFormula("", "", realParam17, "8 / 10") Set reference68 = part1.CreateReferenceFromObject(hybridShapePointOnCurve13) Set hybridShapePointOnCurve21 = hybridShapeFactory1.DuplicateGSMSpec(reference68) Set reference69 = part1.CreateReferenceFromObject(hybridShapePointOnCurve21) Set reference70 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad3) hybridShapeFactory1.SetReferenceElemForMultiple reference69, reference70 Set relations18 = part1.Relations Set parameters21 = part1.Parameters Set realParam18 = parameters21.Item("Part2\Mixed light pattern\点.65\比率") Set formula18 = relations18.CreateFormula("", "", realParam18, "9 / 10") part1.Update Set reference71 = part1.CreateReferenceFromObject(hybridShapePointOnCurve3) Set reference72 = part1.CreateReferenceFromObject(hybridShapePointOnCurve13) Set reference73 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircle2PointsRad1 = hybridShapeFactory1.AddNewCircle2PointsRad(reference71, reference72, reference73, True, 3.000000, -1) hybridShapeCircle2PointsRad1.DiameterMode = True hybridShapeCircle2PointsRad1.SetLimitation 3 hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad1 part1.InWorkObject = hybridShapeCircle2PointsRad1 part1.Update Set reference74 = part1.CreateReferenceFromObject(hybridShapePointOnCurve13) Set reference75 = part1.CreateReferenceFromObject(hybridShapePointOnCurve14) Set reference76 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircle2PointsRad2 = hybridShapeFactory1.AddNewCircle2PointsRad(reference74, reference75, reference76, True, 3.000000, -1) hybridShapeCircle2PointsRad2.DiameterMode = True hybridShapeCircle2PointsRad2.SetLimitation 3 hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad2 part1.InWorkObject = hybridShapeCircle2PointsRad2 part1.Update Set reference77 = part1.CreateReferenceFromObject(hybridShapePointOnCurve14) Set reference78 = part1.CreateReferenceFromObject(hybridShapePointOnCurve15) Set reference79 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircle2PointsRad3 = hybridShapeFactory1.AddNewCircle2PointsRad(reference77, reference78, reference79, True, 3.000000, -1) hybridShapeCircle2PointsRad3.DiameterMode = True hybridShapeCircle2PointsRad3.SetLimitation 3 hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad3 part1.InWorkObject = hybridShapeCircle2PointsRad3 part1.Update Set reference80 = part1.CreateReferenceFromObject(hybridShapePointOnCurve15) Set reference81 = part1.CreateReferenceFromObject(hybridShapePointOnCurve16) Set reference82 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircle2PointsRad4 = hybridShapeFactory1.AddNewCircle2PointsRad(reference80, reference81, reference82, True, 3.000000, -1) hybridShapeCircle2PointsRad4.DiameterMode = True hybridShapeCircle2PointsRad4.SetLimitation 3 hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad4 part1.InWorkObject = hybridShapeCircle2PointsRad4 part1.Update Set reference83 = part1.CreateReferenceFromObject(hybridShapePointOnCurve16) Set reference84 = part1.CreateReferenceFromObject(hybridShapePointOnCurve17) Set reference85 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircle2PointsRad5 = hybridShapeFactory1.AddNewCircle2PointsRad(reference83, reference84, reference85, True, 3.000000, -1) hybridShapeCircle2PointsRad5.DiameterMode = True hybridShapeCircle2PointsRad5.SetLimitation 3 hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad5 part1.InWorkObject = hybridShapeCircle2PointsRad5 part1.Update Set reference86 = part1.CreateReferenceFromObject(hybridShapePointOnCurve17) Set reference87 = part1.CreateReferenceFromObject(hybridShapePointOnCurve18) Set reference88 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircle2PointsRad6 = hybridShapeFactory1.AddNewCircle2PointsRad(reference86, reference87, reference88, True, 3.000000, -1) hybridShapeCircle2PointsRad6.DiameterMode = True hybridShapeCircle2PointsRad6.SetLimitation 3 hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad6 part1.InWorkObject = hybridShapeCircle2PointsRad6 part1.Update Set reference89 = part1.CreateReferenceFromObject(hybridShapePointOnCurve18) Set reference90 = part1.CreateReferenceFromObject(hybridShapePointOnCurve19) Set reference91 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircle2PointsRad7 = hybridShapeFactory1.AddNewCircle2PointsRad(reference89, reference90, reference91, True, 3.000000, -1) hybridShapeCircle2PointsRad7.DiameterMode = True hybridShapeCircle2PointsRad7.SetLimitation 3 hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad7 part1.InWorkObject = hybridShapeCircle2PointsRad7 part1.Update Set reference92 = part1.CreateReferenceFromObject(hybridShapePointOnCurve19) Set reference93 = part1.CreateReferenceFromObject(hybridShapePointOnCurve20) Set reference94 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircle2PointsRad8 = hybridShapeFactory1.AddNewCircle2PointsRad(reference92, reference93, reference94, True, 3.000000, -1) hybridShapeCircle2PointsRad8.DiameterMode = True hybridShapeCircle2PointsRad8.SetLimitation 3 hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad8 part1.InWorkObject = hybridShapeCircle2PointsRad8 part1.Update Set reference95 = part1.CreateReferenceFromObject(hybridShapePointOnCurve20) Set reference96 = part1.CreateReferenceFromObject(hybridShapePointOnCurve21) Set reference97 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircle2PointsRad9 = hybridShapeFactory1.AddNewCircle2PointsRad(reference95, reference96, reference97, True, 3.000000, -1) hybridShapeCircle2PointsRad9.DiameterMode = True hybridShapeCircle2PointsRad9.SetLimitation 3 hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad9 part1.InWorkObject = hybridShapeCircle2PointsRad9 part1.Update Set reference98 = part1.CreateReferenceFromObject(hybridShapePointOnCurve21) Set reference99 = part1.CreateReferenceFromObject(hybridShapePointOnCurve3) Set reference100 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) Set hybridShapeCircle2PointsRad10 = hybridShapeFactory1.AddNewCircle2PointsRad(reference98, reference99, reference100, True, 3.000000, -1) hybridShapeCircle2PointsRad10.DiameterMode = True hybridShapeCircle2PointsRad10.SetLimitation 3 hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad10 part1.InWorkObject = hybridShapeCircle2PointsRad10 part1.Update Set reference101 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad1) Set reference102 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad2) Set hybridShapeAssemble1 = hybridShapeFactory1.AddNewJoin(reference101, reference102) Set reference103 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad3) hybridShapeAssemble1.AddElement reference103 Set reference104 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad4) hybridShapeAssemble1.AddElement reference104 Set reference105 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad5) hybridShapeAssemble1.AddElement reference105 Set reference106 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad6) hybridShapeAssemble1.AddElement reference106 Set reference107 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad7) hybridShapeAssemble1.AddElement reference107 Set reference108 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad8) hybridShapeAssemble1.AddElement reference108 Set reference109 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad9) hybridShapeAssemble1.AddElement reference109 Set reference110 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad10) hybridShapeAssemble1.AddElement reference110 hybridShapeAssemble1.SetConnex 1 hybridShapeAssemble1.SetManifold 1 hybridShapeAssemble1.SetSimplify 0 hybridShapeAssemble1.SetSuppressMode 0 hybridShapeAssemble1.SetDeviation 0.001000 hybridShapeAssemble1.SetAngularToleranceMode 0 hybridShapeAssemble1.SetAngularTolerance 0.500000 hybridShapeAssemble1.SetFederationPropagation 0 hybridBody1.AppendHybridShape hybridShapeAssemble1 part1.InWorkObject = hybridShapeAssemble1 part1.Update part1.Update Set reference111 = part1.CreateReferenceFromObject(hybridShapeAssemble1) Set reference112 = part1.CreateReferenceFromObject(hybridShapeCurveExplicit1) Set hybridShapeSweepExplicit1 = hybridShapeFactory1.AddNewSweepExplicit(reference111, reference112) hybridShapeSweepExplicit1.SubType = 1 hybridShapeSweepExplicit1.SetAngleRef 1, 0.000000 hybridShapeSweepExplicit1.SolutionNo = 0 Set reference113 = part1.CreateReferenceFromObject(hybridShapePointOnCurve1) Set reference114 = part1.CreateReferenceFromObject(hybridShapePointOnCurve2) hybridShapeSweepExplicit1.SetRelimiters reference113, 0, reference114, 1 hybridShapeSweepExplicit1.SmoothActivity = False hybridShapeSweepExplicit1.GuideDeviationActivity = False hybridShapeSweepExplicit1.SetbackValue = 0.020000 hybridShapeSweepExplicit1.FillTwistedAreas = 1 hybridShapeSweepExplicit1.C0VerticesMode = True hybridBody1.AppendHybridShape hybridShapeSweepExplicit1 part1.InWorkObject = hybridShapeSweepExplicit1 part1.Update part1.Update Set reference115 = part1.CreateReferenceFromBRepName("BorderREdge:(BEdge:(Brp:(GSMSweep.4;(Brp:(GSMPoint.55);Brp:(GSMMonoDim.1;3);Brp:(GSMSweep.4_GSMPositionTransfo.1;(Brp:(GSMCircle.52;(Brp:(GSMPlane.9)))))));None:(Limits1:();Limits2:();-1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", hybridShapeSweepExplicit1) Set hybridShapeExtractMulti2 = hybridShapeFactory1.AddNewExtractMulti(reference115) hybridShapeExtractMulti2.AddConstraintTolerant reference115, 1, False, False, 0.100000, 0.500000, 0.980000, 1 hybridShapeExtractMulti2.SetElement 1, reference115 hybridShapeExtractMulti2.SetPropagationType 1, 1 hybridShapeExtractMulti2.SetComplementaryExtractMulti 1, False hybridShapeExtractMulti2.SetIsFederated 1, False hybridShapeExtractMulti2.SetDistanceThresholdActivity 1, True hybridShapeExtractMulti2.SetAngularThresholdActivity 1, False hybridShapeExtractMulti2.SetCurvatureThresholdActivity 1, False hybridBody1.AppendHybridShape hybridShapeExtractMulti2 part1.InWorkObject = hybridShapeExtractMulti2 part1.Update Set hybridShapeFill1 = hybridShapeFactory1.AddNewFill() Set reference116 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFill1.AddBound reference116 hybridShapeFill1.Continuity = 1 hybridShapeFill1.Detection = 2 hybridShapeFill1.AdvancedTolerantMode = 2 hybridBody1.AppendHybridShape hybridShapeFill1 part1.InWorkObject = hybridShapeFill1 part1.Update Set hybridShapeFill2 = hybridShapeFactory1.AddNewFill() Set reference117 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad2) hybridShapeFill2.AddBound reference117 hybridShapeFill2.Continuity = 1 hybridShapeFill2.Detection = 2 hybridShapeFill2.AdvancedTolerantMode = 2 hybridBody1.AppendHybridShape hybridShapeFill2 part1.InWorkObject = hybridShapeFill2 part1.Update Set reference118 = part1.CreateReferenceFromObject(hybridShapeFill1) Set reference119 = part1.CreateReferenceFromObject(hybridShapeFill2) Set hybridShapeAssemble2 = hybridShapeFactory1.AddNewJoin(reference118, reference119) Set reference120 = part1.CreateReferenceFromObject(hybridShapeSweepExplicit1) hybridShapeAssemble2.AddElement reference120 hybridShapeAssemble2.SetConnex 1 hybridShapeAssemble2.SetManifold 1 hybridShapeAssemble2.SetSimplify 0 hybridShapeAssemble2.SetSuppressMode 0 hybridShapeAssemble2.SetDeviation 0.001000 hybridShapeAssemble2.SetAngularToleranceMode 0 hybridShapeAssemble2.SetAngularTolerance 0.500000 hybridShapeAssemble2.SetFederationPropagation 0 hybridBody1.AppendHybridShape hybridShapeAssemble2 part1.InWorkObject = hybridShapeAssemble2 part1.Update part1.Update Set selection2 = partDocument1.Selection Set visPropertySet2 = selection2.VisProperties Set hybridShapes1 = hybridShapeAssemble1.Parent Dim bSTR4 bSTR4 = hybridShapeAssemble1.Name selection2.Add hybridShapeAssemble1 Set visPropertySet2 = visPropertySet2.Parent Dim bSTR5 bSTR5 = visPropertySet2.Name Dim bSTR6 bSTR6 = visPropertySet2.Name visPropertySet2.SetShow 1 selection2.Clear Set selection3 = partDocument1.Selection Set visPropertySet3 = selection3.VisProperties Set hybridShapes1 = hybridShapeExtractMulti1.Parent Dim bSTR7 bSTR7 = hybridShapeExtractMulti1.Name selection3.Add hybridShapeExtractMulti1 Set hybridShapes1 = hybridShapePointOnCurve1.Parent Dim bSTR8 bSTR8 = hybridShapePointOnCurve1.Name selection3.Add hybridShapePointOnCurve1 Set hybridShapes1 = hybridShapePlaneNormal1.Parent Dim bSTR9 bSTR9 = hybridShapePlaneNormal1.Name selection3.Add hybridShapePlaneNormal1 Set hybridShapes1 = hybridShapePointOnCurve2.Parent Dim bSTR10 bSTR10 = hybridShapePointOnCurve2.Name selection3.Add hybridShapePointOnCurve2 Set hybridShapes1 = hybridShapePlaneNormal2.Parent Dim bSTR11 bSTR11 = hybridShapePlaneNormal2.Name selection3.Add hybridShapePlaneNormal2 Set hybridShapes1 = hybridShapeCircleCtrRad1.Parent Dim bSTR12 bSTR12 = hybridShapeCircleCtrRad1.Name selection3.Add hybridShapeCircleCtrRad1 Set hybridShapes1 = hybridShapeCircleCtrRad2.Parent Dim bSTR13 bSTR13 = hybridShapeCircleCtrRad2.Name selection3.Add hybridShapeCircleCtrRad2 Set hybridShapes1 = hybridShapeCircleCtrRad3.Parent Dim bSTR14 bSTR14 = hybridShapeCircleCtrRad3.Name selection3.Add hybridShapeCircleCtrRad3 Set hybridShapes1 = hybridShapePointOnCurve3.Parent Dim bSTR15 bSTR15 = hybridShapePointOnCurve3.Name selection3.Add hybridShapePointOnCurve3 Set hybridShapes1 = hybridShapePointOnCurve13.Parent Dim bSTR16 bSTR16 = hybridShapePointOnCurve13.Name selection3.Add hybridShapePointOnCurve13 Set hybridShapes1 = hybridShapePointOnCurve14.Parent Dim bSTR17 bSTR17 = hybridShapePointOnCurve14.Name selection3.Add hybridShapePointOnCurve14 Set hybridShapes1 = hybridShapePointOnCurve15.Parent Dim bSTR18 bSTR18 = hybridShapePointOnCurve15.Name selection3.Add hybridShapePointOnCurve15 Set hybridShapes1 = hybridShapePointOnCurve16.Parent Dim bSTR19 bSTR19 = hybridShapePointOnCurve16.Name selection3.Add hybridShapePointOnCurve16 Set hybridShapes1 = hybridShapePointOnCurve17.Parent Dim bSTR20 bSTR20 = hybridShapePointOnCurve17.Name selection3.Add hybridShapePointOnCurve17 Set hybridShapes1 = hybridShapePointOnCurve18.Parent Dim bSTR21 bSTR21 = hybridShapePointOnCurve18.Name selection3.Add hybridShapePointOnCurve18 Set hybridShapes1 = hybridShapePointOnCurve19.Parent Dim bSTR22 bSTR22 = hybridShapePointOnCurve19.Name selection3.Add hybridShapePointOnCurve19 Set hybridShapes1 = hybridShapePointOnCurve20.Parent Dim bSTR23 bSTR23 = hybridShapePointOnCurve20.Name selection3.Add hybridShapePointOnCurve20 Set hybridShapes1 = hybridShapePointOnCurve21.Parent Dim bSTR24 bSTR24 = hybridShapePointOnCurve21.Name selection3.Add hybridShapePointOnCurve21 Set visPropertySet3 = visPropertySet3.Parent Dim bSTR25 bSTR25 = visPropertySet3.Name Dim bSTR26 bSTR26 = visPropertySet3.Name visPropertySet3.SetShow 1 selection3.Clear Set selection4 = partDocument1.Selection Set visPropertySet4 = selection4.VisProperties Set hybridShapes1 = hybridShapeExtractMulti2.Parent Dim bSTR27 bSTR27 = hybridShapeExtractMulti2.Name selection4.Add hybridShapeExtractMulti2 Set visPropertySet4 = visPropertySet4.Parent Dim bSTR28 bSTR28 = visPropertySet4.Name Dim bSTR29 bSTR29 = visPropertySet4.Name visPropertySet4.SetShow 1 selection4.Clear End Sub 把这些代码转为vba代码,
07-16
Language="VBSCRIPT" Sub CATMain() Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.Part Set hybridShapeFactory1 = part1.HybridShapeFactory Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(1.000000, 2.000000, 3.000000) Set hybridBodies1 = part1.HybridBodies Set hybridBody1 = hybridBodies1.Item("Mixed light pattern") Set hybridShapes1 = hybridBody1.HybridShapes Set hybridShapeCircleCtrRad1 = hybridShapes1.Item("Circle.75") Set reference1 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) Set hybridShapeExtremum1 = hybridShapeFactory1.AddNewExtremum(reference1, hybridShapeDirection1, 1) hybridBody1.AppendHybridShape hybridShapeExtremum1 part1.InWorkObject = hybridShapeExtremum1 part1.Update Set reference2 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) Set reference3 = part1.CreateReferenceFromObject(hybridShapeExtremum1) Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference2, reference3, 0.000000, False) hybridShapePointOnCurve1.DistanceType = 1 hybridBody1.AppendHybridShape hybridShapePointOnCurve1 part1.InWorkObject = hybridShapePointOnCurve1 part1.Update Set reference4 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) Set reference5 = part1.CreateReferenceFromObject(hybridShapeExtremum1) Set hybridShapePointOnCurve2 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference4, reference5, 0.000000, False) hybridShapePointOnCurve2.DistanceType = 1 hybridBody1.AppendHybridShape hybridShapePointOnCurve2 part1.InWorkObject = hybridShapePointOnCurve2 part1.Update Set relations1 = part1.Relations Set parameters1 = part1.Parameters Set length1 = parameters1.Item("Point\Length") Set formula1 = relations1.CreateFormula("", "", length1, "length(`Mixed light pattern\Circle.75`) / 9") Set reference6 = part1.CreateReferenceFromObject(hybridShapePointOnCurve2) Set hybridShapePointOnCurve3 = hybridShapeFactory1.DuplicateGSMSpec(reference6) Set reference7 = part1.CreateReferenceFromObject(hybridShapePointOnCurve3) Set reference8 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference7, reference8 Set relations2 = part1.Relations Set parameters2 = part1.Parameters Set length2 = parameters2.Item("Point\Length") Set formula2 = relations2.CreateFormula("", "", length2, "(length(`Mixed light pattern\Circle.75`)) * 2 / 9") Set reference9 = part1.CreateReferenceFromObject(hybridShapePointOnCurve2) Set hybridShapePointOnCurve4 = hybridShapeFactory1.DuplicateGSMSpec(reference9) Set reference10 = part1.CreateReferenceFromObject(hybridShapePointOnCurve4) Set reference11 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference10, reference11 Set relations3 = part1.Relations Set parameters3 = part1.Parameters Set length3 = parameters3.Item("Point\Length") Set formula3 = relations3.CreateFormula("", "", length3, "(length(`Mixed light pattern\Circle.75`)) * 3 / 9") Set reference12 = part1.CreateReferenceFromObject(hybridShapePointOnCurve2) Set hybridShapePointOnCurve5 = hybridShapeFactory1.DuplicateGSMSpec(reference12) Set reference13 = part1.CreateReferenceFromObject(hybridShapePointOnCurve5) Set reference14 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference13, reference14 Set relations4 = part1.Relations Set parameters4 = part1.Parameters Set length4 = parameters4.Item("Point\Length") Set formula4 = relations4.CreateFormula("", "", length4, "(length(`Mixed light pattern\Circle.75`)) * 4 / 9") Set reference15 = part1.CreateReferenceFromObject(hybridShapePointOnCurve2) Set hybridShapePointOnCurve6 = hybridShapeFactory1.DuplicateGSMSpec(reference15) Set reference16 = part1.CreateReferenceFromObject(hybridShapePointOnCurve6) Set reference17 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference16, reference17 Set relations5 = part1.Relations Set parameters5 = part1.Parameters Set length5 = parameters5.Item("Point\Length") Set formula5 = relations5.CreateFormula("", "", length5, "(length(`Mixed light pattern\Circle.75`)) * 5 / 9") Set reference18 = part1.CreateReferenceFromObject(hybridShapePointOnCurve2) Set hybridShapePointOnCurve7 = hybridShapeFactory1.DuplicateGSMSpec(reference18) Set reference19 = part1.CreateReferenceFromObject(hybridShapePointOnCurve7) Set reference20 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference19, reference20 Set relations6 = part1.Relations Set parameters6 = part1.Parameters Set length6 = parameters6.Item("Point\Length") Set formula6 = relations6.CreateFormula("", "", length6, "(length(`Mixed light pattern\Circle.75`)) * 6 / 9") Set reference21 = part1.CreateReferenceFromObject(hybridShapePointOnCurve2) Set hybridShapePointOnCurve8 = hybridShapeFactory1.DuplicateGSMSpec(reference21) Set reference22 = part1.CreateReferenceFromObject(hybridShapePointOnCurve8) Set reference23 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference22, reference23 Set relations7 = part1.Relations Set parameters7 = part1.Parameters Set length7 = parameters7.Item("Point\Length") Set formula7 = relations7.CreateFormula("", "", length7, "(length(`Mixed light pattern\Circle.75`)) * 7 / 9") Set reference24 = part1.CreateReferenceFromObject(hybridShapePointOnCurve2) Set hybridShapePointOnCurve9 = hybridShapeFactory1.DuplicateGSMSpec(reference24) Set reference25 = part1.CreateReferenceFromObject(hybridShapePointOnCurve9) Set reference26 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference25, reference26 Set relations8 = part1.Relations Set parameters8 = part1.Parameters Set length8 = parameters8.Item("Point\Length") Set formula8 = relations8.CreateFormula("", "", length8, "(length(`Mixed light pattern\Circle.75`)) * 8 / 9") Set hybridShapeDirection2 = hybridShapeFactory1.AddNewDirectionByCoord(1.000000, 2.000000, 3.000000) Set reference27 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) Set hybridShapeExtremum2 = hybridShapeFactory1.AddNewExtremum(reference27, hybridShapeDirection2, 1) hybridBody1.AppendHybridShape hybridShapeExtremum2 part1.InWorkObject = hybridShapeExtremum2 part1.Update Set reference28 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) Set reference29 = part1.CreateReferenceFromObject(hybridShapeExtremum2) Set hybridShapePointOnCurve10 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference28, reference29, 0.000000, False) hybridShapePointOnCurve10.DistanceType = 1 hybridBody1.AppendHybridShape hybridShapePointOnCurve10 part1.InWorkObject = hybridShapePointOnCurve10 part1.Update Set reference30 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) Set reference31 = part1.CreateReferenceFromObject(hybridShapeExtremum2) Set hybridShapePointOnCurve11 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference30, reference31, 0.000000, False) hybridShapePointOnCurve11.DistanceType = 1 hybridBody1.AppendHybridShape hybridShapePointOnCurve11 part1.InWorkObject = hybridShapePointOnCurve11 part1.Update Set relations9 = part1.Relations Set parameters9 = part1.Parameters Set length9 = parameters9.Item("Point\Length") Set formula9 = relations9.CreateFormula("", "", length9, "length(`Mixed light pattern\Circle.75`) / 9") Set reference32 = part1.CreateReferenceFromObject(hybridShapePointOnCurve11) Set hybridShapePointOnCurve12 = hybridShapeFactory1.DuplicateGSMSpec(reference32) Set reference33 = part1.CreateReferenceFromObject(hybridShapePointOnCurve12) Set reference34 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference33, reference34 Set relations10 = part1.Relations Set parameters10 = part1.Parameters Set length10 = parameters10.Item("Part2\Mixed light pattern\Point.83\Length") Set formula10 = relations10.CreateFormula("", "", length10, "(length(`Mixed light pattern\Circle.75`)) * 2 / 9") Set reference35 = part1.CreateReferenceFromObject(hybridShapePointOnCurve11) Set hybridShapePointOnCurve13 = hybridShapeFactory1.DuplicateGSMSpec(reference35) Set reference36 = part1.CreateReferenceFromObject(hybridShapePointOnCurve13) Set reference37 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference36, reference37 Set relations11 = part1.Relations Set parameters11 = part1.Parameters Set length11 = parameters11.Item("Part2\Mixed light pattern\Point.84\Length") Set formula11 = relations11.CreateFormula("", "", length11, "(length(`Mixed light pattern\Circle.75`)) * 3 / 9") Set reference38 = part1.CreateReferenceFromObject(hybridShapePointOnCurve11) Set hybridShapePointOnCurve14 = hybridShapeFactory1.DuplicateGSMSpec(reference38) Set reference39 = part1.CreateReferenceFromObject(hybridShapePointOnCurve14) Set reference40 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference39, reference40 Set relations12 = part1.Relations Set parameters12 = part1.Parameters Set length12 = parameters12.Item("Part2\Mixed light pattern\Point.85\Length") Set formula12 = relations12.CreateFormula("", "", length12, "(length(`Mixed light pattern\Circle.75`)) * 4 / 9") Set reference41 = part1.CreateReferenceFromObject(hybridShapePointOnCurve11) Set hybridShapePointOnCurve15 = hybridShapeFactory1.DuplicateGSMSpec(reference41) Set reference42 = part1.CreateReferenceFromObject(hybridShapePointOnCurve15) Set reference43 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference42, reference43 Set relations13 = part1.Relations Set parameters13 = part1.Parameters Set length13 = parameters13.Item("Part2\Mixed light pattern\Point.86\Length") Set formula13 = relations13.CreateFormula("", "", length13, "(length(`Mixed light pattern\Circle.75`)) * 5 / 9") Set reference44 = part1.CreateReferenceFromObject(hybridShapePointOnCurve11) Set hybridShapePointOnCurve16 = hybridShapeFactory1.DuplicateGSMSpec(reference44) Set reference45 = part1.CreateReferenceFromObject(hybridShapePointOnCurve16) Set reference46 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference45, reference46 Set relations14 = part1.Relations Set parameters14 = part1.Parameters Set length14 = parameters14.Item("Part2\Mixed light pattern\Point.87\Length") Set formula14 = relations14.CreateFormula("", "", length14, "(length(`Mixed light pattern\Circle.75`)) * 6 / 9") Set reference47 = part1.CreateReferenceFromObject(hybridShapePointOnCurve11) Set hybridShapePointOnCurve17 = hybridShapeFactory1.DuplicateGSMSpec(reference47) Set reference48 = part1.CreateReferenceFromObject(hybridShapePointOnCurve17) Set reference49 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference48, reference49 Set relations15 = part1.Relations Set parameters15 = part1.Parameters Set length15 = parameters15.Item("Part2\Mixed light pattern\Point.88\Length") Set formula15 = relations15.CreateFormula("", "", length15, "(length(`Mixed light pattern\Circle.75`)) * 7 / 9") Set reference50 = part1.CreateReferenceFromObject(hybridShapePointOnCurve11) Set hybridShapePointOnCurve18 = hybridShapeFactory1.DuplicateGSMSpec(reference50) Set reference51 = part1.CreateReferenceFromObject(hybridShapePointOnCurve18) Set reference52 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) hybridShapeFactory1.SetReferenceElemForMultiple reference51, reference52 Set relations16 = part1.Relations Set parameters16 = part1.Parameters Set length16 = parameters16.Item("Part2\Mixed light pattern\Point.89\Length") Set formula16 = relations16.CreateFormula("", "", length16, "(length(`Mixed light pattern\Circle.75`)) * 8 / 9") part1.Update End Sub 转为CATIA VBA代码
07-19
Language="VBSCRIPT" Sub CATMain() Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.Part Set hybridBodies1 = part1.HybridBodies Set hybridBody1 = hybridBodies1.Add() part1.Update Set hybridShapeFactory1 = part1.HybridShapeFactory Set parameters1 = part1.Parameters Set hybridShapeCurveExplicit1 = parameters1.Item("IntCurveHighM_8") Set reference1 = part1.CreateReferenceFromBRepName("WireREdge:(Wire:(Brp:(GSMMonoDim.1;3);None:(Limits1:();Limits2:());Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", hybridShapeCurveExplicit1) Set hybridShapeExtract1 = hybridShapeFactory1.AddNewExtract(reference1) hybridShapeExtract1.PropagationType = 1 hybridShapeExtract1.ComplementaryExtract = False hybridShapeExtract1.IsFederated = False Set reference2 = part1.CreateReferenceFromObject(hybridShapeExtract1) Set hybridShapes1 = hybridBody1.HybridShapes Set hybridShapeExtract2 = hybridShapes1.Item("提取.2") Set reference3 = part1.CreateReferenceFromObject(hybridShapeExtract2) Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference2, reference3, 15.000000, False) hybridShapePointOnCurve1.DistanceType = 1 hybridBody1.AppendHybridShape hybridShapePointOnCurve1 part1.InWorkObject = hybridShapePointOnCurve1 part1.Update Set parameters2 = part1.Parameters Set length1 = parameters2.Item("点\Spacing") length1.Value = 15.000000 Set reference4 = part1.CreateReferenceFromObject(hybridShapeExtract1) Set reference5 = part1.CreateReferenceFromObject(hybridShapePointOnCurve1) Set hybridShapePlaneNormal1 = hybridShapeFactory1.AddNewPlaneNormal(reference4, reference5) hybridBody1.AppendHybridShape hybridShapePlaneNormal1 part1.InWorkObject = hybridShapePlaneNormal1 part1.Update part1.Update Set reference6 = part1.CreateReferenceFromObject(hybridShapeExtract1) Set hybridShapeExtract3 = hybridShapes1.Item("提取.3") Set reference7 = part1.CreateReferenceFromObject(hybridShapeExtract3) Set hybridShapePointOnCurve2 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference6, reference7, 120.000000, False) hybridShapePointOnCurve2.DistanceType = 1 hybridBody1.AppendHybridShape hybridShapePointOnCurve2 part1.InWorkObject = hybridShapePointOnCurve2 part1.Update Set parameters3 = part1.Parameters Set length2 = parameters3.Item("点\Spacing") length2.Value = 120.000000 Set reference8 = part1.CreateReferenceFromObject(hybridShapeExtract1) Set reference9 = part1.CreateReferenceFromObject(hybridShapePointOnCurve2) Set hybridShapePlaneNormal2 = hybridShapeFactory1.AddNewPlaneNormal(reference8, reference9) hybridBody1.AppendHybridShape hybridShapePlaneNormal2 part1.InWorkObject = hybridShapePlaneNormal2 part1.Update part1.Update End Sub 转为VBA代码
07-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值