Giter VIP home page Giter VIP logo

acis-python3's Introduction

Python 3 wrapper module for 3D ACIS Modeler

DOI

ACIS-Python3 is a Python 3 module which provides a direct interface to Spatial Corporation's 3D ACIS Modeler solid modeling kernel.

For Researchers

I would be glad if you cite this repository using the DOI provided as a badge at the top.

Introduction

This package wraps Spatial Corporation's 3D ACIS Modeler into a Python (v3.5.x and v3.6.x) module with minor changes due to how Python's C interface works. 3D ACIS Modeler or ACIS, in short, is a solid and geometric modeling kernel. Solid modeling kernels are sometimes called as "CAD Engines" too. These systems work behind the scenes and responsible for generation of solid models or surfaces, evaluation of geometric operations on solid models or surfaces, and so.

3D ACIS Modeler provides a C++ API and its Scheme extension with variety of additional features. Even though it is used in a variety of commercial and research applications, it doesn't provide a Python interface which would be very useful for integration purposes. This module tries to fulfill the gap up to some point.

If you are

  • not aware of what solid modeling or a CAD kernel is
  • looking for the source code of a proprietary software
  • seeking for help on CAD programming

you might be checking the wrong place. This repository only contains the source code for the 3D ACIS Modeler Python wrapper.

Getting Started

This package depends on 3D ACIS Modeler headers and libraries. In order to obtain these, you might need to contact Spatial Corporation for developer or university licenses.

After obtaining 3D ACIS Modeler, please follow the steps below:

  • Clone the repository: git clone https://github.com/orbingol/ACIS-Python3.git
  • Update the submodules: git submodule update --init --recursive
  • Install Python 3 and its development package, if necessary
  • Install CMake
  • Using CMake GUI, choose the root of your cloned repository as the source directory
  • Choose a build directory, preferable different from the source directory. You can use <project_root>/build for this purpose.
  • Press configure button and choose your builder type, e.g. Visual Studio 2015 or Unix Makefiles.
  • Set ACIS_ROOT to your ACIS installation directory; e.g. C:\Program Files\Spatial\acisR26. CMake will automatically find and fill the necessary variables.
  • Don't forget to set Python library paths in CMake GUI.
  • Use APP_INSTALL_DIR to set the install path for the module
  • At the final step, press generate button and you are all set!

If you prefer, you can use CMake's command line tool to set up variables and generate build files.

Compiling and Installing the Module

Most of the time a simple make install will take care of all necessary operations. Please note that, you have to run it in your build directory, not in your source directory.

The following CMake targets are also provided for convenience:

  • make uninstall: Deletes installed files
  • make install_module: Generates a .pth file inside the site-packages directory. May require root/admin priviliges.
  • make uninstall_module: Deletes the .pth file inside the site-packages directory. May require root/admin privileges.

Please try using make uninstall and make clean, if you encounter any problems during compile or running stages.

By default, the module name is set to ACIS. The CMake variable APP_MODULE_NAME allows users to change the module name. Please don't forget to modify the import line in your Python code after changing the module name via CMake.

For Visual Studio 2015 users, you will see a lot of projects in your solution. If you only want to compile and run the package, right click on INSTALL and choose Rebuild.

Using the Module

Please check examples/ directory for example scripts and the instructions on how to use these scripts.

Function Reference

Please see the Function Reference to check which functions were implemented in this module.

Implementation Details

Please see IMPLEMENTATION for a discussion on the implementation details and assumptions.

Author (Python module)

Licensing

The Python module is released under MIT License. ACIS and SAT are registered trademarks of Spatial Corporation, a subsidiary of Dassault Systemes.

acis-python3's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

acis-python3's Issues

Extend this to Autodesk Shape Manager

I know this should put this in an email, but then I thought it would be more useful in the long term to post any comments publicly.

The ASM is a fork of the ACIS kernel (in case you didn't know) and would have more or less the same interface. (It also uses Scheme.)

When I worked at Autodesk I persuaded someone to finish their SWIG compilation against the ASM, so I had a Python interface almost immediately.
https://www.freesteel.co.uk/wpblog/2015/08/03/on-the-shape-of-autodesk/

This would be a more efficient way for ACIS to obtain this feature, if there was an application for it.

You can tell there are a lot of problems in the CAD industry, when you realize that Dassault has been singularly unable to swap Parasolid for ACIS in Solidworks, when they are so exposed by their rival Siemans owning Parasolid. BTW all three solid modelling kernels (Parasolid, ACIS and ASM) have their developer teams within a mile of one another in Cambridge, England. This is a perfect illustration of the unmitigated waste that is caused by closed source development. We could have had a kernel that was three times better and three times cheaper if it was open source, and it would solve many of the desperate CAD translation problems that waste so much of everyone's time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.