microstation 0.4.1 → 0.8.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +7 -0
  2. data/.autotest +23 -23
  3. data/.rspec +2 -2
  4. data/Gemfile +29 -10
  5. data/History.txt +6 -6
  6. data/LICENSE.adoc +22 -0
  7. data/Manifest.txt +91 -60
  8. data/README.adoc +131 -0
  9. data/Rakefile +72 -30
  10. data/bin/dgn2pdf +36 -37
  11. data/bin/dgn_template +107 -0
  12. data/bin/pw_print +35 -0
  13. data/cad_files/drawing_faatitle_in_non_default_model.dgn +0 -0
  14. data/cad_files/drawing_no_block.dgn +0 -0
  15. data/cad_files/drawing_with_3_block.dgn +0 -0
  16. data/cad_files/drawing_with_block.dgn +0 -0
  17. data/cad_files/drawing_with_text.dgn +0 -0
  18. data/cad_files/seed2d.dgn +0 -0
  19. data/cad_files/seed3d.dgn +0 -0
  20. data/lib/microstation/app.rb +781 -286
  21. data/lib/microstation/cad_input_queue.rb +100 -25
  22. data/lib/microstation/cell.rb +191 -0
  23. data/lib/microstation/changer.rb +70 -0
  24. data/lib/microstation/configuration.rb +193 -57
  25. data/lib/microstation/criteria_creation_t.rb +23 -0
  26. data/lib/microstation/dir.rb +252 -252
  27. data/lib/microstation/directory.rb +46 -0
  28. data/lib/microstation/drawing.rb +686 -189
  29. data/lib/microstation/element.rb +311 -0
  30. data/lib/microstation/enumerator.rb +32 -29
  31. data/lib/microstation/errors.rb +17 -0
  32. data/lib/microstation/event_handler.rb +28 -0
  33. data/lib/microstation/ext/pathname.rb +23 -25
  34. data/lib/microstation/ext/win32ole.rb +7 -0
  35. data/lib/microstation/extensions/faa.rb +124 -0
  36. data/lib/microstation/file_tests.rb +68 -0
  37. data/lib/microstation/functions.rb +60 -0
  38. data/lib/microstation/graphics.rb +35 -0
  39. data/lib/microstation/line.rb +19 -0
  40. data/lib/microstation/model.rb +45 -0
  41. data/lib/microstation/model_trait.rb +189 -0
  42. data/lib/microstation/ole_cad_input_message.rb +101 -0
  43. data/lib/microstation/ole_helper.rb +152 -0
  44. data/lib/microstation/pdf_support.rb +40 -40
  45. data/lib/microstation/point3d.rb +71 -0
  46. data/lib/microstation/primitive_command_interface.rb +66 -0
  47. data/lib/microstation/properties.rb +61 -57
  48. data/lib/microstation/property_handler.rb +48 -0
  49. data/lib/microstation/scan/color.rb +38 -38
  50. data/lib/microstation/scan/criteria.rb +89 -85
  51. data/lib/microstation/scan/klass.rb +43 -43
  52. data/lib/microstation/scan/level.rb +38 -38
  53. data/lib/microstation/scan/line_style.rb +45 -45
  54. data/lib/microstation/scan/line_weight.rb +33 -33
  55. data/lib/microstation/scan/range.rb +19 -0
  56. data/lib/microstation/scan/scan_trait.rb +51 -0
  57. data/lib/microstation/scan/subtype.rb +40 -40
  58. data/lib/microstation/scan/type.rb +134 -109
  59. data/lib/microstation/scan_trait.rb +62 -0
  60. data/lib/microstation/scanner.rb +24 -24
  61. data/lib/microstation/tag.rb +87 -58
  62. data/lib/microstation/tag_set.rb +385 -280
  63. data/lib/microstation/tag_set_trait.rb +51 -0
  64. data/lib/microstation/tagged_element.rb +105 -0
  65. data/lib/microstation/template.rb +90 -84
  66. data/lib/microstation/template_info.rb +172 -0
  67. data/lib/microstation/template_runner.rb +65 -0
  68. data/lib/microstation/text.rb +79 -54
  69. data/lib/microstation/text_node.rb +124 -74
  70. data/lib/microstation/ts/attribute.rb +140 -139
  71. data/lib/microstation/ts/instance.rb +146 -112
  72. data/lib/microstation/ts/tagset_trait.rb +49 -0
  73. data/lib/microstation/types.rb +91 -91
  74. data/lib/microstation/version.rb +5 -0
  75. data/lib/microstation/wrap.rb +28 -214
  76. data/lib/microstation.rb +252 -88
  77. data/plot/pdf-bw.plt +164 -164
  78. data/plot/pdf.plt +163 -163
  79. data/plot/png.plt +383 -383
  80. data/plot/tiff.plt +384 -384
  81. data/plot/wmbw.tbl +324 -66
  82. data/plot/wmcolor.tbl +62 -62
  83. data/spec/microstation/app_spec.rb +184 -0
  84. data/spec/microstation/configuration_spec.rb +131 -0
  85. data/spec/microstation/drawing_spec.rb +245 -0
  86. data/spec/microstation/functions_spec.rb +36 -0
  87. data/spec/microstation/tag_set_spec.rb +159 -0
  88. data/spec/microstation/template_spec.rb +159 -0
  89. data/spec/microstation/text_node_spec.rb +67 -0
  90. data/spec/microstation/text_spec.rb +42 -0
  91. data/spec/microstation_spec.rb +47 -36
  92. data/spec/spec_helper.rb +97 -31
  93. metadata +308 -84
  94. data/.gemtest +0 -0
  95. data/README.txt +0 -75
  96. data/lib/microstation/attributes.rb +0 -35
  97. data/lib/microstation/extensions/hash.rb +0 -27
  98. data/spec/app_spec.rb +0 -267
  99. data/spec/configuration_spec.rb +0 -122
  100. data/spec/drawing_spec.rb +0 -247
  101. data/spec/drawings/new_drawing.dgn +0 -0
  102. data/spec/drawings/test.dgn +0 -0
  103. data/spec/drawings/test1.dgn +0 -0
  104. data/spec/drawings/testfile.pdf +0 -0
  105. data/spec/enumerator_spec.rb +0 -60
  106. data/spec/scanner_spec.rb +0 -155
  107. data/spec/spec_app.rb +0 -11
  108. data/spec/tag_set_spec.rb +0 -123
  109. data/spec/text_node_spec.rb +0 -92
  110. data/spec/text_spec.rb +0 -62
