microwave office壓縮包-案例22-腳本scripting_第1頁
microwave office壓縮包-案例22-腳本scripting_第2頁
microwave office壓縮包-案例22-腳本scripting_第3頁
microwave office壓縮包-案例22-腳本scripting_第4頁
microwave office壓縮包-案例22-腳本scripting_第5頁
已閱讀5頁,還剩92頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

腳本設計2ScriptingMWO中用戶的代碼方程原理圖或GlobalDefinitions頁面-也可以在OutputEquations編寫代碼設置參數(shù)將測試的數(shù)據(jù)傳給一個參數(shù)(輸出方程)也可以應用內(nèi)建的函數(shù)注意:你可以應用腳本創(chuàng)建函數(shù)3ScriptingMWO中用戶的代碼-2腳本腳本應用VisualBasic書寫通過菜單運行腳本Global:所有工程有效.Project:本工程有效.在MWO或者文件系統(tǒng)中操作4ScriptingMWO中用戶的代碼-3用戶庫(PDK)的代碼用于編寫編譯模型(models),Pcells和BridgeCode.注意:本代碼應用C++書寫參數(shù)(W,L)會改變版圖和模型Bridgecode允許智能連接5Scripting腳本應用腳本GlobalScripts–保存在你的電腦中.ProjectScripts–與工程保存在一起.注意:GlobalScripts–保存在:軟件自帶的腳本,在軟件安裝目錄上C:\ProgramFiles\AWR\AWR2010\scripts6Scripting腳本的應用領域電路合成改變圖表的格式測試XMLLibrary文件–腳本將XML庫中的每個元件放置在電路原理圖中用于測試目的.GUI向?qū)?shù)據(jù)處理工程文檔版圖清除Optimization/Yield/Tuning變量7Scripting首字母縮寫及詞匯表API-ApplicationProgrammingInterface(應用程序編程接口)用于簡易的對MWO進行編程.COM-ComponentObjectModel(組件對象模型)允許程序之間的相互通信,如MWO和ExcelSaxBasic通常應用此種語言為MWO編寫腳本Schema

可以用于編程的多種對象的集合,如:graph,schematic...AWRDE-AWRDesignEnvironmenti.e.MWO!OOP-ObjectOrientedProgramming(面向?qū)ο蟮某绦蛟O計)8Scripting面向?qū)ο蟮某绦蛟O計(OOP)對象的類.MWO中的類:Schematic,Graph,ShapeinaLayout,...Excel的類:Workbook,Sheet對象是類的一個實例如:Schematic1是Schematic類的一個對象.對象擁有屬性:如Shape2對象:擁有頂點,繪圖層等屬性...方法–對對象所作的動作

如對schematic1這個對象的動作:Create,Delete,Export,...集合-同一類的對象如:Schematics這個類的集合-現(xiàn)有工程所有的原理圖9ScriptingAWR

Schema放大顯示MWO中所有對象的類10ScriptingAWRSchema對象的類-Project集合Collection-Schematics包含一個或多個Schematic類的原理11ScriptingAWR

Schema-3列舉了所有的集合和對象的類注意:集合的結(jié)尾是“s”.如:Schematic–類Schematics–對象的類的集合

12Scripting實例:列舉所有的原理圖編寫程序?qū)⒐こ讨兴械脑韴D列表打開工程:“First_Program”.打開腳本編輯器打開腳本編輯器的方法:Tools>ScriptingEditorAlt-F11命令工具欄技巧:找不到相應的命令-檢查Tools>ManageAddins.確定AWRScriptingIDE被選中13Scripting腳本編輯器創(chuàng)建工程腳本.右鍵點擊ObjectModules>InsertModulesGlobalScriptsProjectScripts注意:對所有工程有效.注意:僅保存在工程中.14Scripting腳本編輯器-2我們創(chuàng)建的工程腳本調(diào)試窗口CodeModule15Scripting運行腳本方法1:在需要運行的腳本上點擊右鍵>RunSubMain16Scripting運行腳本-2方法2:打開codemodule運行下圖所示按鍵17Scripting運行腳本-3方法3:為腳本設置快捷鍵快捷鍵:Tools>Hotkeys.Category–Macros下的腳本18Scripting練習:列舉原理圖-2如何編寫代碼1.查看Collection

