Module: Autocad
- Defined in:
- lib/autocad.rb,
lib/autocad.rb,
lib/autocad.rb,
lib/autocad/app.rb,
lib/autocad/arc.rb,
lib/faa/cleanup.rb,
lib/autocad/line.rb,
lib/autocad/plot.rb,
lib/autocad/text.rb,
lib/autocad/block.rb,
lib/autocad/layer.rb,
lib/autocad/model.rb,
lib/autocad/mtext.rb,
lib/autocad/paths.rb,
lib/autocad/point.rb,
lib/autocad/errors.rb,
lib/autocad/layout.rb,
lib/autocad/spline.rb,
lib/autocad/drawing.rb,
lib/autocad/element.rb,
lib/autocad/element.rb,
lib/autocad/element.rb,
lib/autocad/element.rb,
lib/autocad/element.rb,
lib/autocad/element.rb,
lib/autocad/element.rb,
lib/autocad/point3d.rb,
lib/autocad/version.rb,
lib/autocad/viewport.rb,
lib/autocad/dim_style.rb,
lib/autocad/pviewport.rb,
lib/autocad/enumerator.rb,
lib/autocad/text_style.rb,
lib/autocad/bounding_box.rb,
lib/autocad/event_handler.rb,
lib/autocad/selection_set.rb,
lib/autocad/block_reference.rb,
lib/autocad/selection_filter.rb,
lib/autocad/plot_configuration.rb,
lib/autocad/selection_set_adapter.rb
Overview
rbs_inline: enabled
Defined Under Namespace
Modules: AcadEntity, Color, Common, ElementTrait, ModelTrait Classes: App, Arc, Attribute, AttributeReference, Attributes, BSplineCurve, BSplineSurface, Block, BlockReference, BoundingBox, Circle, DimStyle, Drawing, DrawingClose, DrawingError, Element, Ellipse, Enumerator, EventHandler, ExistingFile, ExternalReference, FileNotFound, Layer, Layout, Line, Linetype, MText, ModelSpace, PViewport, PaperSpace, Paths, Plot, PlotConfiguration, Point, Point3d, Polyline, SelectionFilter, SelectionSet, SelectionSetAdapter, Spline, Text, TextStyle, Viewport
Constant Summary collapse
- ROOT =
Pathname.new(__dir__).parent
- Error =
Class.new(::RuntimeError)
- NonDGNFile =
Class.new(Error)
- MultipleUpdateError =
Class.new(Error)
- VERSION =
"0.5"
Class Method Summary collapse
-
.color_to_index(color) ⇒ Object
Convert a color value (symbol, string, or integer) to an AutoCAD color index.
-
.dgn2pdf(dir_or_file, outdir: dir_or_file, mode: :dir) ⇒ Object
Convert DGN/DWG files to PDF.
-
.drawings_in_dir(dir) ⇒ Object
Find drawings in directory.
-
.open_drawing(drawing) ⇒ Object
Open single drawing.
- .root ⇒ Object
- .run ⇒ Object
-
.save_current_drawing(dir, exit: true, model: false) ⇒ Object
Save current drawing with options.
-
.save_current_drawing_as_pdf(dir) ⇒ Object
Save current drawing as PDF.
-
.save_open_drawings(dir: Pathname.getwd, exit: true, model: false) ⇒ Object
Save all open drawings.
-
.with_drawings ⇒ Object
Process multiple drawings.
-
.with_drawings_in_dir(dir) ⇒ Object
Process drawings in directory.
-
.with_open_drawings ⇒ Object
Process currently open drawings.
Class Method Details
.color_to_index(color) ⇒ Object
Convert a color value (symbol, string, or integer) to an AutoCAD color index
107 108 109 110 |
# File 'lib/autocad.rb', line 107 def self.color_to_index(color) return color if color.is_a?(Integer) Color.to_index(color) end |
.dgn2pdf(dir_or_file, outdir: dir_or_file, mode: :dir) ⇒ Object
Convert DGN/DWG files to PDF
130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/autocad.rb', line 130 def dgn2pdf(dir_or_file, outdir: dir_or_file, mode: :dir) raise "Mode on of :dir or :file" unless [:dir, :file].include? mode if mode == :dir drawings = drawings_in_dir(dir_or_file) with_drawings(drawings) do |drawing| drawing.save_as_pdf(name: drawing.name, dir: outdir) end else open_drawing(dir_or_file) do |drawing| drawing.save_as_pdf(name: drawing.name, dir: outdir) end end end |
.drawings_in_dir(dir) ⇒ Object
Find drawings in directory
223 224 225 226 |
# File 'lib/autocad.rb', line 223 def drawings_in_dir(dir) dirpath = Pathname.new(dir). dirpath.glob("*.d{gn,wg,xf}").sort_by { _1.basename(".*").to_s.downcase } end |
.open_drawing(drawing) ⇒ Object
Open single drawing
231 232 233 |
# File 'lib/autocad.rb', line 231 def open_drawing(drawing, ...) App.open_drawing(drawing, ...) end |
.save_current_drawing(dir, exit: true, model: false) ⇒ Object
Save current drawing with options
190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
# File 'lib/autocad.rb', line 190 def save_current_drawing(dir, exit: true, model: false) if exit run do |app| drawing = app.current_drawing return unless drawing drawing.copy(dir: dir) drawing.save_as_pdf(dir:, model:) drawing.close(false) end else app = App.new drawing = app.current_drawing return unless drawing drawing.copy(dir: dir) drawing.save_as_pdf(dir: dir) app end end |
.save_current_drawing_as_pdf(dir) ⇒ Object
Save current drawing as PDF
212 213 214 215 216 217 218 |
# File 'lib/autocad.rb', line 212 def save_current_drawing_as_pdf(dir) App.run do |app| drawing = app.current_drawing drawing.save_as_pdf(dir: dir) drawing.close end end |
.save_open_drawings(dir: Pathname.getwd, exit: true, model: false) ⇒ Object
Save all open drawings
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
# File 'lib/autocad.rb', line 161 def save_open_drawings(dir: Pathname.getwd, exit: true, model: false) if exit run do |app| return unless app.has_drawings? drawings = app.drawings drawings.each do |d| d.copy(dir:) d.save_as_pdf(dir:, model:) d.close(false) end end else app = App.new return unless app.has_drawings? drawings = app.drawings drawings.each do |d| d.copy(dir:) d.save_as_pdf(dir:, model:) # d.close(false) end app end end |
.with_drawings ⇒ Object
Process multiple drawings
244 245 246 |
# File 'lib/autocad.rb', line 244 def with_drawings(...) App.with_drawings(...) end |
.with_drawings_in_dir(dir) ⇒ Object
Process drawings in directory
252 253 254 255 |
# File 'lib/autocad.rb', line 252 def with_drawings_in_dir(dir, ...) drawings = drawings_in_dir(dir) with_drawings(drawings, ...) end |
.with_open_drawings ⇒ Object
Process currently open drawings
147 148 149 150 151 152 153 154 |
# File 'lib/autocad.rb', line 147 def with_open_drawings(...) run do |app| return unless app.has_drawings? app.drawings.each do |drawing| yield drawing end end end |