免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Sub AdjustPartsPropsLocation() MACROMENU AdLoc MACROKEY CTRL+P MACRODESCRIPTION Auto adjust Location of Parts display propertiesSelectObject -52.32, -20.83, FALSESelectObject -14.22, -1.02, FALSEConst MB_OKCANCEL = 1 Define buttons.Const vbOKOnly = 0Const IDCANCEL = 2Const MaxNumOfParts = 500Dim DgDef, Msg, Response, Title Declare variables.Title = 注意:Msg = 1. 该宏将自动调整原理图页面中元件的Part Refrence和Value的位置; & (Chr(13) & _2. 该宏将自动创建C:test.txt文件,如果该文件存在,其内容将被覆盖; & (Chr(13) & _3. 该程序正常情况下首先弹出一个对话框 begin,如果在该begin出现之前orcad弹出 & (Chr(13) & _ Select filter 请手动选择:parts(只选择parts,其他一概不要选); & (Chr(13) & _4. 如果在begin对话框之后还出现select filter,请手动选择display properties; & (Chr(13) & _5. 该宏在orcad capture 10.3及winxp下测试通过,其他情况未测试 & (Chr(13) & _6. 请确保您使用的电阻电容形状和大小类似Capture库中的相应元件,并注意它们在库中的 & (Chr(13) & _ 原始图形是垂直放置的,即印脚在上下位置,而不是左右位置 & (Chr(13) & _7. 本程序假设R*,r*,L*,l*,C*,c*与Caputre的Discrete.olb中的R,C外形大致相似; & (Chr(13) & _ 其他字母开头的统一当作矩形行状的元件处理,其Part Refrence和Value置上。 & (Chr(13) & _8. 为防止出错死循环,本宏中设置了页面最大元件数为500; & (Chr(13) & _9. 请在Option-preference-select下设置选择方式为interselect,并确定; & (Chr(13) & _10.请在Option-schematic Page Properties-page size下选择inch, & (Chr(13) & _ 并确保您的原理图尺寸小于43X33 & (Chr(13) & _11.程序运行期间,请不要动键盘和鼠标,以免程序出错产生数据破坏; & (Chr(13) & _12.请确保您在运行该程序之前做好了备份,如有数据丢失或损坏,概不负责 & (Chr(13)Msg = Msg & (Chr(13) & 您确认要继续吗?DgDef = MB_OKCANCEL Describe dialog.Response = MsgBox(Msg, DgDef, Title) Get user response.If Response = IDCANCEL Then MsgBox 退出程序! Exit SubElse action.End IfDim ExitLoop As Integer ExitLoop = 0Dim partName As StringDim TxtFileName As String TxtFileName = c:test.txtDim PartLocX As StringDim PartLocY As StringDim ReturnValue As Integersometimes the following is ok,sometimes is unvalid :(SendKeys %vfaTAB 2 enter, True popup a select filter dialo and set parts filterMsg = 如果您刚才看到了select filter对话框,而您没有只选择Parts, & (Chr(13) & _建议您立刻退出,否则可以继续!Response = MsgBox(Msg, DgDef, 您要继续吗?) Get user response.If Response = IDCANCEL Then MsgBox (退出程序!) Exit SubElse action.End IfSendKeys %vfaUP 12 enter,True popup a select filter dialo and set parts filterunselectallGoToAbsolute 0#, 0#SelectBlock 0#, 0#, 43#, 33#, FalseRemoveDisplayProperty Part ReferenceRemoveDisplayProperty ValueOpen Property Editor and then Select,copy to clipboard and close Property EditorShowSpreadsheetSendKeys LEFT+DOWNc%-DOWN 5ENTERcreat a empty text: c:test.txtOpen TxtFileName For Output As #1CloseReturnValue = Shell(notepad.EXE c:test.txt, 1) Run NotepadAppActivate test.txt - 记事本SendKeys av%fs%fx, True Paste from clipboard and save on the disk c:.ExitLoop = 0Dim FileData As StringDim PartRotation As StringDim PartRef As StringDim displayPro As StringDim K As IntegerdisplayPro = Dim aa As StringDim nTabNameBegin As IntegerDim nTabNum As IntegerDim nPreTab As IntegerDim nEndTab As Integer nTabNum = 0Dim TmpCnt As Integerpopup a select filter dialog and set display property filterSelectAllunselectallMsg = 1:请使用鼠标点击确定按钮,不要直接使 & (Chr(13) & _ 用ENTER,因为此时焦点可能不再该窗口上 & (Chr(13) & (Chr(13) & _2:确定后开始调整Part ref和value的位置,这 & (Chr(13) & _ 可能要花费较长的时间,请耐心等候.Response = MsgBox(Msg, 48, 警告)MsgBox(开始调整Part ref和value的位置,这可能要花费较长的时间,请耐心等候)SendKeys %vfaTAB 8,TrueSendKeys %vfaUP 8 ENTER, True unselectallOpen TxtFileName For Input As #1Get File header informationIf (Not EOF(1) Then Line Input #1, FileData FileData = LCase(FileData) MsgBox(FileData) If (Not (Len(FileData) 0) Then MsgBox (1:文件格式错误或文件不存在) Exit Sub End If nTabNameBegin = InStr(1, FileData, Chr$(9) & name & Chr$(9), 1) If nTabNameBegin = 0 Then MsgBox (2:文件格式错误或文件不存在) Exit Sub End If FileData = Left(FileData, nTabNameBegin - 1) TmpCnt = InStr(1, FileData, Chr$(9), 1) Do While (TmpCnt 0 And TmpCnt Len(FileData) nTabNum = nTabNum + 1 TmpCnt = InStr(TmpCnt + 1, FileData, Chr$(9), 1) LoopEnd IfDo While Not EOF(1) TmpCnt = 1 K = nTabNum + 1 Line Input #1, FileData Do While (K) nPreTab = InStr(TmpCnt, FileData, Chr$(9), 1) TmpCnt = nPreTab + 1 MsgBox(Str$(NTabNum)&: & Str$(nPreTab) K = K - 1 Loop nEndTab = InStr(TmpCnt, FileData, Chr$(9), 1) partName = Mid(FileData, nPreTab + 1, Abs(nEndTab - nPreTab - 1) MsgBox(Str$(nPreTab)&: & Str$(nEndTab) & : & partName ) Findparts partName, False GetProperty Rotation, PartRotation GetProperty Part Reference, PartRef The following for Resistor If (Left$(PartRef, 1) = R) Or (Left$(PartRef, 1) = r) Or (Left$(PartRef, 1) = L) Or (Left$(PartRef, 1) = l) Then DisplayProperty Value, Arial, 9, False, False, 48, 0 SelectBlock 0#, 0#, 0.1, 0.1, False GetProperty Rotation , PartRotation If (Left$(PartRotation, 3) = 0 Or Left$(PartRotation, 3) = 180) Then Drag 0.12, 0.3, False Else Drag 0.3, 0#, False End If Setfont Arial, 1, False, False Findparts partName, False DisplayProperty Part Reference, Arial, 9, False, False, 48, 0 SelectBlock 0#, 0#, 0.1, 0.1, False GetProperty Rotation , PartRotation If (Left$(PartRotation, 3) = 0 Or Left$(PartRotation, 3) = 180) Then Drag 0.12, -0.1, False Else Drag -0.1, 0#, False End If Setfont Arial, 1, False, False The following for Capacity ElseIf (Left$(PartRef, 1) = C) Or (Left$(PartRef, 1) = c) Then DisplayProperty Value, Arial, 9, False, False, 48, 0 SelectBlock 0#, 0#, 0.1, 0.1, False GetProperty Rotation , PartRotation If (Left$(PartRotation, 3) = 0 Or Left$(PartRotation, 3) = 180) Then Drag 0.12, 0.1, False Else Drag 0.12, 0#, False End If Setfont Arial, 1, False, False Findparts partName, False DisplayProperty Part Reference, Arial, 9, False, False, 48, 0 SelectBlock 0#, 0#, 0.1, 0.1, False GetProperty Rotation , PartRotation If (Left$(PartRotation, 3) = 0 Or Left$(PartRotation, 3) = 180) Then Drag 0.12, -0.1, False Else Drag -0.2, 0#, False End If Setfont Arial, 1, False, False The following for ot
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五、2025年兽医药理学新增试题
- 工勤考试收银审核员(高级技师)考试题(含答案)
- 2025年太原货运从业资格证模拟考试题库及答案
- 下半年湖南省工程测量员技师考试试题
- 2023年揭阳市国企招聘考试真题题库
- 2025霍州市国企招聘考试真题
- 2025年安全员B证考试试卷附参考答案详解(精练)
- 2025道路交通安全知识考试试题
- 公务员考之行测判断推理技巧含答案和详细解析
- 公务员考试:公共基础知识题库
- 外科急腹症手术护理
- 电力公司法制讲座课件
- 雨课堂学堂云在线《亲密关系解密-知行与易径(多伦多大学 )》单元测试考核答案
- 2025年大学《健康服务与管理-预防医学基础》考试模拟试题及答案解析
- 2025网络设备供应合同模板
- 2025经导管主动脉瓣置换术后监护治疗规范课件
- 解读慢性阻塞性肺病(GOLD)指南(2026)更新要点课件
- 2025-2026学年江苏省淮安市苏教版三年级上册期中数学试卷1【含答案】
- 2025浙江绍兴北站站区综合管理服务中心招聘辅助人员92人笔试考试参考试题附答案解析
- 国企通讯员培训
- 马来西亚金融体系概览
评论
0/150
提交评论