下的Schematics2.Schematic

類下的每個對象(Collection

Schematics) -查看Schematic’sName(AProperty屬性) -在調(diào)試窗口中打印下一個原理圖下一步...我們?nèi)绾螐念愔袆?chuàng)建對象?我們?nèi)绾螒脤ο筮@個集合?我們?nèi)绾潍@得對象的屬性?如何打印?19ScriptingSaXBasic技巧注釋以‘開頭應用

OptionExplicit

減少錯誤選取易理解的名字.技巧:應用OptionExplicit后,變量必須應用Dim定義DimfooAsLongDimbarAsSchematic用于防止書寫錯誤.

若寫fo0則會給出錯誤“Error:fo0notdeclared”.如果沒有OptionExplicit–將會創(chuàng)建變量fo0.20Scripting查找對象的類每個使用COM(包括MWO)的程序擁有對象的類這個概念.可用的程序可以在ReferencesBrowser下查看.打開:Edit>References圖標注意:查看referencebrowser之前需要打開一個Module我們只需要AWRDE.21Scripting代碼的書寫規(guī)則添加代碼-OptionExplicit注意:OptionExplicit,如果沒有定義一個變量,但卻使用它,將會出現(xiàn)犯錯誤程序-名為Main.注意:必須有Main–程序開始的地方.你可以添加其他的.添加代碼:DimschAsSchematic創(chuàng)建Schematic類的對象Sch注意:腳本首先將對象定義為類.也可在此定義變量.技巧:sch是給對象賦的名,可以是任何名字22Scripting在腳本編輯器中獲得幫助ObjectBrowser類或數(shù)據(jù)類型方法及屬性-為字符串View>ObjectBrowser23Scripting在腳本編輯器中獲得幫助-2智能幫助你自動填充.當開始輸入時,自動顯示合理的選項

