microstation 0.8.6 → 0.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +26 -29
- data/Rakefile +45 -45
- data/bin/dgn2pdf +5 -6
- data/bin/dgn_template +23 -25
- data/bin/pw_print +11 -13
- data/cad_files/drawing_no_block.dgn +0 -0
- data/cad_files/drawing_with_3_block.dgn +0 -0
- data/cad_files/drawing_with_block.dgn +0 -0
- data/cad_files/drawing_with_text.dgn +0 -0
- data/lib/microstation/app.rb +91 -87
- data/lib/microstation/cad_input_queue.rb +10 -20
- data/lib/microstation/cell.rb +6 -18
- data/lib/microstation/changer.rb +3 -3
- data/lib/microstation/configuration.rb +33 -50
- data/lib/microstation/criteria_creation_t.rb +4 -8
- data/lib/microstation/dir.rb +27 -59
- data/lib/microstation/directory.rb +2 -7
- data/lib/microstation/drawing.rb +103 -102
- data/lib/microstation/element.rb +55 -68
- data/lib/microstation/enumerator.rb +4 -9
- data/lib/microstation/errors.rb +0 -5
- data/lib/microstation/event_handler.rb +1 -5
- data/lib/microstation/ext/pathname.rb +12 -14
- data/lib/microstation/ext/win32ole.rb +0 -2
- data/lib/microstation/extensions/faa.rb +12 -34
- data/lib/microstation/file_tests.rb +15 -50
- data/lib/microstation/functions.rb +10 -20
- data/lib/microstation/graphics.rb +6 -13
- data/lib/microstation/line.rb +2 -6
- data/lib/microstation/model.rb +11 -20
- data/lib/microstation/model_trait.rb +40 -40
- data/lib/microstation/ole_cad_input_message.rb +25 -34
- data/lib/microstation/ole_helper.rb +58 -66
- data/lib/microstation/pdf_support.rb +7 -16
- data/lib/microstation/point3d.rb +17 -30
- data/lib/microstation/primitive_command_interface.rb +8 -14
- data/lib/microstation/properties.rb +29 -17
- data/lib/microstation/property_handler.rb +6 -8
- data/lib/microstation/scan/color.rb +1 -8
- data/lib/microstation/scan/criteria.rb +17 -33
- data/lib/microstation/scan/klass.rb +8 -12
- data/lib/microstation/scan/level.rb +2 -9
- data/lib/microstation/scan/line_style.rb +4 -12
- data/lib/microstation/scan/line_weight.rb +1 -3
- data/lib/microstation/scan/range.rb +2 -8
- data/lib/microstation/scan/scan_trait.rb +48 -51
- data/lib/microstation/scan/subtype.rb +0 -10
- data/lib/microstation/scan/type.rb +9 -15
- data/lib/microstation/scan_trait.rb +13 -20
- data/lib/microstation/scanner.rb +1 -11
- data/lib/microstation/tag.rb +12 -21
- data/lib/microstation/tag_set.rb +52 -71
- data/lib/microstation/tag_set_trait.rb +6 -10
- data/lib/microstation/tagged_element.rb +16 -28
- data/lib/microstation/template.rb +15 -14
- data/lib/microstation/template_info.rb +35 -49
- data/lib/microstation/template_runner.rb +14 -22
- data/lib/microstation/text.rb +15 -19
- data/lib/microstation/text_node.rb +17 -26
- data/lib/microstation/ts/attribute.rb +16 -20
- data/lib/microstation/ts/instance.rb +28 -38
- data/lib/microstation/ts/tagset_trait.rb +5 -12
- data/lib/microstation/types.rb +0 -3
- data/lib/microstation/version.rb +1 -3
- data/lib/microstation/wrap.rb +3 -10
- data/lib/microstation.rb +53 -68
- data/spec/microstation/app_spec.rb +49 -46
- data/spec/microstation/configuration_spec.rb +45 -43
- data/spec/microstation/drawing_spec.rb +103 -101
- data/spec/microstation/functions_spec.rb +18 -12
- data/spec/microstation/tag_set_spec.rb +57 -55
- data/spec/microstation/template_spec.rb +41 -42
- data/spec/microstation/text_node_spec.rb +16 -14
- data/spec/microstation/text_spec.rb +10 -8
- data/spec/microstation_spec.rb +18 -17
- data/spec/spec_helper.rb +18 -18
- metadata +26 -12
    
        data/lib/microstation/point3d.rb
    CHANGED
    
    | @@ -1,71 +1,58 @@ | |
| 1 1 | 
             
            module Microstation
         | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 2 | 
             
              class Point3d
         | 
| 6 | 
            -
             | 
| 7 3 | 
             
                class << self
         | 
