Unix DWG в BMP | JPG | PNG | SVG конвертер - PullRequest
0 голосов
/ 18 марта 2012

Я создаю приложение Ruby on Rails и мне нужно отобразить миниатюру для загруженных файлов .dwg (AutoCad).Есть ли какая-нибудь гем (в идеале) или библиотека Unix командной строки, чтобы сделать это?Я уже просканировал всю сеть и не нашел ничего, кроме лицензионных интерфейсов Windows GUI.

Я также пытался с ImageMagick, но он не поддерживает преобразование .dgw.

У меня есть .exe, который выполняет преобразование, но мне нужно будет создать веб-сервис, работающий на WindowsСервер только для этой функции, поэтому мне нужна библиотека для работы в системах Unix.

1 Ответ

0 голосов
/ 01 июля 2016

Мне пришлось сгенерировать DXF из моего приложения rails, я не смог найти гем, поэтому я сгенерировал код на python, используя библиотеку DXFWriter , и вызвал python для отправки кода для генерации файла DXF, может быть, это может решить часть этой проблемы.

  def dxf
    elements = ''
    params[:_json].second.each do |l|  #Lines
      elements += "drw.add(dxf.line((#{l[:x1]}, #{l[:y1]}), (#{l[:x2]}, #{l[:y2]}), color=1));"
    end
    params[:_json].third.each do |a|  #Arcs
      elements += "drw.add(dxf.arc(#{a[:radius]}, (#{a[:left]}, #{a[:top]}),
                  #{(a[:startAngle] * Base::Part::TO_DEG).round(3)}, #{(a[:endAngle] * Base::Part::TO_DEG).round(3)}, color=1));"
    end
    file_name = "#{Rails.root}/tmp/#{Dir::Tmpname.make_tmpname([params[:_json].first[:part_name], '.dxf'], nil)}"
    base_script = "import sys;sys.path.insert(0, '" + Rails.root.to_s + "');from dxfwrite import DXFEngine as dxf;"\
                  "drw = dxf.drawing('#{file_name}');"\
                  "#{elements}drw.save()"

    %x(python -c "#{base_script}")
    render json: { export_basename: file_name }
  end
...