24Scripting在腳本編輯器中獲得幫助-3F1.如果光標在VB函數(shù)上,自動獲得函數(shù)的幫助.25ScriptingSchema和對象從上而下...對于我們的原理圖:MWOfficeProjectSchematicsSchematic類類類集合技巧:在定義對象和集合時一般省略MWOffice–如果你有另一個命名空間,如Excel,必須詳細聲明MWOffice.Project輸入:MWOffice.Project.Schematics因此...Project.Schematics即可26Scripting集合如何在集合中對單個原理圖進行操作?SchematicsSchematic類集合Count是屬性:原理圖的個數(shù).方法1:27Scripting集合-2Debug.Print在調(diào)試窗口中輸出numsch定義numsch為長整型注意:路徑-Project.Schematics...Count是集合Schematics的屬性28Scripting集合-3如果你知道集合中的某一項—可以直接讀取此項最下面的一行代碼:獲得Schematics集合的第二項—是原理圖的對象,然后再輸出原理圖的名稱(屬性)技巧:應用如下方法進行集合元素遍歷,比較困難ForI=1toN…因為你必須知道集合里面元素個數(shù).最好用:For…Each…29Scripting集合-4對于集合來講比較好用-ForEach...In...-它會遍歷集合中所有的元素...而不需要提前知道有多少個元素Thisclearsthedebuggerwindow.循環(huán)將每個原理圖賦值給sch變量并打印方法2:30Scripting調(diào)試SaxBasic有自己的調(diào)試具.Debug.print將數(shù)據(jù)輸出到調(diào)試窗口可以設置斷點并運行至下一個斷點可運行程序至子程序為schematic類設置變量清空調(diào)試窗口遍歷工程中的schematics集合在調(diào)試窗口中打印原理圖的名字31Scripting調(diào)試窗口當腳本運行時,所有的原理圖名字顯示在調(diào)試窗口中32Scripting調(diào)試–斷點選擇添加斷點的位置,添加斷點下面顯示了在腳本運行之前,在FOR循環(huán)前面的斷點33Scripting調(diào)試–查詢變量當程序運行至斷點時,你可以查看變量的值.此例中,進行FOR循環(huán)。在調(diào)試窗口中添加“?sch.Name”顯示的值應用()獲得向量的值。在()之間放置索引值獲得某個元素值也可以將光標放至變量處,查看其值34Scripting調(diào)試–查詢變量另外,你可以在調(diào)試窗口的Watch選項卡中添加變量。當代碼進行時,持續(xù)顯示變量的值輸入變量的名字,當單步運行代碼時即可顯示35Scripting調(diào)試–斷點當程序運行時,在斷點處停止.斷點處變黃.按F8單步運行代碼36Scripting調(diào)試–打印Debug.Print在調(diào)試窗口中打印變量的值.自動識別數(shù)據(jù)類型.Debug.print打印多個數(shù)據(jù)如:Debug.Print3;4;5Debug.Clear清空調(diào)試窗口.放在腳本的前面.37Scripting變量和數(shù)據(jù)類型我們?nèi)孕枰獋鹘y(tǒng)的變量類型-尤其是應用函數(shù)時.需要應用Dim聲明進行定義(若應用OptionExplicit).最常用的變量類型:Integer(16位整型)Long(32位整型)Single和Double(16bit和32bit浮點型)String(輸入““形成字符串.應用&連接多個字符串.)BooleanComplex(MWO的數(shù)據(jù)類型.)38Scripting數(shù)組定義數(shù)組:如:Dimmywire(5)AsTrace...Trace類,5個元素.如:Dimthe_values(3,4)AsString...3*4的二維數(shù)組.數(shù)組元素的存取:如:the_values(0,2)=“bigvalue”注意–數(shù)組從0開始.?Dimmyarray(1,1)是2X2數(shù)組,索引分別是0和1.39ScriptingArrays–重定義常見問題-起初并不知道數(shù)組的大小,直到后來獲得一些用戶輸入才知道具體大小.首先–定義動態(tài)數(shù)組

如:ival()AsInteger元素個數(shù)未定最后–應用ReDimReDimival(4)AsInteger應用Preserve聲明符保存現(xiàn)有的數(shù)據(jù)ReDimPreserveival(4)AsInteger數(shù)組變大后,這會保持ival(0)…ival(4)的數(shù)據(jù).若不然,數(shù)據(jù)將丟失.注意:若數(shù)組變小,則數(shù)據(jù)丟失!注意:多維數(shù)組,僅能改變最后面的維度.(如,可以添加列,而不能添加行.)腳本實例-ReDim_Array40Scripting控制語句For...

簡單循環(huán)(步長自動) ForNum=FirstToLast statements NextNumFor...Each

容易對某一群組的變量進行操作 ForEachvarInItems -statements NextvarDo...Until

出現(xiàn)特定條件后,停止循環(huán). Do -statements LoopUntilconditionalexpression 注意:可用While循環(huán)代替Until.41Scripting控制語句-2For...Next

IfThenElse

SelectCaseGoTo其他語句Goto語句:使程序變得可讀性太差。。。42Scripting練習–原理圖中電阻的數(shù)目單個原理圖中電阻的數(shù)目,工程中電阻的總數(shù)目.不需要包含子電路或者網(wǎng)表.用戶可以在選擇原理圖.原理圖中電阻的數(shù)目和在新對話框中工程.需要的工作:如何在原理圖中讀取元件.確定哪些元件是電阻.創(chuàng)建選擇按鍵,輸出區(qū)域.43Scripting原理圖中的元件若需要解答以下問題,可以查閱Schema和對象說明如何在原理圖中讀取元件?小提示:查看schematics集合的屬性.schematic類的路徑/上下級結(jié)構?如何從原理圖到元件?元件的哪個屬性可讓我們確認他是一個電阻?技巧:我們需要確定某一個屬性是電阻的,從而進行選擇44Scripting原理圖中的元件-2代碼的流程定義我們所需的所有變量和對象.DimschAsSchematic…

