我正在构建Ruby on Rails应用程序,我需要显示上传的.dwg(AutoCad)文件的缩略图。是否有任何gem(理想情况下)或命令行Unix库来执行此操作?我已经抓取了整个网络,只发现了许可的Windows GUI界面。
我也尝试使用ImageMagick,但它不支持.dgw转换。
我有一个.exe进行转换,但我需要在Windows服务器上构建一个仅用于此功能的Web服务,这就是我需要在Unix系统上运行库的原因。
答案 0 :(得分:0)
我必须从我的rails应用程序生成一个DXF,我无法找到一个gem,所以我使用lybrary DXFWriter生成了python代码,并调用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