I am working as a programmer for a private company, and we are developing an AutoCAD plugin to automate some of our repetitive work. We have recently decided to start outsourcing modular programming tasks to speed up the process.
The plugin is being written in C# and uses ObjectARX with AutoCAD's .NET API, so we would like this project to do the same for easy integration. The goal is to be able to run a command in AutoCAD that loads up a sidebar on the left of the screen. This sidebar must allow the user to load an internally stored database and browse/modify/add/delete its records.
- See attached document for a simplified example of how the sidebar view is imagined to look like.
- We already have code you can base your work on, which loads/modifies/adds/deletes records, but it does not include the PDF integration described below. It was also very recently translated from Java so there might be small bugs. We can give you this code when the project begins.
>>Selecting which record to view:
There should be a drop-down (or other listing equivalent) on top that lists the record names, and another box for filtering for certain keywords in the records' name field (unique identifier). Only alphanumeric characters, spaces, hypens and underscores should be allowed, and searches should be case insensitive.
- Use scenario: A user types 'dog' into the filter textbox. The list updates to only display record names containing 'dog'. The user then clicks on 'Super DOG2000' and that record's fields are displayed below.
Each record will represent a product, and will hold a list of its specs. When adding a product, after typing in all the specs and clicking on the 'add' button, the program should perform field validation and complain if something is missing/invalid. Fields are text, numbers, and percentages (if '%' is included in the input), with the exception of the one below.
>>Each record must hold a PDF document:
The tricky part is that retrievable PDFs must also be a part of each record, so there should be a button to import a PDF file when adding a new record. Only one page of an uploaded PDF document holds the information we care about (these are going to be spec sheets in the plugin) so there should be an input field for the page number of interest. That way we have one of two options:
- Option 1) only the desired page is isolated and stored when the record is added to the database, and the page number doesn't need to be stored (not sure if separating PDF pages is doable in AutoCAD).
- Option 2) the whole PDF is stored along with the the page number, and when the record is later viewed, only that page is used.
The goal is to have a button in the sidebar when viewing a record which embeds the single relevant PDF page into the active document (or an image of it, however it works in AutoCAD).
>>Logging of changes for distribution/verification purposes:
There should be buttons to allow the user to modify or delete the record currently being viewed, or to add a new record. Additions and modifications (not deletions) must be logged separately in a file that persists between sessions, and a button should be available to export these changes in a way so that this resulting exported file can be distributed to other users. These users should then be able to import it into their own version of the plugin using another button to update their own database. On import, there should be a popup summarizing what got imported (this is mainly for verification purposes).
*If you have any suggestions on how to better keep all users up-to-date we can discuss this.
*See attached PDF for details on what must be stored and what the sidebar is imagined to look like.