Skip to main content

A python package for AxisVM

Project description

PyAxisVM

The package is under development. Follow us on social media, where we'll announce the first release!

Overview

The PyAxisVM project offers a high-level interface to AxisVM, making its operations available directly from Python. It builds on top of Microsoft's COM technology and supports all the features of the original AxisVM COM type library, making you able to

  • build and analyse parametric models

  • find solutions with iterative methods

  • build specific design extension modules

Documentation and Issues

The AxisVM API Reference Guide is available in pdf format, you can download it here.

Please feel free to post issues and other questions at PyAxisVM Issues. This is the best place to post questions and code.

Installation

This is optional, but we suggest you to create a dedicated virtual enviroment to avoid conflicts with your other projects. Create a folder, open a command shell in that folder and use the following command

>>> python -m venv venv_name

Once the enviroment is created, activate it via typing

>>> .\venv_name\Scripts\activate

The AxisVM python package can be installed (either in a virtual enviroment or globally) from PyPI using pip on Python >= 3.5:

>>> pip install axisvm

Dependencies

You will need a local licenced copy of AxisVM prior and including 13r2. To get a copy of AxisVM, please visit our homepage.

Getting Started

Register the AxisVM Type Library

If this is not your first time using the AxisVM through a COM interface on your machine, you should already have a registered type library and you can skip this step. Otherwise, follow the instructions at the beginning of the AxisVM API Reference Guide.

Launch AxisVM

The axisvm.com.client submodule implements various tools to handle the client side operations of creating a COM connection. Import the module and start a new application instance with the start_AxisVM method.

from axisvm.com.client import start_AxisVM
axapp = start_AxisVM(visible=True, join=True)

By providing the keyword argument join=True, python is first looking for a running instance of AxisVM, and tries connecting to it. If there is no running instance, a new application is launched. In both cases, the call returns a pointer to an AxisVM aplication. To test the connection, you can query the path of the executable being run by typing axapp.FullExePath.

Basic Usage

If the connection is complete, create a new model and get an interface to it.

modelId = axapp.Models.New()
axmodel = axapp.Models.Item[modelId]

Every time you create a new AxisVM instance with the start_AxisVM command, an attempt is made to import the type library as a python module, or to generate one if necessary. The generated module is then accessible as axisvm.com.tlb.

The next block of commands adds a line to the scene:

from axisvm.com.tlb import lgtStraightLine, RLineGeomData
n1 = axmodel.Nodes.Add(0, 0, 0)
n2 = axmodel.Nodes.Add(1, 1, 1)
l1 = axmodel.Lines.Add(n1, n2, lgtStraightLine, RLineGeomData())

Put AxisVM on top and scale model to fill up the current view:

axapp.BringToFront()
axmodel.FitInView()

At the end of your session, release the connection and close the application simply by typing

axapp.UnLoadCOMClients()
axapp.Quit()

License and Acknowledgments

PyAxisVM is licensed under the MIT license.

This module, PyAxisVM makes no commercial claim over AxisVM whatsoever. This tool extends the functionality of AxisVM by adding a Python interface to the AxisVM COM service without changing the core behavior or license of the original software. The use of PyAxisVM requires a legally licensed local copy of AxisVM.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

axisvm-0.0.2.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

axisvm-0.0.2-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file axisvm-0.0.2.tar.gz.

File metadata

  • Download URL: axisvm-0.0.2.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for axisvm-0.0.2.tar.gz
Algorithm Hash digest
SHA256 98f07f8e7f2a688d656b67433b431dc59a193a78820d7f78f4093caaf41f97db
MD5 203e4ed91d1af1c15d4dc68a96bb2471
BLAKE2b-256 cb38b6fd7304c07d25519fcaed22acbee693177da3e9abe30a71a19a76401fc0

See more details on using hashes here.

File details

Details for the file axisvm-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: axisvm-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for axisvm-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 557988cadfe76eaf205ddfc0e3dc5f0b3286ae7b219353c85991aca744b30f50
MD5 42cc08f616edfc59f0eac0fc6a7fc55b
BLAKE2b-256 f0b51e379070e1b90ed10e390d9b0769fa64832afab67a1c422979119a7ee3c4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page