@@ -1,25 +1,100 @@
1
- module Microstation
2
-
3
-
4
- class CadInputQueue
5
-
6
- def initialize(ole_obj)
7
- @ole_obj = ole_obj
8
- end
9
-
10
- def <<(string)
11
- send_keyin(string)
12
- end
13
-
14
- def send_keyin(string)
15
- @ole_obj.SendKeyin(string)
16
- end
17
-
18
- def close
19
- @ole_ojb = nil
20
- end
21
-
22
-
23
- end
24
-
25
- end
1
+ require_relative 'ole_cad_input_message'
2
+ require 'dry/monads'
3
+ module Microstation
4
+
5
+ class CadInputQueue
6
+
7
+ include Dry::Monads[:result]
8
+
9
+ attr_reader :app,:ole_obj
10
+
11
+ def initialize(ole_obj,app)
12
+ @ole_obj = ole_obj
13
+ @app = app
14
+ @input_procs = []
15
+ end
16
+
17
+ def <<(string)
18
+ send_keyin(string)
19
+ end
20
+
21
+ def send_keyin(string)
22
+ @ole_obj.SendKeyin(string)
23
+ end
24
+
25
+ def send_reset
26
+ @ole_obj.SendReset
27
+ end
28
+
29
+ def close
30
+ @ole_ojb = nil
31
+ end
32
+
33
+ def send_command(text)
34
+ @ole_obj.SendCommand(text)
35
+ end
36
+
37
+ def send_data_point(pt)
38
+ @ole_obj.SendDataPoint app.to_ole_point3d(pt)
39
+ end
40
+
41
+ def send_tentative_pt(pt)
42
+ @ole_obj.SendTentativePoint(pt)
43
+ end
44
+
45
+ def send_drag_points(down_pt, up_point, view_specifier:nil, qualifier:nil)
46
+ @ole_obj.SendDragPoints(down_pt,up_point)
47
+ end
48
+
49
+ def get_input(*args)
50
+ com = @ole_obj.GetInput(*args)
51
+ OLE_CadInputMessage.new(com,app)
52
+ end
53
+
54
+
55
+ def get_point(prompt: "Enter vertex")
56
+ show_prompt(prompt)
57
+ mycim = get_input(InputType::DataPoint, InputType::Reset)
58
+ if mycim.reset?
59
+ clear_ui
60
+ return Failure(:reset_pressed)
61
+ elsif mycim.data_point?
62
+ clear_ui
63
+ Success(mycim.get_point)
64
+ end
65
+ end
66
+
67
+
68
+ def show_command(text)
69
+ app.show_command(text)
70
+ end
71
+
72
+ def show_prompt(text)
73
+ app.show_prompt(text)
74
+ end
75
+
76
+ def show_status(text)
77
+ app.show_status(text)
78
+ end
79
+
80
+
81
+ def clear_ui
82
+ app.show_prompt("")
83
+ app.show_status("")
84
+ app.show_command("")
85
+ end
86
+
87
+
88
+ def method_missing(name,*args,&block)
89
+ @ole_obj.send(name,*args,&block)
90
+ end
91
+
92
+ def start_default_command
93
+ @app.ole_obj.CommandState.StartDefaultCommand
94
+ end
95
+
96
+
97
+
98
+ end
99
+
100
+ end
@@ -0,0 +1,191 @@
1
+ module Microstation
2
+
3
+ class Cell < Element
4
+
5
+ def initialize(*args)
6
+ super(*args)
7
+ @should_replace = false
8
+ @replacement = nil
9
+ end
10
+
11
+ def shared_cell?
12
+ ole_obj.IsSharedCellElement
13
+ end
14
+
15
+ def name
16
+ ole_obj.Name
17
+ end
18
+
19
+
20
+ def text_elements
21
+ return to_enum(:text_elements) unless block_given?
22
+ each do |el|
23
+ yield el if el.textual?
24
+ end
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+
31
+
32
+ # def each
33
+ # return enum_for(:each) unless block_given?
34
+ # ole_enum = @ole_obj.GetSubElements
35
+ # while ole_enum.MoveNext
36
+ # item = ole_enum.Currentq
37
+ # wrapped = Microstation::Wrap.wrap(item,app)
38
+
39
+ # yield
40
+ # end
41
+ # end
42
+
43
+
44
+ # def each_ole(ole)
45
+ # ole_enum = ole.GetSubElements
46
+ # while ole_enum.MoveNext
47
+ # item = ole_enum.Current
48
+ # if item.IsComplexElement
49
+ # each_ole(item)
50
+ # else
51
+
52
+
53
+ # wrapped = Microstation::Wrap.wrap(item,app)
54
+
55
+ # yield
56
+ # end
57
+ # end
58
+
59
+
60
+ # def each_ole(ole)
61
+ # ole_enum = ole.GetSubElements
62
+ # end
63
+
64
+ # def gsub_text(regex,replacement)
65
+ # each do |current|
66
+ # next unless temp_el.textual?
67
+ # temp_el.gsub!(regex,replacement)
68
+ # replace_current_with(temp_el)
69
+ # end
70
+ # end
71
+
72
+ # def replace_current_with(this_var)
73
+ # this_var = this_var.ole_obj if this_var.respond_to? :ole_obj
74
+ # ole_obj.ReplaceCurrentElement this_var
75
+ # end
76
+
77
+
78
+
79
+ # Dim search_text As String
80
+ # Dim replace_text As String
81
+
82
+ # Private Function ReplaceTextInCell(el As Element) As Boolean
83
+
84
+ # Dim cel As CellElement
85
+ # Dim ret As Boolean
86
+ # Dim tel As TextElement
87
+ # ret = False
88
+ # Set cel = el
89
+ # cel.ResetElementEnumeration
90
+ # Do While cel.MoveToNextElement(True)
91
+ # Dim eleTemp As Element
92
+ # Set eleTemp = cel.CopyCurrentElement
93
+ # If eleTemp.IsTextElement Then
94
+ # Set tel = eleTemp
95
+ # If tel.Text = search_text Then
96
+ # tel.Text = replace_text
97
+ # ret = True
98
+ # cel.ReplaceCurrentElement tel
99
+ # End If
100
+ # End If
101
+ # Loop
102
+ # ReplaceTextInCell = ret
103
+ # End Function
104
+
105
+ # Public Sub ReplaceAllTextsInModel()
106
+
107
+
108
+ # 'USE THIS TO SET THE REPLACEMENT BY CONFIGURATION VARIABLE
109
+ # 'search_text = ActiveWorkspace.ExpandConfigurationVariable("SEARCH_TEXT")
110
+ # 'replace_text = ActiveWorkspace.ExpandConfigurationVariable("REPLACE_TEXT")
111
+ # search_text = "Test"
112
+ # replace_text = "Blubber"
113
+ # Dim e As ElementEnumerator
114
+ # Dim es As ElementScanCriteria
115
+ # Dim el As Element
116
+ # Set es = New ElementScanCriteria
117
+
118
+ # Set e = ActiveModelReference.Scan(es)
119
+ # Do While e.MoveNext
120
+ # Set el = e.Current
121
+ # If (el.IsCellElement) Then
122
+ # If ReplaceTextInCell(el) Then
123
+ # el.Rewrite
124
+ # End If
125
+ # End If
126
+ # Loop
127
+ # End Sub
128
+
129
+
130
+ # Option Explicit
131
+ # ' Searches in text strings and nested cells
132
+
133
+ # Private sToFind As String ' Find text
134
+ # Private sToReplace As String ' Replace with this text
135
+ # Private isComplex As Boolean
136
+
137
+ # Sub TxtRep_complex()
138
+ # Dim CmdLine() As String
139
+ # Dim Ee As ElementEnumerator
140
+ # Dim Sc As New ElementScanCriteria
141
+
142
+ # ' As a separator between parameters, "|" is used.
143
+ # CmdLine = Split(KeyinArguments, "|")
144
+ # ' Cancel if incorrect parameters are given:
145
+ # If UBound(CmdLine) < 1 Then ' no parameter given
146
+ # MessageCenter.AddMessage "Replace Text: Missing Parameters, see details:", "Call was made with: " + KeyinArguments, msdMessageCenterPriorityError
147
+ # Exit Sub
148
+ # End If
149
+
150
+ # sToFind = Trim(CmdLine(0)) '1. Parameter for search text
151
+ # sToReplace = Trim(CmdLine(1)) '2. Parameter for new text
152
+ # ' Check if optional parameter = yes complex was given
153
+ # isComplex = False
154
+ # If UBound(CmdLine) > 1 Then
155
+ # If InStr(CmdLine(2), "complex") > 0 And InStr(CmdLine(2), "yes") > 0 Then isComplex = True
156
+ # End If
157
+
158
+ # ' If not looking at cells, only filter texts and text nodes:
159
+ # If isComplex = False Then
160
+ # Sc.ExcludeAllTypes
161
+ # Sc.IncludeType msdElementTypeText
162
+ # Sc.IncludeType msdElementTypeTextNode ' Also text node always search
163
+ # Else
164
+ # Sc.ExcludeNonGraphical
165
+ # End If
166
+
167
+ # Set Ee = ActiveModelReference.Scan(Sc)
168
+ # ' Browse current model and start the test routine:
169
+ # Do While Ee.MoveNext
170
+ # Call complexSearch(Ee.Current)
171
+ # Loop
172
+ # End Sub
173
+ # ' Subroutine for recursively browsing nested complex elements
174
+ # Sub complexSearch(oEle As Element)
175
+ # Dim EeSub As ElementEnumerator
176
+ # ' If a complex element or text node is found, check all sub-elements:
177
+ # If (oEle.IsComplexElement And isComplex) Or (oEle.Type = msdElementTypeTextNode) Then
178
+ # Set EeSub = oEle.AsComplexElement.GetSubElements
179
+ # Do While EeSub.MoveNext
180
+ # Call complexSearch(EeSub.Current)
181
+ # Loop
182
+ # ' Otherwise string compare, if a text is present:
183
+ # Else
184
+ # If oEle.Type = msdElementTypeText Then
185
+ # If oEle.AsTextElement.Text = sToFind Then
186
+ # oEle.AsTextElement.Text = sToReplace
187
+ # oEle.Rewrite
188
+ # End If
189
+ # End If
190
+ # End If
191
+ # # End Sub
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Microstation
4
+ class Changer
5
+ include FileTests
6
+
7
+ attr_reader :template, :template_filename, :the_app
8
+
9
+ def initialize(template, output_dir: nil, app: nil, name: nil)
10
+ check_is_dgn(template)
11
+ @template = template
12
+ @template_filename = File.basename(template)
13
+ @the_app = app
14
+ @output_dir = output_dir || default_outdir(name)
15
+ @name = name || default_name
16
+ end
17
+
18
+ def ensure_output_path(odir)
19
+ path = Pathname(odir)
20
+ path.mkpath unless path.directory?
21
+ path
22
+ end
23
+
24
+ def run(name: nil, output_dir: nil, &block)
25
+ lname = name || @name
26
+ loutput_dir = output_dir || @output_dir
27
+ output_path = ensure_output_path(loutput_dir)
28
+ newname = output_path + lname
29
+ tmp_dgn = the_app ? change_in_tempfile(the_app, &block) : change_once_in_tempfile(&block)
30
+ FileUtils.mv(tmp_dgn.to_s, newname.to_s)
31
+ puts "Saved drawing #{newname}"
32
+ rescue StandardError => e
33
+ puts 'error in changing file'
34
+ raise e
35
+ end
36
+
37
+ def change_in_tempfile(app, &block)
38
+ path = Pathname(File.join(::Dir.tmpdir, "#{template_filename}_#{Time.now.to_i}_#{rand(1000)}"))
39
+ app.new_drawing(path, seedfile: @template) do |drawing|
40
+ if block_given?
41
+ block.call(drawing)
42
+ else
43
+ default_block.call(drawing)
44
+ end
45
+ end
46
+ path
47
+ rescue MultipleUpdateError => e
48
+ puts "Error while #change_into_tempfile: #{e.message}"
49
+ raise e
50
+ end
51
+
52
+ def change_once_in_tempfile(&block)
53
+ ::Microstation.run do |app|
54
+ change_in_tempfile(app, &block)
55
+ end
56
+ end
57
+
58
+ def default_block
59
+ ->(d) { d }
60
+ end
61
+
62
+ def default_outdir(_name = nil)
63
+ Pathname.getwd
64
+ end
65
+
66
+ def default_name
67
+ template_filename
68
+ end
69
+ end
70
+ end
@@ -1,57 +1,193 @@
1
- module Microstation
2
-
3
- class VariableDefined < ::StandardError
4
- end
5
-
6
- class Configuration
7
-
8
- def initialize(app)
9
- @app = app
10
- end
11
-
12
- def [](variable)
13
- return nil unless exists? variable
14
- value(variable)
15
- end
16
-
17
- def should_update?(key,options={force: false})
18
- return true unless exists? key
19
- force = options.fetch(:force){ false}
20
- return !!force
21
- end
22
-
23
- def remove_variable(variable)
24
- workspace.RemoveConfigurationVariable variable
25
- end
26
-
27
- def set(key,value,options = {})
28
- raise Microstation::VariableDefined unless should_update?(key,options)
29
- workspace.AddConfigurationVariable(key,value)
30
- end
31
-
32
-
33
- def []=(key,value)
34
- set(key,value)
35
- end
36
-
37
- def value(variable)
38
- workspace.ConfigurationVariableValue(variable)
39
- end
40
-
41
- def exists?(value)
42
- workspace.IsConfigurationVariableDefined(value)
43
- end
44
-
45
- def expand(string)
46
- workspace.ExpandConfigurationVariable(string)
47
- end
48
-
49
- private
50
- def workspace
51
- @app.active_workspace
52
- end
53
-
54
-
55
- end
56
-
57
- end
1
+ module Microstation
2
+
3
+ class Capabilities
4
+
5
+ attr_reader :variable, :capabilities
6
+
7
+ def initialize(config,variable)
8
+ @config = config
9
+ @variable = variable
10
+ @capabilities = get_capabilities
11
+ end
12
+
13
+ def get_capabilities
14
+ @capabilities = @config[variable].split(';')
15
+ end
16
+
17
+
18
+ def search(name)
19
+ @capabilities.select{|c| c =~ Regexp.new(Regexp.escape(name), Regexp::IGNORECASE)}
20
+ end
21
+
22
+ def enabled
23
+ @capabilities.select{|c| c.start_with?('+')}
24
+ end
25
+
26
+ def disabled
27
+ @capabilities.select{|c| c.start_with?('-')}
28
+ end
29
+
30
+ def enabled?(name)
31
+ capa = remove_prefix(name)
32
+ @capabilities.any?{|c| c == "+#{capa}"}
33
+ end
34
+
35
+ def disabled?(name)
36
+ capa = remove_prefix(name)
37
+ @capabilities.any?{|c| c == "-#{capa}"}
38
+ end
39
+
40
+ def write_configuration
41
+ caps = @capabilities.uniq.join(';')
42
+ @config.set!(variable, caps)
43
+ end
44
+
45
+ def prepend(value)
46
+ @config.prepend(variable,value)
47
+ end
48
+
49
+ def enable(name)
50
+ return if enabled?(name) && !disabled?(name)
51
+ capa = remove_prefix(name)
52
+ @capabilities.delete("-#{capa}")
53
+ @capabilities.unshift("+#{capa}")
54
+ write_configuration
55
+ get_capabilities
56
+ self
57
+ end
58
+
59
+ def disable(name)
60
+ return if disabled?(name) && !enabled?(name)
61
+ capa = remove_prefix(name)
62
+ capabilities.delete("+#{name}")
63
+ @capabilities.unshift("-#{capa}")
64
+ write_configuration
65
+ get_capabilities
66
+ self
67
+ end
68
+
69
+ def remove_prefix(name)
70
+ if name =~ /[+-](.+)/
71
+ name = Regexp.last_match(1)
72
+ end
73
+ name
74
+ end
75
+
76
+
77
+ end
78
+
79
+ class VariableDefined < ::StandardError
80
+ end
81
+
82
+
83
+ class App
84
+
85
+ def with_config
86
+
87
+ end
88
+
89
+ end
90
+
91
+ class Configuration
92
+
93
+ def initialize(app)
94
+ @app = app
95
+ end
96
+
97
+ def prepend(variable,value)
98
+ if exists?(variable)
99
+ old_value = get(variable)
100
+ new_value = "#{value};#{old_value}"
101
+ else
102
+ new_value = value.to_s
103
+ end
104
+ set!(variable,new_value)
105
+ end
106
+
107
+ def append(variable,value)
108
+ if exists?(variable)
109
+ old_value = get(variable)
110
+ new_value = "#{old_value};#{value}"
111
+ else
112
+ new_value = value.to_s
113
+ end
114
+ set!(variable,new_value)
115
+ end
116
+
117
+ def [](variable)
118
+ return nil unless exists? variable
119
+ get(variable)
120
+ end
121
+
122
+
123
+ def remove_variable(variable)
124
+ workspace.RemoveConfigurationVariable variable
125
+ end
126
+
127
+ def set(key,value,options = {})
128
+ raise VariableDefined unless should_update?(key,options)
129
+ set!(key,value)
130
+ end
131
+
132
+ def set!(key,value)
133
+ self.remove_variable(key)
134
+ workspace.AddConfigurationVariable(key,value)
135
+ end
136
+
137
+
138
+ def []=(key,value)
139
+ set(key,value)
140
+ end
141
+
142
+ def exists?(value)
143
+ workspace.IsConfigurationVariableDefined(value)
144
+ end
145
+
146
+ def capabilities_all
147
+ @workmode_all ||= Capabilities.new(self,'_USTN_CAPABILITY')
148
+ end
149
+
150
+
151
+ def expand(string)
152
+ workspace.ExpandConfigurationVariable(string)
153
+ end
154
+
155
+ private
156
+ def workspace
157
+ @app.active_workspace
158
+ end
159
+
160
+ def get(variable)
161
+ workspace.ConfigurationVariableValue(variable)
162
+ end
163
+
164
+ def should_update?(key,options={force: false})
165
+ return true unless exists? key
166
+ force = options.fetch(:force){ false}
167
+ return !!force
168
+ end
169
+
170
+ end
171
+
172
+
173
+ class App
174
+
175
+ def capabilities(mode = :all)
176
+ case mode
177
+ when :all
178
+ configuration.capabilities_all
179
+ when :dwg
180
+ configuration.capabilites_dwg
181
+ when :v7
182
+ configuration.capabilities_v7
183
+ else
184
+ configuration_capabilities_all
185
+ end
186
+
187
+ end
188
+
189
+ end
190
+
191
+
192
+
193
+ end
@@ -0,0 +1,23 @@
1
+ module Microstation
2
+
3
+ module CriteriaCreationT
4
+
5
+ def text_criteria
6
+ app.scanners[:textual] || app.create_scanner(:textual){ include_textual}
7
+ end
8
+
9
+ def graphic_criteria
10
+ app.scanners[:graphical] || app.create_scanner(:graphical){ ExcludeNonGraphical}
11
+ end
12
+
13
+ def tags_criteria
14
+ app.scanners[:tags] || app.create_scanner(:tags){ include_tags}
15
+ end
16
+
17
+ def cells_criteria
18
+ app.scanners[:cells] || app.create_scanner(:cells){ include_cells}
19
+ end
20
+
21
+ end
22
+
23
+ end