2.初始化電阻的數(shù)值.

totalres=0 …3.確定原理圖的數(shù)量并重新定義數(shù)組.

numsch=Thenumberofschematics ReDimschnames(numsch-1)AsString …需要確定循環(huán)的類型.45Scripting原理圖中的元件-34.遍歷schematics集合….查看每個原理圖的元件…查看每個元件的屬性…確定是否是電阻…ForeachschematicintheSchematics ForEachelementinElements ForEachparameterintheParameters Iftheparameter=“R” incrementnumresistors EndIf Nextparameter Nextelement PrintouttheresistorsandschematicnameNextschematicSchematics集合元件的集合元件的集合SchematicsElementsParameters46Scripting代碼-1PartA_Res.basDefineAllthevariablesandobjectsweneed.OptionExplicitSubMainDimschnames()AsString'ThearraysandobjectsDimresvalues()AsIntegerDimschAsSchematicDimanelementAsElementDimaparameterAsParameterDimtotalresAsInteger'VariablesDimtotalelementsAsIntegerDimelementnameAsStringDimnumschAsIntegerDimschindexAsIntegerDimnumresAsInteger47Scripting代碼-22.初始化變量.totalres=0totalelements=0schindex=0elementname="R"3.原理圖的數(shù)值,重新定義數(shù)組.numsch=Project.Schematics.CountReDimschnames(numsch-1)AsStringReDimresvalues(numsch-1)AsInteger48Scripting代碼-34.遍歷schematics集合….查看每個原理圖的元件…查看每個元件的屬性…確定是否是電阻……ForEachschInProject.Schematics numres=0 ForEachanelementInsch.Elements ForEachaparameterInanelement.Parameters Ifelementname=aparameter.NameThen numres=numres+1 EndIf Nextaparameter Nextanelement schnames(schindex)=sch.Name resvalues(schindex)=numres Debug.Printschnames(schindex);"NumberofResistorsis:";numres schindex=schindex+1Nextsch49Scripting原理圖中的元件-6代碼執(zhí)行結(jié)果如下.調(diào)試窗口.PartB:添加用戶界面應用UIbuilder.50ScriptingUIBuilder圖形化生成UI,自動編寫UI的代碼.Insert>UserForm

啟動空的UIbuilder.完成UI后,添加代碼51ScriptingUIBuilder-2UI的簡單例子…創(chuàng)建新的代碼:CodeModules>InsertModule.重命名:“TestUI”.腳本將會要求用戶輸入文本,并在調(diào)試窗口中輸入。52ScriptingUIBuilder-3創(chuàng)建字符串變量:usertext.將光標置此…userform添會在光標后添加代碼.…開啟UserForm對話框.53ScriptingUIBuilder-4繪制所需的區(qū)域.應用“A”繪制輸出.右鍵點擊,設置如圖所示注意:僅是將文本輸出至屏幕,與用戶輸入無關.54ScriptingUIBuilder-5應用“ab”繪制文本框,此即為用戶的輸入55ScriptingUIBuilder-6添加OKandCancel鍵.OK–關閉對話框并執(zhí)行代碼.Cancel–關閉對話框,返回錯誤技巧:可以應用返回的錯誤.56ScriptingUIBuilder-7關閉UserDialogEditor…選擇Yes保存變化在光標處自動生成代碼.技巧:如果你將光標放置于此…Insert>UserForm…允許你重新編輯.57ScriptingUIBuilder-8下述代碼可當作一個類–UserDialog.DimdlgAsUserDialog…創(chuàng)建類UserDialog的一個對象Dialogdlg…方法…創(chuàng)建用戶表格.開始.dlg是類的對象.Thiscreates(amethod)theform.58ScriptingUIBuilder-9改變消息TextBox的初始值注意:前面已經(jīng)應用Dim創(chuàng)建了dlg注意:可以將.TextBox1改為任何值技巧:.Text1,…etc.arepropertiesthatcanbeassignedtotheobject.59ScriptingUIBuilder-10將用戶的輸入輸出到調(diào)試窗口.注意:應用Dialog創(chuàng)建表用戶點擊OK鍵,會繼續(xù)運行代碼輸入字符串,并點擊OK鍵在調(diào)試窗口中顯示60ScriptingUIBuilder-11錯誤處理如果用戶點擊Cancel,會有錯誤提示.Dialog(dlg)返回一個整數(shù)…0代表錯誤–如.點擊Clear鍵注意:確保errornumber是一個長整型注意:很多的方法會返回一個值…還有進行某個動作(makingthedialogform).技巧:End…結(jié)束程序.若不然,會一直進行.61ScriptingUIBuilder-13回到Resistor工程.應用列表框顯示

