Skip to content
forked from xarial/xcad

Framework for developing CAD applications for SOLIDWORKS, including add-ins, stand-alone applications, macro features, property manager pages, etc.

License

Notifications You must be signed in to change notification settings

EddyAlleman/xcad

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo xCAD.NET

Base NuGet version (xCAD.Base) Build status---Toolkit NuGet version (xCAD.Toolkit)Build status---SOLIDWORKS NuGet version (xCAD.SolidWorks) Build status

SOLIDWORKS API development made easy

User Guide Examples

xCAD.NET is a framework for building CAD agnostic applications. It allows developers to implement complex functionality with a very simple innovative approach. This brings the best user experience to the consumers of the software.

It has never been easier to create SOLIDWORKS add-ins with toolbar and menu commands.

[ComVisible(true)]
public class MyAddIn : SwAddInEx
{
    public enum Commands_e
    {
        Command1,
        Command2
    }

    public override void OnConnect()
    {
        this.CommandManager.AddCommandGroup<Commands_e>().CommandClick += OnCommandsButtonClick;
    }
    
    private void OnCommandsButtonClick(Commands_e cmd)
    {
        //TODO: handle the button click
    }
}

Framework reinvents the way you work with Property Manager Pages. No need to code a complex code behind for adding the controls and handling the values. Simply define your data model and the framework will build the suitable Property Manager Page automatically and two-way bind controls to the data model.

public class MyPMPageData
{
    public string Text { get; set; }
    public int Number { get; set; }
    public ISwComponent Component { get; set; }
}

private ISwPropertyManagerPage<MyPMPageData> m_Page;
private MyPMPageData m_Data = new MyPMPageData();

private enum Commands_e
{
    ShowPmpPage
}

public override void OnConnect()
{
    m_Page = this.CreatePage<MyPMPageData>();
    m_Page.Closed += OnPageClosed;
    this.CommandManager.AddCommandGroup<Commands_e>().CommandClick += ShowPmpPage;
}

private void ShowPmpPage(Commands_e cmd)
{
    m_Page.Show(m_Data);
}

private void OnPageClosed(PageCloseReasons_e reason)
{
    Debug.Print($"Text: {m_Data.Text}");
    Debug.Print($"Number: {m_Data.Number}");
    Debug.Print($"Selection component name: {m_Data.Component.Name}");
}

Complex macro features became ease with xCAD.NET

[ComVisible(true)]
public class BoxMacroFeature : SwMacroFeatureDefinition
{
    public override CustomFeatureRebuildResult OnRebuild(ISwApplication app, ISwDocument model, ISwMacroFeature feature)
    {
        var body = app.MemoryGeometryBuilder.CreateSolidBox(new Point(0, 0, 0),
            new Vector(1, 0, 0), new Vector(0, 1, 0),
            0.1, 0.1, 0.1);

        return new CustomFeatureBodyRebuildResult()
        {
            Bodies = body.Bodies.ToArray()
        };
    }
}

Watch the video demonstration of xCAD in action.

Visit User Guide page and start exploring the framework.

About

Framework for developing CAD applications for SOLIDWORKS, including add-ins, stand-alone applications, macro features, property manager pages, etc.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%