Published on Online Documentation for Altium Products (
|
|
- Phillip Thomas
- 6 years ago
- Views:
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) Home > Delphi SDK How-to FAQ A New Era for Documentation Modified by Rob Evans on Feb 26, 2018 Browse through
More informationUsing 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 informationUsing 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 informationThe 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 informationSchematic 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 informationPublished 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 informationThe 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 informationWorkspace 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 informationPublished 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 informationIntegrated 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 informationThe 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 informationA 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 informationCustomizing 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 informationPublished 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 informationThe 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 informationMoving 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 informationEDAConnect-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 informationSchematic 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 informationMoving 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 informationJScript 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 informationRunning 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 informationAltium 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 informationEMC 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 informationEMC 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 informationSpecifying 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 informationPublished 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 information12d 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 informationOLE 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 informationPCB 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 informationEMC 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 informationOutputJob 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 informationUSING 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 information8.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 informationUsing 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 informationComponent 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 informationFor 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 informationEditing 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 informationBoot 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 informationMicrosoft 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 informationSCH 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 informationParent 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 informationProduct 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 informationPublish 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 informationMoving 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 informationCreating 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 informationPreparing 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 informationJScript 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 informationUsing 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 informationPublished 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 information9.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 informationManaging 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 informationFactoryLink 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 informationMicrosoft 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 informationThis 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 informationAutoCAD/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 informationMoving 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 informationDelphiScript 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 informationSimple 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 informationUSER 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 informationMoving 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 informationClass 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 informationWelcome 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 informationContents 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 informationUnderstanding 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 informationWorking 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 informationPCB 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 informationObject 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 informationBaseline 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 informationThe 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 informationBuilding 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 informationSpecification 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 informationCrystal 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 informationAccessing 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 information5 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 information13 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 informationThe 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 informationSCH 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 informationPreface...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 informationNetBeans 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 informationSpecification 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 informationThe 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 informationVizit 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 informationNewforma 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 informationBusinessObjects 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 informationHPE 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 informationStorage 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 informationMicrosoft 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 informationUsing 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 information4. 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 informationSolidWorks 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 informationObject-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 informationEnterprise 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 informationAnd 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 informationHP 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 information1.0 Installation Information. 1.1 System Requirements & DXP Bonus Technologies System Requirements
P-CAD 2004 Schematic Suite Installation Instructions Network Edition ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
More informationAdministrator 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 informationTechnical 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 informationEnterprise 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 informationUse 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 informationSoftware 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