原理圖的名字.用戶選擇原理圖…并給出電阻的名字.62ScriptingUIBuilder-2添加文本FinishedDialogBoxDoubleClickonTexttoInputListBoxOKButton63ScriptingUIBuilder-3BeginDialogUserDialog400,203'%GRID:10,7,1,1 Text30,7,310,70,"PleaseSelectaSchematic",.Text1,2

ListBox100,49,170,91,ListArray(),.ListBox1 OKButton160,154,40,21 Text50,182,310,14,"SelectOKWhenFinished",.Text2,2EndDialogDimdlgAsUserDialogDialogdlgListArray()用于放置1維字符串 -應用schname()代替ListArray().ListBox1是dlg的一個屬性,會給出選擇中的schname()的元件注意:在任一關鍵詞是按F1獲得幫助64ScriptingUIBuilder-4UsingtheCodeDimdlgAsUserDialogDialogdlgDebug.Printdlg.ListBox1定義對象-dlgofTypeUserDialog運行Dialog注意:ListBox1函數(shù)是定dlg內(nèi).我們可以打印記住–數(shù)組的起始為0!dlg.ListBox1=0...ListBox的第一個元素dlg.ListBox1=1...ListBox的第二個元素...65ScriptingUIBuilder-5創(chuàng)建第二個用戶對話框...將工程中所有的元件和電阻列表.列表選中原理圖中的電阻.TextBoxes66ScriptingUIBuilder-6BeginDialogUserDialog400,203'%GRID:10,7,1,1 Text30,7,330,28,"TheTotalNumberofElementsintheProject:",.Text1 TextBox310,7,70,21,.TextBox1 TextBox310,42,70,21,.TextBox2 Text30,49,280,21,"TheNumberofResistorsinthe Project",.Text2 Text80,91,210,28,"NumberofResistorsin",.Text3 TextBox240,91,90,21,.TextBox3 TextBox130,119,70,28,.TextBox4 OKButton120,161,90,28EndDialog DimanswerboxAsUserDialog answerbox.TextBox1=Str(totalelements) answerbox.TextBox2=Str(totalres) answerbox.TextBox3=schnames(dlg.ListBox1) answerbox.TextBox4=Str(resvalues(dlg.ListBox1))注意:應用Str()函數(shù)志換為字符串.67Scripting共享腳本將VisualBasic模塊導出為a.bas文件用以導入到另一工程中.68ScriptingGlobalvsLocalScriptsGlobalscripts對所有打開的工程有效.Projectscripts僅對打開的工程有效.Projectscripts存儲在工程之中.將腳本GlobalScript導入69Scripting為GlobalScripts設置快捷鍵Tools>Customize確保點擊Apply!技巧:也可應用Ctrl,Shift,和Alt鍵定義快捷鍵.70Scripting調(diào)用其他Com對象應用MicrosoftComAPI,可以輕松的調(diào)用其他COM兼容的應用.需要在工在工程中添加objectreference.當你需要定義矢量為其他對象時,你可以調(diào)用這些對象查看以下兩個實例MicrosoftScriptingRuntimeExcel71ScriptingDictionarieDictionaries用以存儲數(shù)據(jù) -Noneedtodynamicallyresizeanything -Arrayiskeywordandvaluepairs需要添加MicrosoftScriptRuntime當作objectreference注意:此庫允許你操作Files,Folders,Drives,等.-在文件系統(tǒng)的操作中,此庫最重要72ScriptingVariant類所有的變量屬于Variant類.Integer,Long,....Variant可以是任何東西!-string,integer,float,...因此Variant數(shù)組可以包含任何東西.可以應用OptionExplicit防止出錯.DictionaryitemsandkeysworkwiththeVariantdatatypes-formaximumflexibility.73ScriptingDictionaries-2DimTestAsScripting.DictionarySetTest=NewDictionary聲明將Test定義為Dictionaryobject.注意:Scripting確保我們應用MWOffice腳本庫.如果你不提前聲明,它將先在AWRDesignEnvironment中查找...(但AWR沒有Dictionary...)DecreasingPrioritySetisusedtoassignTesttoclassDictionary.分配和定義不同-需要二者.當你創(chuàng)建對象,并想使用它74ScriptingDictionaries-3Providesabilitytolookupan‘item’basedona‘key’AddandremoveentriesbasedoneithertheitemorthekeyAddingitemsTest.Add("first","Resistor1")Test.Add("second","My_project")Test.Add("third",3.14)Test.Add(4,7)Test.Add("4","Pi")_Object.Add(_Key,_Value)NoticetheKeyandValuepairscanbeanyscalarvariabletype:Integer,String,Float,...Note:Thesekeysaredifferent!Oneisaninteger4,theotherisastring.75ScriptingDictionaries-4MethodsandPropertiesforDictionariesDebug.PrintTest("third")PrintsitemofTestwithkey“third”.Test("third")=6.7Setsarrayelementwithkey“third”to6.7.myitems=Test.Itemsmyitemsisa1DVariantarraywithelementsoftheTestitems.OtherExamples76ScriptingDictionaryExampleWorkwiththePartA_Resscript.Weaddadictionary–wherethekeywordsarethenamesoftheschematics,andthevaluesarethenumberofresistors.DimdictResAsScripting.Dictionary'AdictonaryfromMicrosoftScriptingNamespace.SetdictRes=NewDictionaryTheDimstatementdefinesthedictResasanobjectoftypeDictionary…but….TheSet…Newstatementisneededtoactuallycreatethedictionary!77ScriptingDictionaryExample-2schnames(schindex)=sch.Name resvalues(schindex)=numres dictRes(sch.Name)=numresThedictionaryisplacedintheloopwiththeschematicnamesaskeywords…andnumresasvalues.Debug.PrintdictRes("Moe")...Solateronwecanfindthenumberofresistorsforaschematic.Theadvantageofthis…ausercouldjusttypeinastring-tobeusedasthekeywordinthedictionary…78ScriptingMicrosoftScriptingRuntime…andthefilesystemYoucaninteractwiththefilesystem.Here’ssomesnipetsofascriptwrittenforrecursivelycopyingallthefilesfromonedirectorytoanother.FunctionRecCopy(strFromLoc,strToLoc)'RecursivelycopiesdirectoriesandfilesfromstrFromLoctostrToLoc.Note:Afunctioncanbeusedinthemainprogram.Forexample–wecanusethisoneinthemainprogramas:RecCopy(“C:\foo”,”C:\bar”)Functionshavetheform:Functionfuncname(variables) …EndFunction79ScriptingTheFileSystem-2FunctionRecCopy(strFromLoc,strToLoc)'RecursivelycopiesdirectoriesandfilesfromstrFromLoctostrToLoc.DimobjFSystemAsScripting.FileSystemObjectDimobjFolderAsObjectDimobjSubFOlderAsObjectDimobjFileAsObjectSetobjFSystem=CreateObject("Scripting.FileSystemObject")SetobjFolder=objFSystem.GetFolder(strFromLoc)DefiningtheobjectsCreatingtheobjects…2differentways.Set…CreateObject–sameasSet…NewGetFolder–sincewearedoingsomething(method)…theobjFolderiscreatedintheprocess.Wegotafolder!80ScriptingTheFileSystem-3objFSystem.CreateFolder(strToLoc)Createafolder.objFSystem.CopyFile(strFilePath,strToLoc&strFileRel,True)CopyFiles.strFolderName=objSubFOlder.NameFinditsname.Youcanalsodelete…so–becareful!It’susuallyagoodideatocheckifafolderordirectoryexistsbeforeyoudosomething…IfobjFolder.SubFolders.Count>0Then…Theentirefunctionisnamed…RecCopy.basTip:(VS.85).aspxforalotofinfoonScriptRuntimeLibrary.81Scripting實例–將元件導出至Excel表格中將所有元件的所有參數(shù)放在Excel表中.原理圖如下-Excel.emp.82Scripting添加ExcelReference添加ExcelObject添加MicrosoftExcelReference83ScriptingExcel代碼-1DimschAsSchematicDimpAsMWOffice.ParameterDimelemAsElementDimExcelAsObjectDimWorkbookAsObjectDimsheetAsObjectDimExAsExcel.ApplicationSubMain'CreateaninstanceofExcelSetEx=CreateObject("Excel.Application")DefiningtheseasgenericObjectsrightnow...Cangetspecificlater.NeedtospecificallyrefertoExcelnamespaceasMWOfficealsohasApplication.ExisnowassignedtoanExcelApplication.84ScriptingExcel代碼-2IfEx=""Then

