Published on Online Documentation for Altium Products (

Size: px
Start display at page:

Download "Published on Online Documentation for Altium Products (http://www.altium.com/documentation)"

Transcription

1 Published on Online Documentation for Altium Products ( Home > Delphi SDK How-to FAQ A New Era for Documentation Modified on Nov 15, 2016 Use the following links to browse through frequently asked questions relevant to coding Altium Designer's SDK. For more detailed information on the SDK API, refer to the Altium Designer SDK Reference. System What are the System Requirements for the Altium Designer SDK? To develop software Extensions for Altium Designer using the Altium SDK, you need to have Embarcadero Delphi XE2 or later, the SDK and Altium Designer 13 or later. You can use any recent Delphi edition to build Altium Designer software Extensions; Embarcadero Delphi Starter edition (a low cost option), Professional edition, Enterprise, Architect and the Ultimate edition all work fine with the Altium SDK. The Altium Designer SDK itself is composed of three main APIs; the DXP - a set of Electronic Data Platform API units, the PCB Editor API and the Schematic API. Note, each API has a set of source code units in Delphi / Object Pascal. Not that Altium is developing a C++ version of the SDK and expects this to be available for release in early FY2014. Permissions With the standard Altium SDK installation on Windows 7, the Embarcadero Delphi application may not be able to write directly to the SDK s \Examples folder, or to Altium Designer's \System folder. The system's default Folder/User Permissions are the issue. Windows' folder and user permissions could be modified to suit, but the simplest way to work around this is to manually copy the created DLLs and drop them in Altium Designer s System folder, along with the extension project's configuration files, such as INS and RCS files. See the Setting up your Server Project section in the Getting started: Building a Delphi extension document for more information. DXP Platform Can I save a Schematic document in another file format using SDK? Yes. The available document formats are: Ascii, Orcad, Template, Binary, standard schematic binary, AutoCad DXF and AutoCad DWG for schematic documents. Note, the three strings, Template, Binary, and a blank string, represent the same Altium Designer Schematic Design format.

2 Code snippet: doc := Client.GetDocumentByPath(ProjectDoc.DM_FullPath); doc.setmodified(true); doc.dofilesave(documentkind); To save the document into another format, you need to set the documentkind parameter to one of the following format strings: 'ASCII' 'ORCAD' 'TEMPLATE' 'BINARY' 'AUTOCAD DXF' 'AUTOCAD DWG' - ASCII format - ORCAD format - standard binary format - DXF format - DWG format Is it possible to determine if the project is compiled and whether the compilation is up to date? For many operations the project needs to be compiled. Without knowing if the project is compiled and wasn t modified since then, all you can do is compile the project blindly each time before accessing the data. There is a way to avoid this unnecessary compilation. You can use the DM_NeedsCompile method from the IProject object interface ( EDPInterfaces unit) to determine whether the project needs compiling or not. The declaration of this function from the IProject interface is: Function IProject.DM_NeedsCompile : LongBool; Can a server module only be created in the PluginFactory function (as in the SDK samples)? Is there is any other way? When does Altium Designer call the PluginFactory function? During launch or during a plugin command call from the Altium plugin panel? You can create your server module anywhere, for example during loading the dll module (in the Initialization clause). The Altium Designer application calls the PluginFactory function right after loading the Dynamic Linked Library file (DLL). In this case the PluginFactory function in the Main unit is the best place for creating your server module. Usually Altium Designer loads a specified server module (calls the PluginFactory function) when it has to launch a command related to this server module. But you can set the "SystemExtension = True" clause in your extension server installation file within the Server End block. In this case, Altium Designer will load your server module on startup automatically. Server EditorName = SystemExtension = True End Can projects from older versions be updated to Altium Designer 13.1? All of the compatibility issues are concerned with the main unit of a server project prior to Altium Designer, such as DXP Service Pack 2. Certain keywords such as stdcall, NewDocumentInstance, AddCommand methods all need replacing. The main unit of the server project needs revising with the following items:

3 Replace AddCommand procedure with RegisterCommand procedure Comments: Replace AddCommand method with RegisterCommand for the CommandLauncher as an aggregate class of the TServerModule class. The AddCommand method doesnt exist in Altium Designer. Use RegisterCommand method instead to store a declared command (process) in the server table in Altium Designer. Replace Stdcall with SafeCall; Comments: This safecall keyword is used in the COM world and is better protected against failures of importing functions across a boundary such as an EXE to a DLL. Replace PChar with WideString methods. Comments: The NewDocumentInstance method of a TServerModule has its parameter signature changed slightly. Ie replace PChars with WideStrings. How do I execute other processes from my extension? The MessageRouter_SendCommandToModule function in EDPUtil unit, allows your extension server to run a process from other server. The parameters for this function are Process, Parameters, EditorWindow. The target window handle specifies the window handle of the target document object for the process to run on. If there is no document supported by the server this parameter should be set to Nil. This function automatically starts the target server if the server is not already started. Processes can return results using the Parameters parameter. For example the "Client:RunCommonDialog" process runs a dialog and then returns the result through this parameter. Example of invoking a Schematic s Zoom Process: Procedure ZoomToDoc; Var Parameters : WideString; Begin SetState_Parameter(Parameters, 'Action', 'Document'); MessageRouter_SendCommandToModule('SCH:Zoom', Parameters, MessageRouter_GetState_CurrentEditorWindow); End; The string 'Action=Document' is assigned to the Parameters parameter and then it is passed in the process string SCH:ZOOM and the zoom command is executed on a current schematic document. A PCB example: CommandLauncher.LaunchCommand('PCB:Zoom', 'Action=Redraw', Client.CurrentView); How do I add a new Delphi form into my extension Project? By default, Delphi automatically creates the application's main form in memory by including the following code in the application's project source unit: Application.Create(TForm1,Form1); These projects are compiled as EXE (executable) files. However server projects are complied as DLLs files thus, the main forms are not auto created at run time. You will have to create the forms dynamically. The procedure to attach a dialog form to your server project is as follows: 1. Click File» New» VCL form from Delphi and a form is then generated in your server library module (in the project file), and adds the Form clause in the library source's Uses clause. 2. Make sure the unit associated with the new form is in focus. Add the appropriate Altium Designer APIs for example EDPClasses to the Uses directive for this new unit.

4 3. The next step is to create the dialog at run time (whenever a process is invoked and display the dialog). The processes defined in the commands.pas unit of a server project is the starting point, and inside each process could lead to a function being called from another unit part of this server project, and you need to implement the following code snippet to activate the form. Creation of a dialog example in the commands.pas unit Procedure Command_ProcessA(View : IServerDocumentView; Parameters : WideString); Begin MyDialog := TMyDialog.Create(Application); MyDialog.ShowModal; MyDialog.Free; End; To obtain the application handle of Altium Designer so that the dialog's owner handle belongs to Altium Designer, you would need to set the Client.ApplicationHandle to the Application.Handle in the ServerFactory function in the main unit of the server project. This dialog will thus adopt Altium Designer's icon and only one same icon appears on the tasking bar. The PlugInFactory function example Function PlugInFactory (AClient : IClient) : IServerModule; Begin Result := TCustomizedServerModule.Create(AClient, 'CustomServer'); Application.Handle := Client.ApplicationHandle; End; How do I open a document using a specific path? Use the OpenDocument and ShowDocument methods of the IClient interface, or the DM_GetDocumentFromPath method from the IWorkspace interface (from the EDPInterfaces unit) _Client := Client; If _Client = Nil Then Exit; Kind := Client.GetDocumentKindFromDocumentPath(FileName); ServerDocument := Client.OpenDocument(Kind,FileName); If ServerDocument <> Nil Then Client.ShowDocument(ServerDocument) WorkSpace := GetWorkspace; //IWorkSpace interface If WorkSpace = Nil then Exit; //FullPath is a string containing the full path to the document. Document := WorkSpace.DM_GetDocumentFromPath(FullPath); //IDocument interface Kind := Client.GetDocumentKindFromDocumentPath(FileName); ServerDocument := Client.OpenDocument(Kind,FileName); If ServerDocument <> Nil Then Client.ShowDocument(ServerDocument) How do I close a document in Altium Designer programmatically? Use the CloseDocument method from the IClient interface. You need to pass in the document parameter of a IServerDocument type. Code snipet: _Client := Client; If _Client = Nil Then Exit; //ADocument is of IServerDocument type. _Client.CloseDocument(ADocument);

5 How do I fetch an active Document? To fetch an active document of a loaded project in Altium Designer, you need to use the DM_FocusedDocument method from the IWorkSpace interface (EDPInterfaces unit). WorkSpace := GetWorkspace; //IWorkSpace interface If WorkSpace = Nil then Exit; Document := WorkSpace.DM_FocusedDocument; //IDocument interface How do I set my document to be the focused or active document? Use the SetFocus method from the IServerDocumentView interface (EDPInterfaces unit) or Focus method from the IServerDocument interface. Note that a document (of IServerDocument type) can have several document views, and in this case, the IServerDocument has a View property which is an indexed list of IServerDocumentViews. You will need to iterate to get the specific document view before you can apply the SetFocus method. WorkSpace := GetWorkspace; //IWorkSpace interface If WorkSpace = Nil then Exit; Document := WorkSpace.DM_FocusedDocument; //Grab the focused IDocument object Document.Focus; // focus this document. How do I check the active Document s type (document kind)? Use the Client object and invoke the currentview method to get the document type (kind) for the active document (from EDPClasses Unit). Code Snippet 1 - Using the Client interface: _Client := Client; If _Client = Nil Then Exit; //Check if a schematic document exists or not. CurrentView := _Client.CurrentView; // IServerDocumentView OwnerDocument := CurrentView.OwnerDocument; // IServerDocument If OwnerDocument.Kind = 'SCH' Then ShowMessage('A Schematic document'); OR Code Snippet 2 - Using the Workspace interface: WorkSpace := GetWorkspace; //IWorkSpace interface If WorkSpace = Nil then Exit; Doc := WorkSpace.DM_FocusedDocument; If Doc.DM_DocumentKind = 'SCH' Then ShowMessage('A Schematic document'); How do I get the active Project? You need the workspace object first, and then invoke the DM_FocusedProject method to get the active project. The GetWorkspace function is from the EDPUtil unit. The IWorkspace interface is from the EDPInterfaces unit.

6 WorkSpace := GetWorkspace; //workspace is a IWorkSpace interface If WorkSpace = Nil then Exit; FocusedProject := WorkSpace.DM_FocusedProject; //FocusedProject = IProject interface How do I iterate documents in active Project? You need the DM_FocusedProject method from the IWorkspace interface (from the EDPInterfaces Unit ) to fetch the active / focused project. WorkSpace := GetWorkspace; //IWorkSpace interface If WorkSpace = Nil then Exit; Project := WorkSpace.DM_FocusedProject; //IProject interface For K := 0 To Project.DM_PhysicalDocumentCount - 1 Do Begin Document := Project.DM_PhysicalDocuments(K); S := Document.DM_FullPath; //s is the full filename of the document. End; How do I iterate logical documents of a Project? You need the DM_LogicalDocuments method from the IProject interface (from EDPInterfaces unit) to look for logical documents of a project. WorkSpace := GetWorkspace; //IWorkSpace interface If WorkSpace = Nil then Exit; Project := WorkSpace.DM_FocusedProject; //IProject interface For K := 0 To Project.DM_LogicalDocumentCount - 1 Do Begin LogicalDocument := Project.DM_LogicalDocuments(K); //IDocument End; How do I add/delete a document to/from a Project? Workspace manager functions: DM_AddSourceDocument DM_RemoveSourceDocument How do I compile a Project in Altium Designer? Use the DM_Compile method from the IProject interface to do a compile of a project. WorkSpace := GetWorkspace; If WorkSpace = Nil then Exit; Project := WorkSpace.DM_FocusedProject; If Project = Nil Then Exit; If Project.DM_NeedsCompile Then Project.DM_Compile; Output Jobs How can I configure and execute outputs in OutputJob documents? To get the OutputJob documents from the project you need to iterate all logical documents and find the document containing DocumentKind equal to "OUTPUTJOB".

7 Follow these steps to execute OutputJob from the SDK: Find OutputJob file in the project (iterating through the logical documents). Open this file and make it active. Run the command depending on the "output container" you want to use. Procedure Command_PrintOutputJobPDF(View : IServerDocumentView; Parameters : WideString); Var WorkSpace : IWorkspace; Project : IProject; FileName : String; Process : String; ProjectDoc : IDocument; ServerDoc : IServerDocument; i : Integer; Begin WorkSpace := GetWorkspace; If WorkSpace = Nil then Exit; Project := WorkSpace.DM_FocusedProject; If Project = Nil Then Exit; If Project.DM_NeedsCompile Then Project.DM_Compile; For I := 0 To Project.DM_LogicalDocumentCount - 1 Do Begin ProjectDoc := Project.DM_LogicalDocuments(i); If ProjectDoc <> Nil Then Begin If ProjectDoc.DM_DocumentKind = 'OUTPUTJOB' Then Begin FileName := ProjectDoc.DM_FullPath; ServerDoc := Client.OpenDocument('OUTPUTJOB',FileName); If ServerDoc <> Nil Then Begin Client.ShowDocument(ServerDoc); //Process := 'WorkspaceManager:Print'; //Parameters := 'Action=PrintDocument ObjectKind=OutputBatch'; Process := 'WorkspaceManager:Print'; Parameters := 'Action=PublishToPDF DisableDialog=True ObjectKind=OutputBatch'; //Process := 'WorkspaceManager:Print'; //Parameters := 'Action=PublishMultimedia DisableDialog=True ObjectKind=OutputBatch'; //Process := 'WorkspaceManager:GenerateReport'; //Parameters := 'Action=Run ObjectKind=OutputBatch'; RunCommand(Process, Parameters); End; Exit; End; End; End; End; PCB What is the standard method of modifying PCB primitives? What should I use instead of PCBServer.SendMessageToRobots? Code: procedure UpdateTrackFromObject(aObj: TOutlineObject; atrack: IPCB_Track); begin PCBServer.PreProcess; //PCBServer.SendMessageToRobots(aTrack.I_ObjectAddress, c_broadcast, PCBM_BeginModify, c_noeventdata); try at.x1 := round(aobj.x1); at.y1 := round(aobj.y1); at.x2 := round(aobj.x2); at.y2 := round(aobj.y2); finally //PCBServer.SendMessageToRobots(aTrack.I_ObjectAddress, c_broadcast, PCBM_EndModify, c_noeventdata); PCBServer.PostProcess; end; end; To do this, you should use the following code: Procedure UpdateTrackFromObject(aObj: TOutlineObject; atrack: IPCB_Track); Var Board : IPCB_Board; _PCBServer : IPCB_ServerInterface; begin _PCBServer := PCBServer; If _PCBServer = Nil Then Exit; Board := _PCBServer.GetCurrentPCBBoard; If Board = Nil Then Exit; _PCBServer.PreProcess; Board.DispatchMessage(aTrack, c_broadcast, PCBM_BeginModify, c_noeventdata); try at.x1 := round(aobj.x1); at.y1 := round(aobj.y1); at.x2 := round(aobj.x2); at.y2 := round(aobj.y2); finally

8 Board.DispatchMessage(aTrack, c_broadcast, PCBM_EndModify, c_noeventdata); _PCBServer.PostProcess; end; end; How do I get the active PCB board? To get the handle of the PCB Board, you need to invoke the PCBServer function and then invoke the GetCurrentPCBBoard method from the PCBServer object; Var Server : IPCB_ServerInterface; PcbBoard : IPCB_Board; Begin Server := PCBServer; PcbBoard := Server.GetCurrentPCBBoard;... End; How do I iterate PCB objects? To iterate PCB objects on a PCB document, you need to fetch the PCB document first, and then set up an iterator with initial conditions (such as layers, object types the iteration method) and then run the iteration process until there are no more objects to be found. How do I iterate specific PCB objects? To iterate for specific PCB objects, you need to set the Object Set filter of the object iterator with a PCB type. Var ObjectHandle : IPCB_Primitive; IteratorHandle : IPCB_BoardIterator; Server : IPCB_ServerInterface; Begin Server := PCBServer; PcbBoard := Server.GetCurrentPCBBoard; IteratorHandle := PcbBoard.BoardIterator_Create; IteratorHandle.AddFilter_ObjectSet([eNetObject]); IteratorHandle.AddFilter_LayerSet(AllLayers); IteratorHandle.AddFilter_Method(eProcessAll); ObjectHandle := IteratorHandle.FirstPCBObject; While ObjectHandle <> Nil Do Begin ObjectHandle.Index := 0; ObjectHandle := IteratorHandle.NextPCBObject; End; PcbBoard.BoardIterator_Destroy(IteratorHandle); End; Another example that looks for pad objects. Iterator := Board.BoardIterator_Create; Iterator.AddFilter_ObjectSet([ePadObject]); Iterator.AddFilter_LayerSet_2(cAllLayers); Iterator.AddFilter_Method(eProcessAll); // search and count pads Pad := Iterator.FirstPCBObject; While (Pad <> Nil) Do Begin PadNumber := PadNumber + 1; Pad := Iterator.NextPCBObject; End; Board.BoardIterator_Destroy(Iterator); How do I get selected PCB objects? You can invoke the Selected property of a PCB design object and get or set the selected boolean value. All PCB objects object interfaces are inherited from the IPCB_Primitive interface. How do I update a PCB object? When you modify the attributes of a PCB object, you need to invoke the PCB board s DispatchMessage

9 methods to refresh the PCB object. This is a two step process with PCBM_BeginModify parameter for the DispatchMessage method before the object is being changed and then another DispatchMessage call with the PCBM_EndModify parameter. Code Snippet Board.DispatchMessage(Component, c_broadcast, PCBM_BeginModify, c_noeventdata); If OriginalHeight <> C Then Begin Component.Height := C; CommandLauncher.LaunchCommand('PCB:Zoom', 'Action=Redraw', 255, Client.CurrentView); End; Board.DispatchMessage(Component, c_broadcast, PCBM_EndModify, c_noeventdata); How do I add a new PCB object to the PCB document? You use the PCBObjectFactory method from the PCBServer object to create a new PCB object and add it to the PCB document. To create a track object, you need to specify whether it is used as a dimension or not. The declaration for this PCBObjectFactory method is as follows; Function PCBObjectFactory(Const AObjectId : EDPTypes_PCB.TObjectId; Const ADimensionKind : TDimensionKind; Const ACreationMode : TObjectCreationMode) : IPCB_Primitive; The parameters, AObjectID represents the actual design object, ADimensionKind (basically for tracks and arcs) and ACreationMode which is ecreate_default by default. An example of creating an arc object; _PCBServer := PCBServer; If _PCBServer = Nil Then Exit; PCB_Board := _PCBServer.GetCurrentPCBBoard; If PCB_Board = Nil Then Exit; _PCBServer.PreProcess; // Current segment is an arc; create an Arc object. IPrimitive := _PCBServer.PCBObjectFactory(eArcObject,eNoDimension,eCreate_Default); If IPrimitive = Nil Then Exit; Arc := IPCB_Arc(IPrimitive); Arc.XCenter := SegmentI.cx; Arc.YCenter := SegmentI.cy; Arc.Layer := ALayer; Arc.LineWidth := AWidth; Arc.Radius := SegmentI.Radius; Arc.StartAngle := SegmentI.Angle1; Arc.EndAngle := SegmentI.Angle2; PCB_Board.AddPCBObject(Arc); _PCBServer.PostProcess; Schematic How do I add a new Parameter to a Schematic document? Is it possible to make this Parameter non-visible to the end user (so having some kind of an internal property), or at least make it read-only (and writable only through SDK or several 'clicks' so that a user does not change or delete it by mistake)? You can manage parameters for Schematic document but you can't set a parameter as hidden or read-only. Here is an example of how to iterate them and add a new parameter: Procedure Command_SCHDocParameters(View : IServerDocumentView; Parameters : WideString); Var _SCHServer : ISch_ServerInterface; RobotManager :

10 ISch_RobotManager; WorkSpace : IWorkspace; Project : IProject; FileName : String; ParamName : String; ParamValue : String; ProjectDoc : IDocument; Sch_Doc : ISch_Document; Sch_Sheet : ISch_Sheet; Iterator : ISch_Iterator; SchParameter : ISch_Parameter; SchParameter1: ISch_Parameter; Container : ISch_BasicContainer; Container1 : ISch_BasicContainer; i : Integer; Begin WorkSpace := GetWorkspace; If WorkSpace = Nil then Exit; _SCHServer := SCHServer; If _SCHServer = Nil Then Exit; RobotManager := _SCHServer.RobotManager; If RobotManager = Nil Then Exit; ProjectDoc := WorkSpace.DM_FocusedDocument; If ProjectDoc <> Nil Then Begin If ProjectDoc.DM_DocumentKind = 'SCH' Then Begin FileName := ProjectDoc.DM_FullPath; Sch_Doc := _SCHServer.GetSchDocumentByPath(FileName); If Sch_Doc <> Nil Then Begin Sch_Sheet := ISch_Sheet(Sch_Doc); // Iterating for existing parameter objects. Iterator := Sch_Sheet.SchIterator_Create; Iterator.SetState_IterationDepth(eIterateFirstLevel); Iterator.AddFilter_ObjectSet([eParameter]); Container := Iterator.FirstSchObject; While Container <> Nil Do Begin SchParameter := ISch_Parameter(Container); ParamName := SchParameter.Name; ParamValue := SchParameter.GetState_Text; Container := Iterator.NextSchObject; End; Sch_Sheet.SchIterator_Destroy(Iterator); // Add a new parameter object and put it on the sheet RobotManager.SendMessage(c_FromSystem, c_broadcast, SCHM_SystemInvalid, c_noeventdata); Container1 := _SCHServer.SchObjectFactory(eParameter, ecreate_default); SchParameter1 := ISch_Parameter(Container1); SchParameter1.Name := 'TestParam'; SchParameter1.SetState_Text('TestValue'); Sch_Sheet.AddSchObject(SchParameter1); RobotManager.SendMessage(c_FromSystem, c_broadcast, SCHM_SystemValid, c_noeventdata); End; End; End; End; How do I get an active schematic sheet? Schematic sheets are part of a project, so to have access to a sheet, you need to fetch the workspace and the schematic server handles. The workspace manager object gives you the ability to find the focused document and then check the document type. Once it is a schematic document type, you can then proceed to add, delete or update schematic objects. WorkSpace := GetWorkspace; If WorkSpace = Nil then Exit; _SCHServer := SCHServer; If _SCHServer = Nil Then Exit; ProjectDoc := WorkSpace.DM_FocusedDocument; If ProjectDoc <> Nil Then Begin If ProjectDoc.DM_DocumentKind = 'SCH' Then Begin FileName := ProjectDoc.DM_FullPath; Sch_Doc := _SCHServer.GetSchDocumentByPath(FileName); If Sch_Doc <> Nil Then Begin Sch_Sheet := ISch_Sheet(Sch_Doc); //this is the focused sheet End; End; End; How do I iterate schematic objects? To iterate Schematic objects on a Schematic document, you need to fetch the Schematic document first, and then set up an iterator with initial conditions (such as object types and the iteration method) and then run the iteration process until there are no more objects to be found. Note with iterators, it is possible to look for parent objects only or parents and their child objects on a schematic document. How do I iterate specific schematic objects? You set up an interator object invoked from the schematic sheet object, set the iteration depth,

11 specify the object types before starting the iteration. Code Snippet // Iterating for existing parameter objects. Iterator := Sch_Sheet.SchIterator_Create; Iterator.SetState_IterationDepth(eIterateFirstLevel); Iterator.AddFilter_ObjectSet([eParameter]); Container := Iterator.FirstSchObject; While Container <> Nil Do Begin SchParameter := ISch_Parameter(Container); ParamName := SchParameter.Name; ParamValue := SchParameter.GetState_Text; Container := Iterator.NextSchObject; End; Sch_Sheet.SchIterator_Destroy(Iterator); How do I get selected schematic object? You can invoke the Selection property of a Schematic design object and Get or Set the selected boolean value. Schematic objects object interfaces are inherited from the ISch_GraphicalObject interface. How do I iterate/update/add parameters to schematic object/document? Code: Procedure Command_SCHDocParameters(View : IServerDocumentView; Parameters : WideString); Var _SCHServer : ISch_ServerInterface; RobotManager : ISch_RobotManager; WorkSpace : IWorkspace; Project : IProject; FileName : String; ParamName : String; ParamValue : String; ProjectDoc : IDocument; Sch_Doc : ISch_Document; Sch_Sheet : ISch_Sheet; Iterator : ISch_Iterator; SchParameter : ISch_Parameter; SchParameter1: ISch_Parameter; Container : ISch_BasicContainer; Container1 : ISch_BasicContainer; i : Integer; Begin WorkSpace := GetWorkspace; If WorkSpace = Nil then Exit; _SCHServer := SCHServer; If _SCHServer = Nil Then Exit; RobotManager := _SCHServer.RobotManager; If RobotManager = Nil Then Exit; ProjectDoc := WorkSpace.DM_FocusedDocument; If ProjectDoc <> Nil Then Begin If ProjectDoc.DM_DocumentKind = 'SCH' Then Begin FileName := ProjectDoc.DM_FullPath; Sch_Doc := _SCHServer.GetSchDocumentByPath(FileName); If Sch_Doc <> Nil Then Begin Sch_Sheet := ISch_Sheet(Sch_Doc); // Add a new parameter object and put it on the sheet RobotManager.SendMessage(c_FromSystem, c_broadcast, SCHM_SystemInvalid, c_noeventdata); Container1 := _SCHServer.SchObjectFactory(eParameter, ecreate_default); SchParameter1 := ISch_Parameter(Container1); SchParameter1.Name := 'TestParam'; SchParameter1.SetState_Text('TestValue'); Sch_Sheet.AddSchObject(SchParameter1); RobotManager.SendMessage(c_FromSystem, c_broadcast, SCHM_SystemValid, c_noeventdata); End; End; End; End; Graphical User Interface of Altium Designer How do I create menu items in an existing menu and assign my code to be executed? You need to assign your extension server's process launchers to the new menu items in a target s menu (the target can be the PCB or the Schematic Editor for example). You need to do three things:

12 1. You need to update the resources file (with the RCS file extension) with the Insertion End blocks. 2. Insert the Updates clause with the name of the target editor (for example the PCB editor has a AdvPCB name) in the project's installation file (with the INS file extension). 3. Insert the name of your extension server in the ResourceDependencies block of the target editor installation file (the PCB or the Schematic editor s installation file). To do this, you need to know the Target ID and Resource reference ID values that indicate where the new menu items should appear in the editor s menu. These TargetID and RefID0 identifiers can be referenced from the editor s RCS file in the Altium Designer s system folder, for example the PCB editor s AdvPCB.rcs file. The Process Launcher Tree section in the resources file (with a RCS file extension) defines where the menu items containing the process launchers are going to be attached to in a specific menu. How do I add my menu item to PCB menu? You need to update the project resources file (with the RCS file extension) with the Insertion End blocks. Insert the Updates clause with the AdvPCB name within the Server End block in the installation file (with the INS file extension). Insert the name of your extension project in the ResourceDependencies block in the AdvPCB.ins resources file. A snippet of a plugin s installation file: Server EditorName = 'AddOn' EditorExePath = 'AddOn.DLL' EditorDescription = 'Demonstratory AddOn module' Version = 'Version ' Date = '29- Dec-2012' HelpAboutInfo = 'This software is protected by copyright law and international treaties.' Copyright = 'Copyright Altium Limited 2012' Updates = 'ADVPCB' End A snippet of the AdvPCB installation file: Server EditorName = 'PCB' EditorExePath = 'ADVPCB.DLL' EditorDescription = 'Altium Designer PCB Editor' Version = 'Version ' Date = '03- May-2013' HelpAboutInfo = 'This software is protected by copyright law and international treaties.' Copyright = 'Copyright c Altium Limited 2013' SupportsDDB = True ResourceDependencies 'AutoPlacer' 'CompMake' 'HSEdit' 'LayerStackupAnalyzer' 'Macro' 'MakeLib' 'PCB3D' 'PCBMaker' 'PCBMiter' 'Placer' 'SignalIntegrity' 'HelpAdvisor' 'OrcadLayoutImporter' 'SavePCADPCB' 'AutoPlacer' 'PinSwapper' 'YourPlugInName' End End How do I create a button and assign this to my extension s command (process launcher)? You would need images for such buttons and these bitmaps in 18x18 pixels in size. Copy the button files (with a BMP file extension) into the Altium Designer s installation..\system\buttons folder. These files are used for the images beside the menu items in a menu of the editor as well as the buttons of a toolbar.

13 How do I create my own panel? To add and manage global panel views in your server, you need to build a panel manager object and define its corresponding object interface. This object will manage the global panel. This panel manager object is also exposed as an interface so it can be used in the TServerModule object which represents the Extension. You will need the Delphi form that represents this panel, and the panel is encapsulated as a private field in the panel manager object as well as in the TServerModule object. To build a global panel view, the global panel view needs to be inherited from the TServerPanelView class, and the global panel form needs to be inherited from the TServerPanelForm class. The three fields need to be added in the TServerModule class; The panel form (TServerPanelForm) The panel view (TServerPanelView) The panel manager (a standalone class and its interface representation with exposed methods). Two methods that are added in the TServermodule class; HandleNotification handler CreateServerViews method A property to add in the TServerModule class; Panel Manager property that represents the panel manager object TServerPanelForm Object In the TServerPanelForm constructor, the notification handler is registered with the client module and the self parameter is passed in. The destructor unregisters the notification handler. The HandleNotification method handles whether the panel is changing or not. TServerPanelView Object Normally a TServerPanelView object is a direct inheritance from this class and there is no need to add or override methods. These methods are done by the Client system of Altium Designer. The Panel manager Object There needs to be an interface representation of the manager within the Panel manager unit, so that the methods needed to manage the global panel are exposed to the system. The interface representation is defined in the manager class, and there is the panel form field as well as the interface methods. When the panel manager is created, the panel form is associated with this manager object so that the panel's form controls can be updated. TServerModule Object In the TServerModule constructor, where the server commands are registered, is where to create global panel views and panel managers. The register notification handler needs to be set up here as well. The CreateServerViews method will have the global panel form and the view created with this global panel form. The view is then added to the server module (TServerModule.AddView() method) as well as in the client (Client.AddServerView method). In the ServerModule destructor, the panel manager is set to nil and the notification handler un-registered.

14 Installation file The installation file needs to be updated with a new PanelInfo block to reflect the global panel. For example; PanelInfo Name = 'GraphicMessages' Category = 'Graphic' Bitmap = '' Hotkey = 'M' ButtonVisible = True CanDockVertical = True CanDockHorizontal = True End You can check out the Graphic Viewer example from the SDK folder. How do I add my panel to PCB panels? You need to do two things: Add a global panel in your extension project Add a PanelInfo End block in the PCB Editor installation file (advpcb.ins). Example, in the PCB editor s installation file (advpcb.ins); PanelInfo Name = 'BoardInSight' Category = '&PCB' Bitmap = '' Hotkey = '' ButtonVisible = True CanDockVertical = True CanDockHorizontal = True End How do I create my own editor for files of my type? You need to do two things to create your own editor to edit its own document types. 1. Server Module and its Documents in the Main.pas file

15 The main.pas unit is where the server document classes and the server module class are defined and implemented. The server processes are also defined and implemented in this unit, and a corresponding interfaces unit is defined and linked for these server processes. There is the ServerFactory function which is invoked (only once) by the Client module in Altium Designer when its associated graphic documents are being loaded. That is, the Graphic Viewer server is loaded in memory once. This main.pas unit deals with two classes - the TServerModule and the TServerDocument classes. The TServerModule class is inherited and expanded into the TGraphicViewerModule class. The TServerDocument is inherited and expanded into the TGraphicDocument class. The TServerDocument class implements the processes, controls the panels and views plus the file save and load methods. The processes are declared in the main.pas unit and the interfaces implemented in the commands.pas unit. See the GraphicViewer Main.pas file in \Examples\GraphicViewer\ folder of the SDK installation. 2. You need to specify the EditorWindowKind blocks in your editor s installation file. Each document kind is represented by this EditorWindowKind block. You will also need to specify the LoadFilters and SaveFilters sub-blocks within each EditorWindowKind block. You can check out the Graphic Viewer example from the SDK folder. Language English

16 Source URL:

Published on Online Documentation for Altium Products (https://www.altium.com/documentation)

Published on Online Documentation for Altium Products (https://www.altium.com/documentation) Published on Online Documentation for Altium Products (https://www.altium.com/documentation) Home > Delphi SDK How-to FAQ A New Era for Documentation Modified by Rob Evans on Feb 26, 2018 Browse through

More information

Using the Altium Designer RTL. Contents

Using the Altium Designer RTL. Contents Using the Altium Designer RTL Contents DXP Software Technology Platform An Editor Server provides Specialised Services Main Servers in Altium Designer How is Altium Designer RTL used in Scripts? A DelphiScript

More information

Using the PCB API. Using the PCB Editor Interfaces. Modified by Admin on Sep 13, Parent page: Using the Altium Designer API

Using the PCB API. Using the PCB Editor Interfaces. Modified by Admin on Sep 13, Parent page: Using the Altium Designer API Using the PCB API Old Content - visit altium.com/documentation Modified by Admin on Sep 13, 2017 Parent page: Using the Altium Designer API Using the PCB Editor Interfaces The PCB API allows a programmer

More information

The Schematic interfaces exposed by the Schematic editor refer to opened Schematic documents and the objects on them.

The Schematic interfaces exposed by the Schematic editor refer to opened Schematic documents and the objects on them. Using the Schematic API Old Content - visit altium.com/documentation Modified by on 15-Feb-2017 Parent page: Using the Altium Designer API Using the Schematic Editor Interfaces The Schematic API allows

More information

Schematic API Design Objects Interfaces. Summary. Schematic API Design Objects Interfaces. ISch_BasicContainer Interface

Schematic API Design Objects Interfaces. Summary. Schematic API Design Objects Interfaces. ISch_BasicContainer Interface Schematic API Design Objects Interfaces Schematic API Design Objects Interfaces Reference Summary Schematic API Design Objects Interfaces ISch_BasicContainer Interface Overview The ISch_BasicContainer

More information

Published on Online Documentation for Altium Products (

Published on Online Documentation for Altium Products ( Published on Online Documentation for Altium Products (https://www.altium.com/documentation) Home > Using Altium Documentation Modified on Nov 15, 2016 Overview This interface is the immediate ancestor

More information

The LaunchCommand method launches a process from the server that this ICommandLauncher interface function is associated with.

The LaunchCommand method launches a process from the server that this ICommandLauncher interface function is associated with. System API System Interfaces Old Content - visit altium.com/documentation Modified by Rob Evans on 15-Feb-2017 Parent page: Technical Reference - System API System API: System Interfaces Contents of this

More information

Workspace Manager API: Project Interfaces Reference

Workspace Manager API: Project Interfaces Reference WSM API Project Interfaces Old Content - visit altium.com/documentation Modified by Rob Evans on Feb 15, 2017 Parent page: Technical Reference - Workspace Manager API Workspace Manager API: Project Interfaces

More information

Published on Online Documentation for Altium Products (https://www.altium.com/documentation)

Published on Online Documentation for Altium Products (https://www.altium.com/documentation) Published on Online Documentation for Altium Products (https://www.altium.com/documentation) Home > Altium DXP Developer Using Altium Documentation Modified by Rob Evans on May 16, 2018 Reference information

More information

Integrated Library API Overview

Integrated Library API Overview Published on Online Documentation for Altium Products (http://www.altium.com/documentation) Home > Integrated Library API A New Era for Documentation Modified on Nov 15, 2016 Note: The Altium Designer

More information

The IPCB_Text Interface hierarchy is as follows; IPCB_Primitive IPCB_RectangularPrimitive IPCB_Text and so on.

The IPCB_Text Interface hierarchy is as follows; IPCB_Primitive IPCB_RectangularPrimitive IPCB_Text and so on. PCB API Design Objects Interfaces A PCB design object on a PCB document is represented by its interface. An interface represents an existing object in memory and its properties and methods can be invoked.

More information

A Tour of the Scripting System. Contents

A Tour of the Scripting System. Contents A Tour of the Scripting System Contents Features of the Scripting System Script Projects and Scripts Scripting Editor Scripting Panels Scripting Debugger Several Scripting Languages Application Programming

More information

Customizing the Altium Designer Resources

Customizing the Altium Designer Resources Customizing the Altium Designer Resources Summary This tutorial describes how to customize your Altium Designer resources, such as commands, menus, toolbars and shortcut keys. This tutorial describes how

More information

Published on Online Documentation for Altium Products (

Published on Online Documentation for Altium Products ( Published on Online Documentation for Altium Products (https://www.altium.com/documentation) Home > Using Altium Documentation Modified by Admin on Nov 15, 2016 Overview The represents the existing document

More information

The Workspace Manager API System Interfaces reference includes the following sections and content:

The Workspace Manager API System Interfaces reference includes the following sections and content: WSM API System Interfaces Old Content - visit altium.com/documentation Modified by on 13-Sep-2017 Parent page: Technical Reference - Workspace Manager API Workspace Manager API: System Interfaces The Workspace

More information

Moving to Altium Designer from Protel 99 SE. Contents

Moving to Altium Designer from Protel 99 SE. Contents Moving to Altium Designer from Protel 99 SE Contents Design Database Become a Design Workspace & Projects Importing a 99 SE Design Database Creating the Altium Designer Project(s) Manually Adding and Removing

More information

EDAConnect-Dashboard User s Guide Version 3.4.0

EDAConnect-Dashboard User s Guide Version 3.4.0 EDAConnect-Dashboard User s Guide Version 3.4.0 Oracle Part Number: E61758-02 Perception Software Company Confidential Copyright 2015 Perception Software All Rights Reserved This document contains information

More information

Schematic Editing Essentials

Schematic Editing Essentials Summary Application Note AP0109 (v2.0) March 24, 2005 This application note looks at the placement and editing of schematic objects in Altium Designer. This application note provides a general overview

More information

Moving to Altium Designer from Protel 99 SE

Moving to Altium Designer from Protel 99 SE Moving to Altium Designer from Protel 99 SE Summary This article outlines the process you go through to transfer a Protel 99 SE design into the Altium Designer environment. Protel 99 SE uses the design

More information

JScript Reference. Contents

JScript Reference. Contents JScript Reference Contents Exploring the JScript Language JScript Example Altium Designer and Borland Delphi Run Time Libraries Server Processes JScript Source Files PRJSCR, JS and DFM files About JScript

More information

Running Scripts in Altium Designer. Executing scripts. Script as a Command. Modified by on 13-Sep-2017

Running Scripts in Altium Designer. Executing scripts. Script as a Command. Modified by on 13-Sep-2017 Running Scripts in Altium Designer Old Content - visit altium.com/documentation Modified by on 13-Sep-2017 Related information Customizing the Altium Designer Resources Parent page: Scripting While the

More information

Altium Designer Viewer. Contents

Altium Designer Viewer. Contents Altium Designer Viewer Contents What You can do Key Features at-a-glance Supported Output Generation Viewer Environment Viewing Schematic Documents Viewing PCB Documents Searching Live Supplier Data Using

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.0 SP1.5 User Guide P/N 300 005 253 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6 SP1 User Guide P/N 300 005 253 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights

More information

Specifying the PCB Design Rules and Resolving Violations

Specifying the PCB Design Rules and Resolving Violations Specifying the PCB Design Rules and Resolving Violations Summary This article introduces the PCB Design Rules System, in particular how rules are created and applied to objects in a design. It also describes

More information

Published on Online Documentation for Altium Products (https://www.altium.com/documentation)

Published on Online Documentation for Altium Products (https://www.altium.com/documentation) Published on Online Documentation for Altium Products (https://www.altium.com/documentation) Home > Sheet Symbol Using Altium Documentation Modified by Susan Riege on Apr 11, 2017 Parent page: Schematic

More information

12d Synergy V4 Release Notes. 12d Synergy V4 Release Notes. Prerequisites. Upgrade Path. Check Outs. Scripts. Workspaces

12d Synergy V4 Release Notes. 12d Synergy V4 Release Notes. Prerequisites. Upgrade Path. Check Outs. Scripts. Workspaces 12d Synergy V4 Release Notes V4 contains a large number of features. Many of these features are listed in this document, but this list may not be exhaustive. This document also contains pre-requisites

More information

OLE and Server Process support. Overview of OLE support. What is an OLE object? Modified by on 13-Sep Parent page: EnableBasic

OLE and Server Process support. Overview of OLE support. What is an OLE object? Modified by on 13-Sep Parent page: EnableBasic OLE and Server Process support Old Content - visit altium.com/documentation Modified by on 13-Sep-2017 Parent page: EnableBasic Overview of OLE support Object linking and embedding (OLE) is a technology

More information

PCB API System Interfaces

PCB API System Interfaces PCB API System Interfaces This section covers the PCB API System Object Interfaces. System Object Interfaces IPCB_ServerInterface interface IPCB_Sheet interface IPCB_Library interface Layer Object Interfaces

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.5 SP2 User Guide P/N 300-009-462 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Copyright 2008 2009 EMC Corporation. All

More information

OutputJob Editor Reference

OutputJob Editor Reference OutputJob Editor Reference Summary This reference provides information on the OutputJob Editor which is used to configure various output types including Assembly Outputs, BOMs, Gerber, NC Drill, Netlists,

More information

USING THE Integrated Library to Database Library Translator WIZARD

USING THE Integrated Library to Database Library Translator WIZARD Published on Online Documentation for Altium Products (http://www.altium.com/documentation) Home > Integrated Library To Database Library Translator Wizard A New Era for Documentation Modified by Phil

More information

8.0 Help for Community Managers About Jive for Google Docs...4. System Requirements & Best Practices... 5

8.0 Help for Community Managers About Jive for Google Docs...4. System Requirements & Best Practices... 5 for Google Docs Contents 2 Contents 8.0 Help for Community Managers... 3 About Jive for Google Docs...4 System Requirements & Best Practices... 5 Administering Jive for Google Docs... 6 Understanding Permissions...6

More information

Using the Import Wizard

Using the Import Wizard Published on Online Documentation for Altium Products (https://www.altium.com/documentation) 主页 > Import Wizard Using Altium Documentation Modified by Phil Loughhead on Jun 18, 2017 The Import Wizard will

More information

Component Management in SOLIDWORKS PCB

Component Management in SOLIDWORKS PCB Component Management in SOLIDWORKS PCB Modified by Jason Howie on Oct 24, 2017 Parent page: Exploring SOLIDWORKS PCB A component is the general name given to a part that can be placed into an electronic

More information

For more detailed information on the differences between DelphiScript and Object Pascal, refer to the DelphiScript Reference document.

For more detailed information on the differences between DelphiScript and Object Pascal, refer to the DelphiScript Reference document. Writing Scripts Old Content - visit altium.com/documentation Modified by on 13-Sep-2017 Related pages Script Editor Tools Scripting System Panels Parent page: Scripting Writing Scripts There a number of

More information

Editing Multiple Objects. Contents

Editing Multiple Objects. Contents Editing Multiple Objects Contents Selecting Multiple Objects Inspecting the Objects Editing the Objects Editing Group Objects Step 1. Selecting the Capacitors Step 2. Changing the Comment String Step 3.

More information

Boot Camp-Special Ops Challenge Quiz

Boot Camp-Special Ops Challenge Quiz 1. What s the key difference between a panel and dialog window? a. There is none b. Panels must be closed in order to continue editing, whereas dialogs can be left open c. Dialogs must be closed in order

More information

Microsoft Visual Basic 2005: Reloaded

Microsoft Visual Basic 2005: Reloaded Microsoft Visual Basic 2005: Reloaded Second Edition Chapter 10 Creating Classes and Objects Objectives After studying this chapter, you should be able to: Define a class Instantiate an object from a class

More information

SCH Filter. Summary. Panel Access. Modified by Susan Riege on Jan 19, SCH Inspector. Parent page: Panels

SCH Filter. Summary. Panel Access. Modified by Susan Riege on Jan 19, SCH Inspector. Parent page: Panels SCH Filter Old Content - visit altium.com/documentation Modified by Susan Riege on Jan 19, 2016 Related panels SCH Inspector Parent page: Panels Quickly locate and highlight objects using logical queries

More information

Parent page: PCB Panel

Parent page: PCB Panel Published on Online Documentation for Altium Products (https://www.altium.com/documentation) 主页 > PCB Library Using Altium Documentation Modified by Annika Krilov on Apr 11, 2017 Parent page: PCB Panel

More information

Product Documentation. ER/Studio Portal. User Guide. Version Published February 21, 2012

Product Documentation. ER/Studio Portal. User Guide. Version Published February 21, 2012 Product Documentation ER/Studio Portal User Guide Version 1.6.3 Published February 21, 2012 2012 Embarcadero Technologies, Inc. Embarcadero, the Embarcadero Technologies logos, and all other Embarcadero

More information

Publish to PDF. Contents

Publish to PDF. Contents Publish to PDF Contents OutputJob Editor Adding New Outputs Adding Output Media Assigning Outputs to the Output Medium Publishing your Outputs Publish to PDF Configuring PDF Medium Output File Path Zoom

More information

Moving to Altium Designer From P-CAD. Contents

Moving to Altium Designer From P-CAD. Contents Moving to Altium Designer From P-CAD Contents File Translation Translation Overview Using the Import Wizard for P-CAD Files Working with Documents The Schematic Symbol Is the Component... P-CAD Components

More information

Creating a Multi-channel Design

Creating a Multi-channel Design Creating a Multi-channel Design Summary This tutorial shows how to create a multichannel design in the Schematic Editor, including the use of subsheets, sheet symbols and the Repeat keyword. Setting room

More information

Preparing the Board for Design Transfer. Creating and Modifying the Board Shape. Modified by Phil Loughhead on 15-Aug-2016

Preparing the Board for Design Transfer. Creating and Modifying the Board Shape. Modified by Phil Loughhead on 15-Aug-2016 Preparing the Board for Design Transfer Old Content - visit altium.com/documentation Modified by Phil Loughhead on 15-Aug-2016 This article describes how to prepare the new PCB file so that it is ready to

More information

JScript Reference. Summary. Exploring the JScript language. Introduction. This reference manual describes the JScript scripting language used in DXP.

JScript Reference. Summary. Exploring the JScript language. Introduction. This reference manual describes the JScript scripting language used in DXP. Summary Technical Reference TR0122 (v1.0) December 01, 2004 This reference manual describes the JScript scripting language used in DXP. Exploring the JScript language The following topics are covered in

More information

Using Components Directly from Your Company Database

Using Components Directly from Your Company Database Using Components Directly from Your Company Database Old Content - visit altium.com/documentation Modified by Phil Loughhead on 18-May-2016 This document provides detailed information on using components

More information

Published on Online Documentation for Altium Products (http://www.altium.com/documentation)

Published on Online Documentation for Altium Products (http://www.altium.com/documentation) Published on Online Documentation for Altium Products (http://www.altium.com/documentation) Home > PCB Pad Via Templates A New Era for Documentation Modified on Apr 11, 2017 Parent page: PCB Panels The

More information

9.0 Help for Community Managers About Jive for Google Docs...4. System Requirements & Best Practices... 5

9.0 Help for Community Managers About Jive for Google Docs...4. System Requirements & Best Practices... 5 for Google Docs Contents 2 Contents 9.0 Help for Community Managers... 3 About Jive for Google Docs...4 System Requirements & Best Practices... 5 Administering Jive for Google Docs... 6 Quick Start...6

More information

Managing Your Website with Convert Community. My MU Health and My MU Health Nursing

Managing Your Website with Convert Community. My MU Health and My MU Health Nursing Managing Your Website with Convert Community My MU Health and My MU Health Nursing Managing Your Website with Convert Community LOGGING IN... 4 LOG IN TO CONVERT COMMUNITY... 4 LOG OFF CORRECTLY... 4 GETTING

More information

FactoryLink 7. Version 7.0. Client Builder Reference Manual

FactoryLink 7. Version 7.0. Client Builder Reference Manual FactoryLink 7 Version 7.0 Client Builder Reference Manual Copyright 2000 United States Data Corporation. All rights reserved. NOTICE: The information contained in this document (and other media provided

More information

Microsoft Windows SharePoint Services

Microsoft Windows SharePoint Services Microsoft Windows SharePoint Services SITE ADMIN USER TRAINING 1 Introduction What is Microsoft Windows SharePoint Services? Windows SharePoint Services (referred to generically as SharePoint) is a tool

More information

This document provides detailed information on placing components from a database using Altium Designer's SVN Database Library feature.

This document provides detailed information on placing components from a database using Altium Designer's SVN Database Library feature. Old Content - visit altium.com/documentation Mod ifi ed by on 13- Sep -20 17 This document provides detailed information on placing components from a database using Altium Designer's SVN Database Library

More information

AutoCAD/SMARTEAM - DESIGN &PRODUCT LIFE CYCLE MANAGEMENT SOFTWARE. Smarteam User Guide

AutoCAD/SMARTEAM - DESIGN &PRODUCT LIFE CYCLE MANAGEMENT SOFTWARE. Smarteam User Guide AutoCAD/SMARTEAM - DESIGN &PRODUCT LIFE CYCLE MANAGEMENT SOFTWARE Smarteam User Guide 1 Conventions used in Document Text in Bold Indicates a button or option to be selected 2 Contents Connecting to SmarTeam

More information

Moving to Altium Designer from Pads Logic and PADS Layout

Moving to Altium Designer from Pads Logic and PADS Layout Moving to Altium Designer from Pads Logic and PADS Layout Old Content - visit altium.com/documentation Modified by on 13-Sep-2017 Translating complete PADS Logic and PADS Layout designs, including PCB,

More information

DelphiScript Keywords

DelphiScript Keywords DelphiScript Keywords Old Content - visit altium.com/documentation Modified by on 13-Sep-2017 This reference covers the DelphiScript keywords used for the Scripting System in Altium Designer. The scripting

More information

Simple Factory Pattern

Simple Factory Pattern Simple Factory Pattern Graeme Geldenhuys 2008-08-02 In this article I am going to discuss one of three Factory design patterns. The Factory patterns are actually subtle variations of each other and all

More information

USER GUIDE. MADCAP FLARE 2018 r2. Eclipse Help

USER GUIDE. MADCAP FLARE 2018 r2. Eclipse Help USER GUIDE MADCAP FLARE 2018 r2 Eclipse Help Copyright 2018 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this document

More information

Moving to Altium Designer from PADS Layout and OrCAD capture. Contents

Moving to Altium Designer from PADS Layout and OrCAD capture. Contents Moving to Altium Designer from PADS Layout and OrCAD capture Contents Getting Started - Transferring Your PADS Layout Designs Using the Import Wizard for PADS Layout Files Layer Mapping for PADS PCB ASCII

More information

Class Structure in the PCB

Class Structure in the PCB Class Structure in the PCB Old Content - visit altium.com/documentation Modified by on 13-Sep-2017 Related Videos Structured Classes in the PCB Editor Altium Designer already provided high-quality, robust

More information

Welcome to the Altium Designer Environment

Welcome to the Altium Designer Environment Welcome to the Altium Designer Environment Summary Guide GU0112 (v1.0) April 29, 2005 Altium Designer brings a complete electronic product development environment to your PC s Desktop, providing multi-document

More information

Contents Release Notes System Requirements Using Jive for Office

Contents Release Notes System Requirements Using Jive for Office Jive for Office TOC 2 Contents Release Notes...3 System Requirements... 4 Using Jive for Office... 5 What is Jive for Office?...5 Working with Shared Office Documents... 5 Get set up...6 Get connected

More information

Understanding Design Annotation. Contents

Understanding Design Annotation. Contents Understanding Design Annotation Contents Annotation defined Annotation in Altium Designer Which Annotation Tool? Schematic Level Annotation Order of Processing Schematic Sheets to Annotate Annotation Scope

More information

Working with Version-Controlled Database Libraries. Contents

Working with Version-Controlled Database Libraries. Contents Working with Version-Controlled Database Libraries Contents Librarian or Designer? Working as a Librarian The Source Control Repository Using the Library Splitter Wizard Creating the SVN Database Library

More information

PCB Rules and Violations

PCB Rules and Violations PCB Rules and Violations Old Content - visit altium.com/documentation Modified by on 6-Nov-2013 Parent page: Panels Browse, edit and interactively view design rules and their associated violations. Summary

More information

Object oriented programming. Encapsulation. Polymorphism. Inheritance OOP

Object oriented programming. Encapsulation. Polymorphism. Inheritance OOP OOP Object oriented programming Polymorphism Encapsulation Inheritance OOP Class concepts Classes can contain: Constants Delegates Events Fields Constructors Destructors Properties Methods Nested classes

More information

Baseline dimension objects are available for placement in the PCB Editor only. Use one of the following methods to access a placement command:

Baseline dimension objects are available for placement in the PCB Editor only. Use one of the following methods to access a placement command: Baseline Dimension Old Content - visit altium.com/documentation Modified by on 19-Nov-2013 Parent page: Objects A placed Baseline Dimension. Summary A baseline dimension is a group design object. It allows

More information

The Integrated Library API Datafile Interfaces Reference includes the following sections and content: IModelDatafileType Methods

The Integrated Library API Datafile Interfaces Reference includes the following sections and content: IModelDatafileType Methods IntLib API Datafile Interfaces Old Content - visit altium.com/documentation Modified by Admin on Sep 13, 2017 Parent page: Technical Reference - Integrated API Integrated API: Datafile Interfaces The Integrated

More information

Building an Integrated Library

Building an Integrated Library Building an Integrated Library Old Content - visit altium.com/documentation Modified by on 6-Nov-2013 Integrated libraries combine schematic libraries with their related PCB footprints and/or SPICE and

More information

Specification Manager

Specification Manager Enterprise Architect User Guide Series Specification Manager How to define model elements simply? In Sparx Systems Enterprise Architect, use the document-based Specification Manager to create elements

More information

Crystal Reports. Overview. Contents. Using Crystal Reports Print Engine calls (API) in Microsoft Visual Basic

Crystal Reports. Overview. Contents. Using Crystal Reports Print Engine calls (API) in Microsoft Visual Basic Using Crystal Reports Print Engine calls (API) in Microsoft Visual Basic Overview Contents This document describes how to preview a report using Microsoft (MS) Visual Basic, by making direct API calls

More information

Accessing the Vault. Parent article: Altium Vault Technology. Mod. ifi. Adm. Sep 13,

Accessing the Vault. Parent article: Altium Vault Technology. Mod. ifi. Adm. Sep 13, Frozen Content Mod ifi ed by Adm in on Sep 13, 201 7 Parent article: Altium Vault Technology This page contains information regarding browser-based access to the legacy Altium Vault Server. For browser-based

More information

5 WAYS TO CUSTOMIZE ALTIUM DESIGNER FOR BETTER EFFICIENCY

5 WAYS TO CUSTOMIZE ALTIUM DESIGNER FOR BETTER EFFICIENCY Menu items, shortcut keys, and toolbar icons are the three ways of accessing features within the Altium Designer environment. All of these are customizable and may enhance the user experience with Altium

More information

13 th Windsor Regional Secondary School Computer Programming Competition

13 th Windsor Regional Secondary School Computer Programming Competition SCHOOL OF COMPUTER SCIENCE 13 th Windsor Regional Secondary School Computer Programming Competition Hosted by The School of Computer Science, University of Windsor WORKSHOP I [ Overview of the Java/Eclipse

More information

The PCB API System Interfaces reference includes the following sections and content:

The PCB API System Interfaces reference includes the following sections and content: PCB API System Interfaces Old Content - visit altium.com/documentation Modified by on 15-Feb-2017 Parent page: Technical Reference - PCB API PCB API: System Interfaces Reference The PCB API System Interfaces

More information

SCH Inspector. Modified by Admin on Dec 12, SCH Filter. Parent page: Panels. Old Content - visit altium.com/documentation.

SCH Inspector. Modified by Admin on Dec 12, SCH Filter. Parent page: Panels. Old Content - visit altium.com/documentation. SCH Inspector Old Content - visit altium.com/documentation Modified by Admin on Dec 12, 2013 Related panels SCH Filter Parent page: Panels Manually select Schematic objects or use the SCH Filter Panel

More information

Preface...3 Acknowledgments...4. Contents...5. List of Figures...17

Preface...3 Acknowledgments...4. Contents...5. List of Figures...17 Contents - 5 Contents Preface...3 Acknowledgments...4 Contents...5 List of Figures...17 Introduction...23 History of Delphi...24 Delphi for mobile platforms...27 About this book...27 About the author...29

More information

NetBeans IDE Field Guide

NetBeans IDE Field Guide NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Extending Web Applications with Business Logic: Introducing EJB Components...1 EJB Project type Wizards...2

More information

Specification Manager

Specification Manager Enterprise Architect User Guide Series Specification Manager Author: Sparx Systems Date: 30/06/2017 Version: 1.0 CREATED WITH Table of Contents The Specification Manager 3 Specification Manager - Overview

More information

The following topics are covered in this reference:

The following topics are covered in this reference: JScript Reference Summary The following topics are covered in this reference: Exploring the JScript Language This reference manual JScript Source Files describes the JScript About JScript Examples scripting

More information

Vizit Essential for SharePoint 2013 Version 6.x User Manual

Vizit Essential for SharePoint 2013 Version 6.x User Manual Vizit Essential for SharePoint 2013 Version 6.x User Manual 1 Vizit Essential... 3 Deployment Options... 3 SharePoint 2013 Document Libraries... 3 SharePoint 2013 Search Results... 4 Vizit Essential Pop-Up

More information

Newforma Contact Directory Quick Reference Guide

Newforma Contact Directory Quick Reference Guide Newforma Contact Directory Quick Reference Guide This topic provides a reference for the Newforma Contact Directory. Purpose The Newforma Contact Directory gives users access to the central list of companies

More information

BusinessObjects LifeCycle Manager User's Guide

BusinessObjects LifeCycle Manager User's Guide BusinessObjects LifeCycle Manager User's Guide BusinessObjects Enterprise XI 3.1 Service Pack2 windows Copyright 2009 SAP BusinessObjects. All rights reserved. SAP BusinessObjects and its logos, BusinessObjects,

More information

HPE WPF and Silverlight Add-in Extensibility

HPE WPF and Silverlight Add-in Extensibility HPE WPF and Silverlight Add-in Extensibility Software Version: 14.02 WPF and Silverlight Developer Guide Go to HELP CENTER ONLINE https://admhelp.microfocus.com/uft/ Document Release Date: November 21,

More information

Storage Manager. Summary. Panel access. Modified by on 10-Jan-2014

Storage Manager. Summary. Panel access. Modified by on 10-Jan-2014 Storage Manager Old Content - visit altium.com/documentation Modified by on 10-Jan-2014 Related panel: Differences Panel Related documents: Version Control and Altium Designer Version Control Terminology

More information

Microsoft MB Microsoft CRM Extending MS CRM 1.2 with.net.

Microsoft MB Microsoft CRM Extending MS CRM 1.2 with.net. Microsoft MB2-228 Microsoft CRM Extending MS CRM 1.2 with.net http://killexams.com/exam-detail/mb2-228 Answer: A, C QUESTION: 140 Which of the following statements are true for Microsoft CRM object dependencies?

More information

Using the TASKING Software Platform for AURIX

Using the TASKING Software Platform for AURIX Using the TASKING Software Platform for AURIX MA160-869 (v1.0) November 13, 2017 Copyright 2017 TASKING BV. All rights reserved. You are permitted to print this document provided that (1) the use of such

More information

4. Fill in your information. Choose an address for your PBworks wiki. Be sure to choose For Education as your workspace type.

4. Fill in your information. Choose an address for your PBworks wiki. Be sure to choose For Education as your workspace type. Creating Your First Wiki with PB Works 1. Go to the PB Wiki Site: http://www.pbworks.com 2. Click Sign Up 3. Select the Basic Plan which is the free plan and includes 2 GB of storage space. 4. Fill in

More information

SolidWorks Modeler Getting Started Guide Desktop EDA

SolidWorks Modeler Getting Started Guide Desktop EDA SolidWorks Modeler Getting Started Guide SolidWorks Modeler Getting Started Guide All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical,

More information

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming 1. What is object-oriented programming (OOP)? OOP is a technique to develop logical modules, such as classes that contain properties, methods, fields, and events. An object

More information

Enterprise Architect. User Guide Series. Testing. Author: Sparx Systems. Date: 26/07/2018. Version: 1.0 CREATED WITH

Enterprise Architect. User Guide Series. Testing. Author: Sparx Systems. Date: 26/07/2018. Version: 1.0 CREATED WITH Enterprise Architect User Guide Series Testing Author: Sparx Systems Date: 26/07/2018 Version: 1.0 CREATED WITH Table of Contents Testing 3 Test Management 4 Create Test Records 6 Show Test Script Compartments

More information

And Even More and More C++ Fundamentals of Computer Science

And Even More and More C++ Fundamentals of Computer Science And Even More and More C++ Fundamentals of Computer Science Outline C++ Classes Special Members Friendship Classes are an expanded version of data structures (structs) Like structs, the hold data members

More information

HP Database and Middleware Automation

HP Database and Middleware Automation HP Database and Middleware Automation For Windows Software Version: 10.10 SQL Server Database Refresh User Guide Document Release Date: June 2013 Software Release Date: June 2013 Legal Notices Warranty

More information

1.0 Installation Information. 1.1 System Requirements & DXP Bonus Technologies System Requirements

1.0 Installation Information. 1.1 System Requirements & DXP Bonus Technologies System Requirements P-CAD 2004 Schematic Suite Installation Instructions Network Edition ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

More information

Administrator Guide. v Decisions on Demand, Inc. - All Rights Reserved

Administrator Guide. v Decisions on Demand, Inc. - All Rights Reserved Administrator Guide v1.14 2015 Decisions on Demand, Inc. - All Rights Reserved Table of Contents Table of Contents Introduction Pre-requisites Additional resources Document outline Architecture overview

More information

Technical What s New. Autodesk Vault Manufacturing 2010

Technical What s New. Autodesk Vault Manufacturing 2010 Autodesk Vault Manufacturing 2010 Contents Welcome to Autodesk Vault Manufacturing 2010... 2 Vault Client Enhancements... 2 Autoloader Enhancements... 2 User Interface Update... 3 DWF Publish Options User

More information

Enterprise Architect. User Guide Series. Testing. Author: Sparx Systems. Date: 10/05/2018. Version: 1.0 CREATED WITH

Enterprise Architect. User Guide Series. Testing. Author: Sparx Systems. Date: 10/05/2018. Version: 1.0 CREATED WITH Enterprise Architect User Guide Series Testing Author: Sparx Systems Date: 10/05/2018 Version: 1.0 CREATED WITH Table of Contents Testing 3 Test Management 4 Create Test Records 6 Working On Test Records

More information

Use xtimecomposer to simulate a program

Use xtimecomposer to simulate a program Use xtimecomposer to simulate a program IN THIS DOCUMENT Configure the simulator Trace a signal Set up a loopback Configure a simulator plugin The xcore simulator provides a near cycle-accurate model of

More information

Software Development. Modular Design and Algorithm Analysis

Software Development. Modular Design and Algorithm Analysis Software Development Modular Design and Algorithm Analysis Data Encapsulation Encapsulation is the packing of data and functions into a single component. The features of encapsulation are supported using

More information