Code Monkey home page Code Monkey logo

three-dxf-loader's Introduction

three-dxf-loader

three-dxf-loader is a cross platform DXF file loader for THREE.js. It takes URL of a DXF file as input and returns THREE.js mesh entities. It internally uses dxf-parser for parsing DXF file. This library works out of the box with cross platform react-native and react-three-fibre.

Install

yarn add three-dxf-loader three

or

npm i three-dxf-loader three

Usage

import * as THREE from 'three'
import { DXFLoader } from 'three-dxf-loader'

const loader = new DXFLoader();
// loader.setFont(font); // set fonts
loader.setEnableLayer(true); // set EnableLayer
const scene = new THREE.Scene();
onLoad = (data) => {
    if (data && data.entities) {
      data.entities.forEach(ent => scene.add(ent))
    }
}
const onError = (error) => {
  console.log(error);
}
const onProgress = (xhr) => {
  console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
}
loader.load(url, onLoad, onProgress, onError);

Run Web Viewer Sample

Example of the viewer

# First, compile three-dxf-loader
> yarn install
> yarn build

# then install the sample's dependencies
> cd sample
> yarn install

# go back to the root and run http-server to run the sample
> cd ..
> npm install -g [email protected]
> http-server .
# use `http-server -c-1 .` to prevent caching

After performing the steps above, you can see the example at http://127.0.0.1:8080/sample/index.html. You can use the DXF file included in the sample. NOTE: the latest version of http-server will go into a redirect loop if you exclude "/index.html" from the url.

Supported DXF Features

Supports:

  • Header
  • Most LW entities (lines, polylines, circles, etc)
  • Layers
  • Some support for line types
  • Simple Text
  • Viewport
  • Splines (Quadratic and Cubic)
  • Ellipses

Does not yet support:

  • Attributes
  • 3DSolids
  • All types of Leaders
  • MText
  • other less common objects and entities.

License

The MIT License

three-dxf-loader's People

Contributors

bzuillsmith avatar duncanthrax avatar gouldingken avatar serthys avatar sonisourabh avatar vinzentvega avatar

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.