MsgBox("Excelnotfoundonthismachine,programterminated")

ExitSubEndIfEx.Visible=TrueEx.Interactive=Trueshts=Ex.SheetsInNewWorkbook'storesusersoriginaldefaultsheetsperworkbookEx.SheetsInNewWorkbook=1'setsnewworkbookstoonlyhaveonesheet,however,changesuserdefaultSetWorkbook=Ex.Workbooks.Add()'addsnewworkbook Ex.SheetsInNewWorkbook=shts'resetsheetsperworkbookdefault shtcnt=1'storesnumberofsheetsForcesyououtoftheIfThenThiscodeaddsanewworkbookwithonesheet-aftermakingsurenottotrashtheuser’sdefaultnumberofsheetsfornewworkbooks.85ScriptingExcelCode-3'setschematic(couldbedonewithUI).Setsch=Project.Schematics("filter")'AddcolumnheadersforeachnewsheetSetsheet=Workbook.Sheets(1)sheet.Name=sch.Namesheet.Range("A1").FormulaR1C1="Element"sheet.Range("B1").FormulaR1C1="Parameters"row=2'startingrowThiscodenamesthesheettotheschematicname,andputsthefieldsElementandParametersatthetopofthefirst2columns.86ScriptingExcelCode-4'loopthroughallelementsForEachelemInsch.Elements

Ifelem.Enabled=True

Then sheet.Range("A"+row).FormulaR1C1=elem.Name chrval=66'numbericalvalueforcharacterA ForEachpInelem.Parameters EndIf Nextelemsheet.Range(Chr(chrval)&row).FormulaR1C1=p.Name+"="+p.ValueAsString chrval=chrval+1 Nextp row=row+1

'Fitthecolumnstothedatawe'veentered. sheet.Range("A1:J1").EntireColumn.AutoFit EndSub87Scripting調(diào)用其他應用–Results88ScriptingEventHandlersScriptingCodethatrunswhencertaineventshappenwiththesoftware(simulationstarts,simulationstops,placeanelement,etc).Canstopthesimulationineachoptimizationiteration.EventhandlesarecodedbyopeninguptheThisProjectnodeundertheObjectModulesnode.SelectProjectintheObjectselectiontohave

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論