| 8 | 
            -
             | 
| 9 4 | 
             
                  def ole_point3d?(ole)
         | 
| 10 | 
            -
                    ole. | 
| 5 | 
            +
                    ole.instance_of?(WIN32OLE_RECORD) && ole.typename == "Point3d"
         | 
| 11 6 | 
             
                  end
         | 
| 12 7 |  | 
| 13 | 
            -
                  def cartesian_to_polar(x,y)
         | 
| 14 | 
            -
                    r = Math.sqrt(x*x + y*y)
         | 
| 15 | 
            -
                    angle = Angle.radians(Math.atan2(y,x))
         | 
| 16 | 
            -
                    [r,angle]
         | 
| 8 | 
            +
                  def cartesian_to_polar(x, y)
         | 
| 9 | 
            +
                    r = Math.sqrt(x * x + y * y)
         | 
| 10 | 
            +
                    angle = Angle.radians(Math.atan2(y, x))
         | 
| 11 | 
            +
                    [r, angle]
         | 
| 17 12 | 
             
                  end
         | 
| 18 13 |  | 
| 19 | 
            -
                  def from_polar_degrees(r,a)
         | 
| 20 | 
            -
                    
         | 
| 14 | 
            +
                  def from_polar_degrees(r, a)
         | 
| 21 15 | 
             
                  end
         | 
| 22 16 |  | 
| 23 17 | 
             
                  def from_ole(ole)
         | 
| 24 18 | 
             
                    new(ole.X, ole.Y, ole.Z)
         | 
| 25 19 | 
             
                  end
         | 
| 26 20 |  | 
| 27 | 
            -
                  def polar_to_cartesian(r,a)
         | 
| 28 | 
            -
             | 
| 21 | 
            +
                  def polar_to_cartesian(r, a)
         | 
| 29 22 | 
             
                  end
         | 
| 30 | 
            -
             | 
| 31 23 | 
             
                end
         | 
| 32 24 |  | 
| 33 25 | 
             
                attr_reader :x, :y, :z
         | 
| 34 26 |  | 
| 35 | 
            -
                def initialize(x=0,y=0,z=0)
         | 
| 27 | 
            +
                def initialize(x = 0, y = 0, z = 0)
         | 
| 36 28 | 
             
                  @x = x
         | 
| 37 29 | 
             
                  @y = y
         | 
| 38 30 | 
             
                  @z = z
         | 
| 39 31 | 
             
                end
         | 
| 40 32 |  | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
                  case pt
         | 
| 33 | 
            +
                def +(other)
         | 
| 34 | 
            +
                  case other
         | 
| 44 35 | 
             
                  when Point3d
         | 
