function Shift(name, from, to, shift) { var result = ""; // Need to start up Schematic Server first. Client.StartServer("SCH"); var workspace = GetWorkspace; if (workspace == null) return; var project = workspace.DM_FocusedProject; if (project == null) return; result += project.DM_ProjectFileName + "\n"; for (var i = 0; i < project.DM_LogicalDocumentCount - 1; i++) { // showmessage("Document " + i + " from " + project.DM_LogicalDocumentCount); var document = project.DM_LogicalDocuments(i); if (document.DM_DocumentKind != 'SCH') continue; var schDoc = SCHServer.GetSchDocumentByPath(document.DM_FullPath); if (schDoc == null) continue; var iterator = schDoc.SchIterator_Create; if (iterator == null) continue; iterator.AddFilter_ObjectSet(MkSet(eSchComponent)); var component = iterator.FirstSchObject; result += "\n" + document.DM_FileName + ":\n"; while (component != null) { var reg = new RegExp("^" + name + "[0-9]+"); var designator = component.Designator.Text; if (reg.test(designator)) { var strIndex = designator.substring(name.length, designator.length); var index = parseInt(strIndex) if (index >= from) { if (to == -1 || index <= to) { SchServer.RobotManager.SendMessage(component.I_ObjectAddress, c_BroadCast, SCHM_BeginModify, c_NoEventData); index += shift; var newDesignator = (name + index.toString()); component.Designator.Text = newDesignator; result += designator + " -> " + newDesignator + "\n"; SchServer.RobotManager.SendMessage(component.I_ObjectAddress, c_BroadCast, SCHM_EndModify , c_NoEventData); } } } component = iterator.NextSchObject; } schDoc.SchIterator_Destroy(iterator); } showmessage(result); } var name = 'C' var from = 36 var to = 58 var shift = 10; Shift(name, from, to, shift);