All Projects → xarial → xcad

xarial / xcad

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

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to xcad

general-interview-questions
Project Management Basics
Stars: ✭ 52 (+4%)
Mutual labels:  pmp
itpmp
备考2019年-软考高级-信息系统项目管理师
Stars: ✭ 57 (+14%)
Mutual labels:  pmp
pmp
6️⃣本人2019年06月份PMP备考资料,包含第六版教材、教学视频和练习真题。如资料链接失效,可通过Issues提问或者个人主页邮箱联系。视频资料持续更新中……
Stars: ✭ 116 (+132%)
Mutual labels:  pmp
nat-api
↔️ Fast port mapping with UPnP and NAT-PMP
Stars: ✭ 22 (-56%)
Mutual labels:  pmp

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].