| 45 | 
            -
                    self.class.new( | 
| 36 | 
            +
                    self.class.new(x + other.x, y + other.y, z + other.z)
         | 
| 46 37 | 
             
                  when Array
         | 
| 47 | 
            -
                    self.class.new( | 
| 38 | 
            +
                    self.class.new(x + other[0], y + other[1])
         | 
| 48 39 | 
             
                  end
         | 
| 49 40 | 
             
                end
         | 
| 50 41 |  | 
| 51 | 
            -
                def -( | 
| 52 | 
            -
                  case  | 
| 42 | 
            +
                def -(other)
         | 
| 43 | 
            +
                  case other
         | 
| 53 44 | 
             
                  when Point3d
         | 
| 54 | 
            -
                    self.class.new( | 
| 45 | 
            +
                    self.class.new(x - other.x, y - other.y, z - other.z)
         | 
| 55 46 | 
             
                  when Array
         | 
| 56 | 
            -
                    self.class.new( | 
| 47 | 
            +
                    self.class.new(x - other[0], y - other[1])
         | 
| 57 48 | 
             
                  end
         | 
| 58 49 | 
             
                end
         | 
| 59 50 |  | 
| 60 51 | 
             
                def zero
         | 
| 61 | 
            -
                  new(0.0,0.0,0,0)
         | 
| 52 | 
            +
                  new(0.0, 0.0, 0, 0)
         | 
| 62 53 | 
             
                end
         | 
| 63 54 |  | 
| 64 55 | 
             
                def to_cartesian
         | 
| 65 | 
            -
             | 
| 66 56 | 
             
                end
         | 
| 67 | 
            -
             | 
| 68 57 | 
             
              end
         | 
| 69 | 
            -
             | 
| 70 | 
            -
             | 
| 71 58 | 
             
            end
         | 
| @@ -1,5 +1,4 @@ | |
| 1 1 | 
             
            module PrimitiveCommandInterface
         | 
| 2 | 
            -
             | 
| 3 2 | 
             
              def Keyin(keyin)
         | 
| 4 3 | 
             
              end
         | 
| 5 4 |  | 
| @@ -12,17 +11,14 @@ module PrimitiveCommandInterface | |
| 12 11 | 
             
              def Cleanup
         | 
| 13 12 | 
             
              end
         | 
| 14 13 |  | 
| 15 | 
            -
              def Dynamics(pt,view,drawmode)
         | 
| 14 | 
            +
              def Dynamics(pt, view, drawmode)
         | 
| 16 15 | 
             
              end
         | 
| 17 16 |  | 
| 18 17 | 
             
              def Start
         | 
| 19 18 | 
             
              end
         | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 19 | 
             
            end
         | 
| 23 20 |  | 
| 24 | 
            -
            class LineCreation | 
| 25 | 
            -
             | 
| 21 | 
            +
            class LineCreation
         | 
| 26 22 | 
             
              include PrimitiveCommandInterface
         | 
| 27 23 |  | 
| 28 24 | 
             
              attr_reader :points
         | 
| @@ -32,25 +28,24 @@ class LineCreation | |
| 32 28 | 
             
                @points = Array.new(2)
         | 
| 33 29 | 
             
              end
         | 
| 34 30 |  | 
| 35 | 
            -
              def DataPoint(pt,  | 
| 31 | 
            +
              def DataPoint(pt, _view)
         | 
| 36 32 | 
             
                case points.compact.size
         | 
| 37 33 | 
             
                when 0
         | 
| 38 34 | 
             
                  app.ole_obj.CommandState.StartDynamics
         | 
| 39 35 | 
             
                  @points[0] = pt
         | 
| 40 36 | 
             
                  app.show_prompt "Place end point"
         | 
| 41 37 | 
             
                when 1
         | 
| 42 | 
            -
                  @points[1] = | 
| 38 | 
            +
                  @points[1] = pt
         | 
| 43 39 | 
             
                  line_from_pts(@points)
         | 
| 44 40 | 
             
                  @points[0] = @points[1]
         | 
| 45 41 | 
             
                end
         | 
| 46 42 | 
             
              end
         | 
| 47 43 |  | 
| 44 | 
            +
              def Dynamics(pt, _view, _drawmode)
         | 
| 45 | 
            +
                return unless @points.compact.size == 1
         | 
| 48 46 |  | 
| 49 | 
            -
             | 
| 50 | 
            -
                 | 
| 51 | 
            -
                  @points[1] = pt
         | 
| 52 | 
            -
                  line = line_from_pts(@points)
         | 
| 53 | 
            -
                end
         | 
| 47 | 
            +
                @points[1] = pt
         | 
| 48 | 
            +
                line = line_from_pts(@points)
         | 
| 54 49 | 
             
              end
         | 
| 55 50 |  | 
| 56 51 | 
             
              def Reset
         | 
| @@ -62,5 +57,4 @@ class LineCreation | |
| 62 57 | 
             
                app.show_command "VBA PlaceLine Example"
         | 
| 63 58 | 
             
                app.show_prompt "Select start of line"
         | 
| 64 59 | 
             
              end
         | 
| 65 | 
            -
             | 
| 66 60 | 
             
            end
         | 
| @@ -1,61 +1,73 @@ | |
| 1 1 | 
             
            module Microstation
         | 
| 2 | 
            -
             | 
| 3 2 | 
             
              module Properties
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
                def author=(var = nil)
         | 
| 6 4 | 
             
                  if var
         | 
| 7 5 | 
             
                    @ole_obj.Author = var
         | 
| 8 6 | 
             
                  else
         | 
| 9 | 
            -
                     | 
| 7 | 
            +
                    begin
         | 
| 8 | 
            +
                      @ole_obj.Author
         | 
| 9 | 
            +
                    rescue
         | 
| 10 | 
            +
                      nil
         | 
| 11 | 
            +
                    end
         | 
| 10 12 | 
             
                  end
         | 
| 11 | 
            -
             | 
| 12 13 | 
             
                end
         | 
| 13 14 |  | 
| 14 | 
            -
             | 
| 15 | 
            +
                alias_method :author, :author=
         | 
| 15 16 |  | 
| 16 17 | 
             
                def subject=(var = nil)
         | 
| 17 18 | 
             
                  if var
         | 
| 18 19 | 
             
                    @ole_obj.Subject = var
         | 
| 19 20 | 
             
                  else
         | 
| 20 | 
            -
                     | 
| 21 | 
            +
                    begin
         | 
| 22 | 
            +
                      @ole_obj.Subject
         | 
| 23 | 
            +
                    rescue
         | 
| 24 | 
            +
                      nil
         | 
| 25 | 
            +
                    end
         | 
| 21 26 | 
             
                  end
         | 
| 22 | 
            -
             | 
| 23 27 | 
             
                end
         | 
| 24 28 |  | 
| 25 | 
            -
             | 
| 29 | 
            +
                alias_method :subject, :subject=
         | 
| 26 30 |  | 
| 27 31 | 
             
                def comments=(var = nil)
         | 
| 28 32 | 
             
                  if var
         | 
| 29 33 | 
             
                    @ole_obj.Comments = var
         | 
| 30 34 | 
             
                  else
         | 
| 31 | 
            -
                     | 
| 35 | 
            +
                    begin
         | 
| 36 | 
            +
                      @ole_obj.Comments
         | 
| 37 | 
            +
                    rescue
         | 
| 38 | 
            +
                      nil
         | 
| 39 | 
            +
                    end
         | 
| 32 40 | 
             
                  end
         | 
| 33 41 | 
             
                end
         | 
| 34 42 |  | 
| 35 | 
            -
             | 
| 43 | 
            +
                alias_method :comments, :comments=
         | 
| 36 44 |  | 
| 37 45 | 
             
                def title=(var = nil)
         | 
| 38 46 | 
             
                  if var
         | 
| 39 47 | 
             
                    @ole_obj.Title = var
         | 
| 40 48 | 
             
                  else
         | 
| 41 | 
            -
                     | 
| 49 | 
            +
                    begin
         | 
| 50 | 
            +
                      @ole_obj.Title
         | 
| 51 | 
            +
                    rescue
         | 
| 52 | 
            +
                      nil
         | 
| 53 | 
            +
                    end
         | 
| 42 54 | 
             
                  end
         | 
| 43 55 | 
             
                end
         | 
| 44 56 |  | 
| 45 | 
            -
                alias_method :title | 
| 57 | 
            +
                alias_method :title, :title=
         | 
| 46 58 |  | 
| 47 59 | 
             
                def keywords=(var = nil)
         | 
| 48 60 | 
             
                  if var
         | 
| 49 61 | 
             
                    @ole_obj.Keywords = var
         | 
| 50 62 | 
             
                  else
         | 
| 51 | 
            -
                     | 
| 63 | 
            +
                    begin
         | 
| 64 | 
            +
                      @ole_obj.Keywords
         | 
| 65 | 
            +
                    rescue
         | 
| 66 | 
            +
                      nil
         | 
| 67 | 
            +
                    end
         | 
| 52 68 | 
             
                  end
         | 
| 53 69 | 
             
                end
         | 
| 54 70 |  | 
| 55 | 
            -
             | 
| 56 71 | 
             
                alias_method :keywords, :keywords=
         | 
| 57 | 
            -
             | 
| 58 72 | 
             
              end
         | 
| 59 | 
            -
             | 
| 60 | 
            -
             | 
| 61 73 | 
             
            end
         | 
| @@ -1,7 +1,5 @@ | |
| 1 1 | 
             
            module Microstation
         | 
| 2 | 
            -
             | 
| 3 2 | 
             
              class PropertyHandler
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
                attr_reader :ole_obj
         | 
| 6 4 |  | 
| 7 5 | 
             
                def initialize(ole)
         | 
| @@ -10,29 +8,31 @@ module Microstation | |
| 10 8 |  | 
| 11 9 | 
             
                def has_property?(value)
         | 
| 12 10 | 
             
                  prop = ole_obj.SelectByAccessString(value)
         | 
| 13 | 
            -
                  !! | 
| 11 | 
            +
                  !!prop
         | 
| 14 12 | 
             
                end
         | 
| 15 13 |  | 
| 16 14 | 
             
                def [](property)
         | 
| 17 15 | 
             
                  return unless has_property?(property)
         | 
| 16 | 
            +
             | 
| 18 17 | 
             
                  ole_obj.GetValue
         | 
| 19 18 | 
             
                end
         | 
| 20 19 |  | 
| 21 20 | 
             
                def get_property_as_point3d(property)
         | 
| 22 21 | 
             
                  return unless has_property?(property)
         | 
| 22 | 
            +
             | 
| 23 23 | 
             
                  ole_pt = ole_obj.GetValueAsPoint3d
         | 
| 24 24 | 
             
                  Point3d.new(ole_pt)
         | 
| 25 25 | 
             
                end
         | 
| 26 26 |  | 
| 27 | 
            -
             | 
| 28 | 
            -
                def []=(property,value)
         | 
| 27 | 
            +
                def []=(property, value)
         | 
| 29 28 | 
             
                  return unless has_property?(property)
         | 
| 29 | 
            +
             | 
| 30 30 | 
             
                  ole_obj.SetValue(value)
         | 
| 31 31 | 
             
                end
         | 
| 32 32 |  | 
| 33 33 | 
             
                def property_names
         | 
| 34 34 | 
             
                  names = ole_obj.GetAccessStrings
         | 
| 35 | 
            -
                  result | 
| 35 | 
            +
                  result = []
         | 
| 36 36 | 
             
                  names.each do |e|
         | 
| 37 37 | 
             
                    if block_given?
         | 
| 38 38 | 
             
                      yield e
         | 
| @@ -42,7 +42,5 @@ module Microstation | |
| 42 42 | 
             
                  end
         | 
| 43 43 | 
             
                  result unless block_given?
         | 
| 44 44 | 
             
                end
         | 
| 45 | 
            -
             | 
| 46 45 | 
             
              end
         | 
| 47 | 
            -
             | 
| 48 46 | 
             
            end
         | 
| @@ -1,9 +1,6 @@ | |
| 1 1 | 
             
            module Microstation
         | 
| 2 | 
            -
             | 
| 3 2 | 
             
              module Scan
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
                module Color
         | 
| 6 | 
            -
             | 
| 7 4 | 
             
                  def color_inclusions
         | 
| 8 5 | 
             
                    @color_inclusions ||= []
         | 
| 9 6 | 
             
                  end
         | 
| @@ -23,16 +20,12 @@ module Microstation | |
| 23 20 |  | 
| 24 21 | 
             
                  def resolve_color_scans
         | 
| 25 22 | 
             
                    return unless color_inclusions.size > 0
         | 
| 23 | 
            +
             | 
| 26 24 | 
             
                    reset_ole_colors
         | 
| 27 25 | 
             
                    color_inclusions.each do |color|
         | 
| 28 26 | 
             
                      ole_obj.IncludeColor(color)
         | 
| 29 27 | 
             
                    end
         | 
| 30 28 | 
             
                  end
         | 
| 31 | 
            -
             | 
| 32 29 | 
             
                end
         | 
| 33 | 
            -
             | 
| 34 30 | 
             
              end
         | 
| 35 31 | 
             
            end
         | 
| 36 | 
            -
             | 
| 37 | 
            -
                  
         | 
| 38 | 
            -
                  
         | 
| @@ -1,30 +1,23 @@ | |
| 1 | 
            -
            require_relative  | 
| 2 | 
            -
            require_relative  | 
| 3 | 
            -
            require_relative  | 
| 4 | 
            -
            require_relative  | 
| 5 | 
            -
            require_relative  | 
| 6 | 
            -
            require_relative  | 
| 7 | 
            -
            require_relative  | 
| 8 | 
            -
            require_relative  | 
| 1 | 
            +
            require_relative "klass"
         | 
| 2 | 
            +
            require_relative "type"
         | 
| 3 | 
            +
            require_relative "level"
         | 
| 4 | 
            +
            require_relative "color"
         | 
| 5 | 
            +
            require_relative "line_style"
         | 
| 6 | 
            +
            require_relative "line_weight"
         | 
| 7 | 
            +
            require_relative "subtype"
         | 
| 8 | 
            +
            require_relative "range"
         | 
| 9 9 |  | 
| 10 10 | 
             
            module Microstation
         | 
| 11 | 
            -
             | 
| 12 11 | 
             
              class App
         | 
| 13 | 
            -
             | 
| 14 12 | 
             
                def create_ole_scan_criteria
         | 
| 15 13 | 
             
                  ole_obj.CreateObjectInMicroStation("MicroStationDGN.ElementScanCriteria")
         | 
| 16 14 | 
             
                end
         | 
| 17 | 
            -
             | 
| 18 15 | 
             
              end
         | 
| 19 | 
            -
             | 
| 20 16 | 
             
            end
         | 
| 21 17 |  | 
| 22 18 | 
             
            module Microstation
         | 
| 23 | 
            -
             | 
| 24 19 | 
             
              module Scan
         | 
| 25 | 
            -
             | 
| 26 20 | 
             
                class Criteria
         | 
| 27 | 
            -
             | 
| 28 21 | 
             
                  include Scan::Klass
         | 
| 29 22 | 
             
                  include Scan::Type
         | 
| 30 23 | 
             
                  include Scan::Level
         | 
| @@ -34,25 +27,23 @@ module Microstation | |
| 34 27 | 
             
                  include Scan::Subtype
         | 
| 35 28 | 
             
                  include Scan::Range
         | 
| 36 29 |  | 
| 37 | 
            -
                  attr_reader :app
         | 
| 30 | 
            +
                  attr_reader :app, :ole_obj
         | 
| 38 31 |  | 
| 39 | 
            -
                  def self.create_scanner(name=nil, app | 
| 40 | 
            -
                    sc = create(name,app)
         | 
| 32 | 
            +
                  def self.create_scanner(name = nil, app, &block)
         | 
| 33 | 
            +
                    sc = create(name, app)
         | 
| 41 34 | 
             
                    return sc unless block
         | 
| 42 | 
            -
             | 
| 35 | 
            +
             | 
| 36 | 
            +
                    (block.arity < 1) ? sc.instance_eval(&block) : block.call(sc)
         | 
| 43 37 | 
             
                    sc
         | 
| 44 38 | 
             
                  end
         | 
| 45 39 |  | 
| 46 | 
            -
                  def self.create(name=nil,app)
         | 
| 40 | 
            +
                  def self.create(name = nil, app)
         | 
| 47 41 | 
             
                    sc = new(app)
         | 
| 48 | 
            -
                    if name.nil?
         | 
| 49 | 
            -
                      name = "anon#{app.scanners.size + 1}"
         | 
| 50 | 
            -
                    end
         | 
| 42 | 
            +
                    name = "anon#{app.scanners.size + 1}" if name.nil?
         | 
| 51 43 | 
             
                    app.scanners[name] = sc
         | 
| 52 44 | 
             
                    sc
         | 
| 53 45 | 
             
                  end
         | 
| 54 46 |  | 
| 55 | 
            -
             | 
| 56 47 | 
             
                  def initialize(app)
         | 
| 57 48 | 
             
                    @app = app
         | 
| 58 49 | 
             
                    @ole_obj = @app.create_ole_scan_criteria
         | 
| @@ -74,16 +65,9 @@ module Microstation | |
| 74 65 | 
             
                    @ole_obj = nil
         | 
| 75 66 | 
             
                  end
         | 
| 76 67 |  | 
| 77 | 
            -
                  def  | 
| 78 | 
            -
                    @ole_obj
         | 
| 79 | 
            -
                  end
         | 
| 80 | 
            -
             | 
| 81 | 
            -
                  def method_missing(method,*args)
         | 
| 82 | 
            -
                    @ole_obj.send(method,*args)
         | 
| 68 | 
            +
                  def method_missing(method, *args)
         | 
| 69 | 
            +
                    @ole_obj.send(method, *args)
         | 
| 83 70 | 
             
                  end
         | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 86 71 | 
             
                end
         | 
| 87 72 | 
             
              end
         | 
| 88 | 
            -
             | 
| 89 73 | 
             
            end
         | 
| @@ -1,15 +1,12 @@ | |
| 1 1 | 
             
            module Microstation
         | 
| 2 | 
            -
             | 
| 3 2 | 
             
              module Scan
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
                module Klass
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                  #  | 
| 8 | 
            -
                  #  | 
| 9 | 
            -
                  #  | 
| 10 | 
            -
                  #  | 
| 11 | 
            -
                  #  | 
| 12 | 
            -
                  # msdElementClassLinearPatterned #5 (&H5)  
         | 
| 4 | 
            +
                  # msdElementClassPrimary # 0 (&H0)
         | 
| 5 | 
            +
                  # msdElementClassPatternComponent #1 (&H1)
         | 
| 6 | 
            +
                  # msdElementClassConstruction #2 (&H2)
         | 
| 7 | 
            +
                  # msdElementClassDimension #3 (&H3)
         | 
| 8 | 
            +
                  # msdElementClassPrimaryRule #4 (&H4)
         | 
| 9 | 
            +
                  # msdElementClassLinearPatterned #5 (&H5)
         | 
| 13 10 | 
             
                  # msdElementClassContructionRule #6 (&H6)
         | 
| 14 11 |  | 
| 15 12 | 
             
                  def class_inclusions
         | 
| @@ -23,7 +20,7 @@ module Microstation | |
| 23 20 |  | 
| 24 21 | 
             
                  def reset_ole_classes
         | 
| 25 22 | 
             
                    ole_obj.ExcludeAllClasses
         | 
| 26 | 
            -
                  end | 
| 23 | 
            +
                  end
         | 
| 27 24 |  | 
| 28 25 | 
             
                  def include_class(klass)
         | 
| 29 26 | 
             
                    class_inclusions << klass
         | 
| @@ -31,13 +28,12 @@ module Microstation | |
| 31 28 |  | 
| 32 29 | 
             
                  def resolve_class_scans
         | 
| 33 30 | 
             
                    return unless class_inclusions.size > 0
         | 
| 31 | 
            +
             | 
| 34 32 | 
             
                    reset_ole_classes
         | 
| 35 33 | 
             
                    class_inclusions.each do |klass|
         | 
| 36 34 | 
             
                      ole_obj.IncludeClass(klass)
         | 
| 37 35 | 
             
                    end
         | 
| 38 36 | 
             
                  end
         | 
| 39 | 
            -
                  
         | 
| 40 37 | 
             
                end
         | 
| 41 38 | 
             
              end
         | 
| 42 | 
            -
             | 
| 43 39 | 
             
            end
         | 
| @@ -1,9 +1,6 @@ | |
| 1 1 | 
             
            module Microstation
         | 
| 2 | 
            -
             | 
| 3 2 | 
             
              module Scan
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
                module Level
         | 
| 6 | 
            -
             | 
| 7 4 | 
             
                  def level_inclusions
         | 
| 8 5 | 
             
                    @level_inclusions ||= []
         | 
| 9 6 | 
             
                  end
         | 
| @@ -11,7 +8,7 @@ module Microstation | |
| 11 8 | 
             
                  def include_level(level)
         | 
| 12 9 | 
             
                    level_inclusions << level
         | 
| 13 10 | 
             
                  end
         | 
| 14 | 
            -
             | 
| 11 | 
            +
             | 
| 15 12 | 
             
                  def reset_levels
         | 
| 16 13 | 
             
                    reset_ole_levels
         | 
| 17 14 | 
             
                    @level_inclusions = []
         | 
| @@ -23,16 +20,12 @@ module Microstation | |
| 23 20 |  | 
| 24 21 | 
             
                  def resolve_level_scans
         | 
| 25 22 | 
             
                    return unless level_inclusions.size > 0
         | 
| 23 | 
            +
             | 
| 26 24 | 
             
                    reset_ole_levels
         | 
| 27 25 | 
             
                    level_inclusions.each do |level|
         | 
| 28 26 | 
             
                      ole_obj.IncludeLevel(level)
         | 
| 29 27 | 
             
                    end
         | 
| 30 28 | 
             
                  end
         | 
| 31 | 
            -
             | 
| 32 29 | 
             
                end
         | 
| 33 | 
            -
             | 
| 34 30 | 
             
              end
         | 
| 35 | 
            -
             | 
| 36 31 | 
             
            end
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                  
         | 
| @@ -1,13 +1,11 @@ | |
| 1 1 | 
             
            module Microstation
         | 
| 2 | 
            -
             | 
| 3 2 | 
             
              module Scan
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
                module LineStyle
         | 
| 6 | 
            -
             | 
| 7 4 | 
             
                  def linestyles
         | 
| 8 | 
            -
                    @app.active_design_file.LineStyles | 
| 5 | 
            +
                    @app.active_design_file.LineStyles
         | 
| 6 | 
            +
                  rescue
         | 
| 7 | 
            +
                    []
         | 
| 9 8 | 
             
                  end
         | 
| 10 | 
            -
                  
         | 
| 11 9 |  | 
| 12 10 | 
             
                  def linestyle_inclusions
         | 
| 13 11 | 
             
                    @linestyle_inclusions ||= []
         | 
| @@ -28,18 +26,12 @@ module Microstation | |
| 28 26 |  | 
| 29 27 | 
             
                  def resolve_linestyle_scans
         | 
| 30 28 | 
             
                    return unless linestyle_inclusions.size > 0
         | 
| 29 | 
            +
             | 
| 31 30 | 
             
                    reset_ole_linestyles
         | 
| 32 31 | 
             
                    linestyle_inclusions.each do |linestyle|
         | 
| 33 32 | 
             
                      ole_obj.IncludeLineStyle(linestyle)
         | 
| 34 33 | 
             
                    end
         | 
| 35 34 | 
             
                  end
         | 
| 36 | 
            -
             | 
| 37 35 | 
             
                end
         | 
| 38 | 
            -
             | 
| 39 36 | 
             
              end
         | 
| 40 | 
            -
             | 
| 41 37 | 
             
            end
         | 
| 42 | 
            -
             | 
| 43 | 
            -
                  
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                  
         | 
| @@ -1,9 +1,6 @@ | |
| 1 1 | 
             
            module Microstation
         | 
| 2 | 
            -
             | 
| 3 2 | 
             
              module Scan
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
                module LineWeight
         | 
| 6 | 
            -
             | 
| 7 4 | 
             
                  def lineweight_inclusions
         | 
| 8 5 | 
             
                    @lineweight_inclusions ||= []
         | 
| 9 6 | 
             
                  end
         | 
| @@ -23,6 +20,7 @@ module Microstation | |
| 23 20 |  | 
| 24 21 | 
             
                  def resolve_lineweight_scans
         | 
| 25 22 | 
             
                    return unless lineweight_inclusions.size > 0
         | 
| 23 | 
            +
             | 
| 26 24 | 
             
                    reset_ole_lineweights
         | 
| 27 25 | 
             
                    lineweight_inclusions.each do |lineweight|
         | 
| 28 26 | 
             
                      ole_obj.IncludeLineWeight(lineweight)
         | 
| @@ -1,19 +1,13 @@ | |
| 1 1 | 
             
            module Microstation
         | 
| 2 | 
            -
             | 
| 3 2 | 
             
              module Scan
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
                module Range
         | 
| 6 | 
            -
             | 
| 7 4 | 
             
                  def include_within_range(range)
         | 
| 8 5 | 
             
                    ole_obj.IncludeOnlyWithinRange(range)
         | 
| 9 6 | 
             
                  end
         | 
| 10 7 |  | 
| 11 | 
            -
                  def range_from_points(pt1,pt2)
         | 
| 12 | 
            -
                    app.Range3dFromPoint3dPoint3d(pt1,pt2)
         | 
| 8 | 
            +
                  def range_from_points(pt1, pt2)
         | 
| 9 | 
            +
                    app.Range3dFromPoint3dPoint3d(pt1, pt2)
         | 
| 13 10 | 
             
                  end
         | 
| 14 | 
            -
             | 
| 15 11 | 
             
                end
         | 
| 16 12 | 
             
              end
         | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 13 | 
             
            end
         | 
| @@ -1,51 +1,48 @@ | |
| 1 | 
            -
            module Microstation
         | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
                  sc  | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
                   | 
| 25 | 
            -
                   | 
| 26 | 
            -
                   | 
| 27 | 
            -
             | 
| 28 | 
            -
                   | 
| 29 | 
            -
                    scan_enum.each do |item|
         | 
| 30 | 
            -
                       | 
| 31 | 
            -
                    end
         | 
| 32 | 
            -
                   | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
                 | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
                   | 
| 46 | 
            -
                end
         | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
              end
         | 
| 50 | 
            -
             | 
| 51 | 
            -
            end
         | 
| 1 | 
            +
            module Microstation
         | 
| 2 | 
            +
              module ScanTrait
         | 
| 3 | 
            +
                def create_scanner(&block)
         | 
| 4 | 
            +
                  app.create_scanner(&block)
         | 
| 5 | 
            +
                end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                def scan_graphical(&block)
         | 
| 8 | 
            +
                  sc = create_scanner
         | 
| 9 | 
            +
                  sc.ExcludeNonGraphical
         | 
| 10 | 
            +
                  scan(sc, &block)
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                def scan_text(&block)
         | 
| 14 | 
            +
                  sc = create_scanner do
         | 
| 15 | 
            +
                    include_textual
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
                  scan(sc, &block)
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                def scan(criteria, &block)
         | 
| 21 | 
            +
                  scan_result = ole_run_scan(criteria)
         | 
| 22 | 
            +
                  return [] unless scan_result
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                  scan_enum = Microstation::Enumerator.new(scan_result)
         | 
| 25 | 
            +
                  result = []
         | 
| 26 | 
            +
                  if block
         | 
| 27 | 
            +
                    scan_enum.each(&block)
         | 
| 28 | 
            +
                  else
         | 
| 29 | 
            +
                    scan_enum.each do |item|
         | 
| 30 | 
            +
                      result << item
         | 
| 31 | 
            +
                    end
         | 
| 32 | 
            +
                  end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                  return result unless block
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                private
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                def ole_run_scan(criteria)
         | 
| 40 | 
            +
                  criteria.resolve
         | 
| 41 | 
            +
                  scan_result = begin
         | 
| 42 | 
            +
                    ole_obj.Scan(criteria.ole_obj)
         | 
| 43 | 
            +
                  rescue
         | 
| 44 | 
            +
                    nil
         | 
| 45 | 
            +
                  end
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
              end
         | 
| 48 | 
            +
            end
         | 
| @@ -1,9 +1,6 @@ | |
| 1 1 | 
             
            module Microstation
         | 
| 2 | 
            -
             | 
| 3 2 | 
             
              module Scan
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
                module Subtype
         | 
| 6 | 
            -
             | 
| 7 4 | 
             
                  def subtype_inclusions
         | 
| 8 5 | 
             
                    @subtype_inclusions ||= []
         | 
| 9 6 | 
             
                  end
         | 
| @@ -28,13 +25,6 @@ module Microstation | |
| 28 25 | 
             
                      ole_obj.IncludeSubtype(subtype)
         | 
| 29 26 | 
             
                    end
         | 
| 30 27 | 
             
                  end
         | 
| 31 | 
            -
             | 
| 32 28 | 
             
                end
         | 
| 33 | 
            -
             | 
| 34 29 | 
             
              end
         | 
| 35 | 
            -
             | 
| 36 30 | 
             
            end
         | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
                  
         | 
| 40 | 
            -
                  
         |