RayyanCAD User Manual

Version 0.1.0-dev • Windows 10/11 x64 • 28 September 2026

RayyanCAD is in the development stage. This release supports schematic drawing, editing, saving, printing and PDF output. Several visible menu commands are placeholders for future development. Read the supported-feature boundaries below.

1. Install and launch

Extract the entire release ZIP to a temporary folder. Do not run files inside the ZIP viewer. Double-click install.cmd. The default destination is %LOCALAPPDATA%\Programs\RayyanCAD; normal per-user installation needs no administrator access. Start RayyanCAD from the Start menu or the installed Run-RayyanCAD.cmd. Open the User Manual shortcut for this offline document.

For a custom destination, run PowerShell in the extracted release folder:

powershell -NoProfile -ExecutionPolicy Bypass -File .\Install.ps1 -InstallRoot "C:\CAD\RayyanCAD"

The installer verifies each payload file against the supplied SHA-256 manifest, copies the application and bundled InternetSQL 1.25 SDK, and initializes an empty parts database. The database home is <install root>\isqldbhome; its data is under isqldbhome\db. It sets the user environment variable RAYYANCAD_ISQL_HOME and adds <install root>\bin and <install root>\isqldbhome\bin to the user PATH. Open a new terminal after installation. The launcher also sets these variables for its own process, so it works immediately without signing out.

Installer options: -EnvironmentScope User (default), Machine (administrator required), Process (temporary settings for that PowerShell process), or None (no environment changes). -NoShortcut suppresses Start menu shortcuts. Use a writable install location; database files are stored there. This package includes the x64 SDK release dated 2026-09-20.3, checked against available C:\isql-rel* releases when the package was built. See RELEASE.json for exact hashes.

The CAD resolves an explicit RAYYANCAD_ISQL_HOME first, then an isqldbhome directory beneath its install root. Do not point that variable to another database unless you intend to open it. Start with Run-RayyanCAD.cmd to use this installation.

2. First schematic: an RC filter

  1. Choose File > New Project. If there is no page, choose Schematic > New Page.
  2. Choose Schematic > Page Properties and name the active page RC filter.
  3. In the floating Parts Palette, click Resistor, then click the drawing page. Press Esc to finish placing resistors.
  4. Press S, click the resistor, and press F2. Set Reference to R1 and Value to 10k. Confirm the dialog.
  5. Choose Capacitor in the palette. Press R to rotate the preview as needed; click to place it beside the resistor. Press Esc, select it, then F2 and set Reference C1, Value 100nF.
  6. Choose GND and place it near the lower capacitor terminal. Use W and successive clicks to draw snapped orthogonal wires between the symbols. Esc ends the run.
  7. Press L, enter INPUT, and click to place the annotation. Repeat with OUTPUT.
  8. Choose View > Zoom to Fit. Save with Ctrl+S as My RC filter.rycad.
  9. Print the active page with File > Print Page, or use File > Print Page to PDF.

You can also open the installed examples\rc-filter.rycad and save a copy under your own filename. This is a drawing tutorial; the release does not yet calculate electrical connectivity or simulate the filter.

3. Projects and pages

File > New Project starts a project; Ctrl+O opens a .rycad file. Ctrl+S saves; Save Project As makes a copy under a new filename. An asterisk in the title marks unsaved changes. Save prompts protect unsaved work when replacing or closing the project. Keep backups of important drawings before testing a development build.

A project can hold multiple named pages. Ctrl+Shift+N creates another page. Schematic > Page Properties renames the active page. Closing a page window keeps the page in the project; use Schematic > Open Page to reopen it. Window > Cascade and Tile arrange open page windows. Click a page to make it active before editing or printing. Project saves include all pages, including pages whose windows are closed. Schematic project files and the parts database are separate: back up both.

This release writes project format 3 and reads formats 1, 2 and 3. Components, labels and buses require the current reader. Older applications may not understand them. The installed docs\PROJECT_FORMAT_V3.md describes the file format.

4. Palette and available symbols

The floating Parts Palette opens automatically. Drag its title bar to move it and scroll within it to reach additional icons. Click an icon, then click the active page to place the chosen item. A symbol can be placed repeatedly until Esc. Close the palette with X; reopen through View > Parts Palette or Parts > Symbol Palette. Icons are disabled when no schematic page is open.

The palette has Wire, Bus, Junction and Label tools, and these 31 symbols:

FamilySymbols
PassiveResistor, capacitor, polarized capacitor, coil/inductor, ferrite loop, transformer
DiodeDiode, LED, Zener diode
TransistorNPN BJT, PNP BJT, IGBT, N-channel MOSFET, P-channel MOSFET, N-channel JFET
SwitchingSCR, triac, switch, fuse
IC and timingGeneric 8-pin IC, op amp, crystal
PowerVoltage source, GND, earth ground, VCC, VDD
ConnectionsTwo-pin connector, page connector IN, page connector OUT, antenna

Press C for the component dialog to choose a symbol, reference and value before placement. A blank reference permits automatic numbering. Press R to rotate a placement preview or selected components. References and values are editable text; they do not select manufacturer parts or simulation models. Check reference uniqueness yourself. Power and page connector labels currently describe the drawing; they do not automatically join nets across pages.

5. Editing, wires and navigation

ActionControl
SelectS; click an object
Multiple selectionCtrl+click; or drag a box from empty space
MoveDrag selected objects with the Select tool
DeleteDelete key
Edit selected component or labelF2
RotateR
Wire / bus / junctionW / B / J
Component / labelC / L
Finish or cancel previewEsc or right-click
Undo / redoCtrl+Z / Ctrl+Y on the active page
PanP and drag, or middle-button drag
ZoomMouse wheel; View > Zoom In / Zoom Out / Zoom to Fit
Save / printCtrl+S / Ctrl+P

Wire and bus tools snap to the grid and draw orthogonal segments. Click endpoints successively. Hold Shift to reverse the elbow direction. A bus is drawn thicker than a wire. To resize a straight segment, select it alone and drag an endpoint handle along its axis. Move and endpoint changes can be undone as one action. The junction tool toggles an explicit junction marker at the clicked position.

Moving a component or a wire does not stretch other attached-looking wires. Inspect and redraw adjoining segments after a move. Geometric crossings and labels do not yet produce a verified netlist. Undo/redo covers canvas edits on the active page; it is not a general history for database changes. Clipboard Cut/Copy/Paste commands are disabled in this release.

6. Direct printing and PDF

Activate the page to print. File > Print Page (Ctrl+P) opens the Windows printer dialog. Select your physical printer and set its paper size and orientation. File > Print Page to PDF uses Microsoft Print to PDF; choose a destination when Windows prompts. Enable that Windows optional printer if it is missing.

All drawing geometry on the active page is fitted to one sheet with margins, independent of the screen zoom and pan. Grid dots, selection handles and unfinished previews are omitted. Components, values, labels, buses and wires are included. Each command prints one active schematic page; repeat for other pages. Printing does not save or modify the project. Open a PDF after saving to check readability, especially for dense drawings. The HTML manual itself can be printed or saved as a PDF using your browser's Print command.

7. Parts libraries: what works now

The reusable parts library is an embedded iSQL database with schema version 1. Parts > List Parts browses stored records; Parts > Find Part searches them. The database overview reports table information. The palette uses built-in symbol definitions. A row inserted into the library does not add a palette icon and cannot yet be placed as a database-linked component. Custom graphical symbol authoring, manufacturer-part placement, and the Create/Edit/Import/Export Part dialogs are future work. The following workflow creates and edits real library records using the included SQL shell while those dialogs are being developed.

Create a separate library

Close other programs using the target library. In PowerShell, change to the CAD install root and choose a directory that does not exist:

powershell -NoProfile -ExecutionPolicy Bypass -File .\New-PartsLibrary.ps1 -LibraryHome "$env:USERPROFILE\Documents\MyRayyanParts"

The helper creates 15 tables, 16 indexes, schema metadata and 13 ID sequence rows. It refuses an existing directory to avoid overwriting data. Do not invoke initialize_parts_db.exe again on an initialized home; it is a fresh-schema tool, not a migration command. The helper does not change your default library.

Add the tutorial part

For a newly created empty tutorial library, run this command ONCE from the install root (replace the path if you used another location):

.\isqldbhome\bin\isqlsh.exe -q -e -dbhome "$env:USERPROFILE\Documents\MyRayyanParts" -cmd .\examples\tutorial-parts.sql

The supplied SQL creates a fictional resistor catalog entry, two pins, a unit, category and source attribution. It advances the sequences it uses. Its IDs start at 1, so do not run it in an existing populated library or rerun it. Read the file first to see each statement. It is original demonstration data, not manufacturer specifications or a verified purchasing part. The final SELECT statements display the records for verification.

Open CAD with that library:

powershell -NoProfile -ExecutionPolicy Bypass -File .\Open-PartsLibrary.ps1 -LibraryHome "$env:USERPROFILE\Documents\MyRayyanParts"

Use Parts > List Parts or Find Part and search for DEMO-R-10K. This launcher only changes the environment for the launched process. To return to the default library, close this instance and use Run-RayyanCAD.cmd.

Edit and verify records with SQL

Back up the library first. Open an interactive shell from the install root:

.\isqldbhome\bin\isqlsh.exe -dbhome "$env:USERPROFILE\Documents\MyRayyanParts"

Example SQL for the tutorial library:

use default;
select * from parts where part_id=1;
update parts set part_description='Tutorial resistor, nominal 10 kilo-ohm' where part_id=1;
select * from parts where part_id=1;
select * from pins where part_id=1;

For additional records, read the corresponding id_sequences.next_id, reserve an unused ID and advance it before another writer can use it. Perform manual authoring with one writer and CAD closed. Do not use the demonstration IDs in a populated database. Link related records using their numeric IDs. Escape apostrophes in SQL strings by doubling them, for example 'Driver''s IC'. Respect the fixed character lengths in the schema; keep text within them. Validate lengths, references and uniqueness yourself; the current application is not a complete library validator.

Library structure and authoring checklist

The complete field definitions are installed as docs\parts-schema.sql.

TablePurpose and relationships
schema_versionsDatabase schema version; do not edit to bypass a migration
id_sequencesNext available ID for each record family
part_categoriesCategory tree; parent_category_id links to another category
partsManufacturer number, manufacturer, description, category, revision, units, pin count, package, datasheet and review status
part_unitsUnits within a part; links part_id and optional symbol_id
pinsPin number/name/type for a part and unit; physical measurements
symbolsReserved custom-symbol metadata; not yet rendered by the palette
symbol_primitivesReserved geometry records linked to symbols; rendering contract not implemented
packagesMechanical package dimensions and review status
padsPads linked by package_id; dimensions, hole, layer and rotation
part_packagesAssociates a part with one or more packages and ordering codes
part_sourcesSource URL, license, attribution, usage classification and review date
part_provenancePer-part facts and their source/revision/hash/review status
import_jobsImport batch metadata reserved for the import workflow
import_stagingCandidate records and validation results reserved for imports

Mechanical dimensions use integer micrometres (1000 = 1 mm); pad rotation uses millidegrees (90000 = 90 degrees). Record pin numbers as text so alphanumeric identifiers remain intact. For each real part, verify its exact ordering code, revision, pin mapping and dimensions against material you are entitled to use. Record the source and attribution in part_sources and part_provenance. Use a review status that distinguishes unreviewed information from independently checked data. No automated importer or license screening is provided in this build.

To share a library, close CAD and all iSQL tools, copy the entire library home to an archive, and include its source/licensing notes. Restore into a separate folder and open it with Open-PartsLibrary.ps1. Do not copy only individual table files while the database is open. Sharing a database library does not extend the built-in palette in this release.

8. Updates, backups and removal

Close RayyanCAD and all iSQL processes before updating. Back up your .rycad files and the entire isqldbhome folder. Run the new installer against the existing marked RayyanCAD installation. It refreshes packaged binaries and documentation, preserves the database, and skips initialization when its schema marker exists. An unrecognized nonempty destination is refused. There is no automatic schema migration in this development release. Keep a separate copy of custom scripts; packaged files may be replaced by an update.

For removal, first back up projects and libraries. Remove only this application's two directories from your Windows user PATH and remove RAYYANCAD_ISQL_HOME if it still points to this installation. Delete the RayyanCAD Start menu folder, then delete the dedicated install folder after checking your backups. Machine-scoped environment changes require administrator rights. Do not remove another product's iSQL directory or PATH entry.

9. Troubleshooting and known limits

Electrical rule checking, connectivity/netlists, bus membership, global power nets, cross-page resolution, simulation, PCB layout/fabrication, hierarchy, custom symbol editing and database-linked placement are not implemented in this package. Do not use a schematic drawing alone as evidence of electrical correctness.

Copyright (c) 2026 Muhammad Anisur Rahman and Rayyan Rahman, Fremont, CA, USA. The bundled InternetSQL SDK retains its own documentation and copyright notices. Microsoft Visual C++ runtime vcruntime140.dll is included beside the SDK tools; its Microsoft copyright is retained. Windows supplies the Universal C Runtime.