microstation 0.8.4 → 0.8.5
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 +1 -0
- data/lib/microstation/drawing.rb +16 -20
- data/lib/microstation/version.rb +1 -1
- data/lib/microstation.rb +9 -9
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44de1e81a2814b3144d827cf42861a34b92728a4150e559b3dcbfc89e4720632
|
4
|
+
data.tar.gz: b41864547b3ce27283258bd1bb0c8136b07507fe2ff1f3af7ee16c8167e17406
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f276123db4d72d0e85b47066240d4f4563ef9bc8d95ad7aaa0a48f12f6815afc699ae90e6475fc14a2e4a8f71d0dae30e765e941f164414eb7542684c8b5f556
|
7
|
+
data.tar.gz: afa76668ebe863cbbef1ee3c0a189a88d359a61a3a550c69cd20eff646cf4031f02dddd405b9e5df49d93c2fd422d0aeba5f7a6d94b889d7f6bb6922a40ee855
|
data/Gemfile
CHANGED
data/lib/microstation/drawing.rb
CHANGED
@@ -13,9 +13,7 @@ require 'liquid'
|
|
13
13
|
# //
|
14
14
|
# ##define DISP_E_PARAMNOTFOUND _HRESULT_TYPEDEF_(0x80020004L)
|
15
15
|
module Microstation
|
16
|
-
|
17
16
|
class Drawing
|
18
|
-
|
19
17
|
include Properties
|
20
18
|
include TagSetTrait
|
21
19
|
include ScanTrait
|
@@ -35,7 +33,6 @@ module Microstation
|
|
35
33
|
@app.register_handler('ISaveAsEvents_AfterSaveAs') do |*args|
|
36
34
|
@drawing_saved = true
|
37
35
|
end
|
38
|
-
|
39
36
|
end
|
40
37
|
|
41
38
|
def find_tagset_instances_called?
|
@@ -79,7 +76,7 @@ module Microstation
|
|
79
76
|
# @param name - the name of the file
|
80
77
|
# @param dir - the directory to save the drawing
|
81
78
|
# @return [void]
|
82
|
-
def save_as_pdf(name: nil
|
79
|
+
def save_as_pdf(name: nil, dir: nil)
|
83
80
|
out_name = pdf_path(name: name, dir: dir)
|
84
81
|
windows_name = app.windows_path(out_name)
|
85
82
|
loop do
|
@@ -96,14 +93,14 @@ module Microstation
|
|
96
93
|
# @param [Boolean] overwrite - whether to overwrite if file exists
|
97
94
|
# @param [<Type>] format <description>
|
98
95
|
#
|
99
|
-
# @return [void]
|
96
|
+
# @return [void]
|
100
97
|
#
|
101
|
-
def save_as(name,overwrite: false, format: 0)
|
98
|
+
def save_as(name, overwrite: false, format: 0)
|
102
99
|
@drawing_saved = false
|
103
100
|
path = Pathname(name).expand_path
|
104
101
|
wpath = app.windows_path(name)
|
105
102
|
begin
|
106
|
-
ole_obj.SaveAs(wpath,overwrite, format)
|
103
|
+
ole_obj.SaveAs(wpath, overwrite, format)
|
107
104
|
wait_save_event(10)
|
108
105
|
raise "drawing not saved in 10 seconds" unless @drawing_saved
|
109
106
|
rescue => e
|
@@ -113,7 +110,7 @@ module Microstation
|
|
113
110
|
|
114
111
|
def wait_save_event(secs, interval = 0.5)
|
115
112
|
elapsed = 0
|
116
|
-
while(!@drawing_saved && elapsed <= 5)
|
113
|
+
while (!@drawing_saved && elapsed <= 5)
|
117
114
|
elapsed += interval
|
118
115
|
sleep(interval)
|
119
116
|
WIN32OLE_EVENT.message_loop
|
@@ -134,7 +131,7 @@ module Microstation
|
|
134
131
|
def scan_model(criteria, model: default_model_reference, &block)
|
135
132
|
criteria = criteria || create_scan_criteria
|
136
133
|
model = model || default_model_reference
|
137
|
-
model.scan_model(criteria
|
134
|
+
model.scan_model(criteria, &block)
|
138
135
|
end
|
139
136
|
|
140
137
|
# scans all the drawing models with criteria
|
@@ -172,7 +169,7 @@ module Microstation
|
|
172
169
|
# models
|
173
170
|
# @yield [String] text that is found
|
174
171
|
def scan_text(&block)
|
175
|
-
scan_all(text_criteria
|
172
|
+
scan_all(text_criteria, &block)
|
176
173
|
end
|
177
174
|
|
178
175
|
# scan all tags in drawing and
|
@@ -184,7 +181,7 @@ module Microstation
|
|
184
181
|
# scan all cells in drawing and
|
185
182
|
# @yield [Cell] to the block
|
186
183
|
def scan_cells(&block)
|
187
|
-
scan_all(cells_criteria
|
184
|
+
scan_all(cells_criteria, &block)
|
188
185
|
end
|
189
186
|
|
190
187
|
def scan_text_in_cells(&block)
|
@@ -195,13 +192,13 @@ module Microstation
|
|
195
192
|
|
196
193
|
# @return [Model] the ole.DefaultModelReference
|
197
194
|
def default_model_reference
|
198
|
-
Model.new(app,self,ole_obj.DefaultModelReference)
|
195
|
+
Model.new(app, self, ole_obj.DefaultModelReference)
|
199
196
|
end
|
200
197
|
|
201
|
-
|
202
198
|
def active_model
|
203
199
|
return nil unless has_active_model?
|
204
|
-
|
200
|
+
|
201
|
+
Model.new(app, self, app_ole_obj.ActiveModelReference)
|
205
202
|
end
|
206
203
|
|
207
204
|
# @return [Boolean] true if drawing has an active model
|
@@ -209,7 +206,6 @@ module Microstation
|
|
209
206
|
app_ole_obj.HasActiveModelReference
|
210
207
|
end
|
211
208
|
|
212
|
-
|
213
209
|
# @return [Date] date last modified
|
214
210
|
def modified_date
|
215
211
|
ole_obj.DateLastSaved
|
@@ -265,14 +261,13 @@ module Microstation
|
|
265
261
|
def close
|
266
262
|
@drawing_closed = true
|
267
263
|
ole_obj.Close rescue nil
|
268
|
-
@ole_obj =nil
|
264
|
+
@ole_obj = nil
|
269
265
|
end
|
270
266
|
|
271
267
|
def drawing_closed?
|
272
268
|
@drawing_closed
|
273
269
|
end
|
274
270
|
|
275
|
-
|
276
271
|
def pdf_name(name = nil)
|
277
272
|
name = self.name unless name
|
278
273
|
return Pathname(name).sub_ext(".pdf")
|
@@ -311,6 +306,7 @@ module Microstation
|
|
311
306
|
m = model_from_ole(el).activate
|
312
307
|
m
|
313
308
|
end
|
309
|
+
|
314
310
|
# Active a model
|
315
311
|
# @param name [String] a
|
316
312
|
def activate_model(name)
|
@@ -361,6 +357,7 @@ module Microstation
|
|
361
357
|
# @return [Model, nil]
|
362
358
|
def change_model(name)
|
363
359
|
model = find_model(name)
|
360
|
+
|
364
361
|
return unless model
|
365
362
|
model.activate
|
366
363
|
end
|
@@ -375,7 +372,6 @@ module Microstation
|
|
375
372
|
result = []
|
376
373
|
ole_obj.Models.each do |el|
|
377
374
|
result << el.name
|
378
|
-
el = nil
|
379
375
|
end
|
380
376
|
result
|
381
377
|
end
|
@@ -394,12 +390,13 @@ module Microstation
|
|
394
390
|
|
395
391
|
def zoom_to_element(target, n_view)
|
396
392
|
return nil unless target.graphical?
|
393
|
+
|
397
394
|
zoom = 4
|
398
395
|
range = target.Range
|
399
396
|
oview = app_ole_obj.ActiveDesignFile.Views.Item(n_view)
|
400
397
|
range_diff = app_ole_obj.Point3dSubtract(range.High, range.Low)
|
401
398
|
extent = app_ole_obj.Point3dScale(range_diff, zoom)
|
402
|
-
|
399
|
+
|
403
400
|
oview_origin = app_ole_obj.Point3dSubtract(range.Low, app_ole_obj.Point3dScale(extent,0.5))
|
404
401
|
oview.Origin = oview_origin
|
405
402
|
oview.Extents = extent
|
@@ -506,7 +503,6 @@ module Microstation
|
|
506
503
|
return results unless block_given?
|
507
504
|
end
|
508
505
|
|
509
|
-
|
510
506
|
def update_tagset(name,h_local={})
|
511
507
|
tset_instances = select_tagset_instances_by_name(name)
|
512
508
|
case tset_instances.size
|
data/lib/microstation/version.rb
CHANGED
data/lib/microstation.rb
CHANGED
@@ -50,7 +50,7 @@ module Microstation
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def default_app_options
|
53
|
-
|
53
|
+
@default_app_options
|
54
54
|
end
|
55
55
|
|
56
56
|
def default_app_options=(opts)
|
@@ -100,7 +100,7 @@ module Microstation
|
|
100
100
|
# @param dir
|
101
101
|
def drawings_in_dir(dir)
|
102
102
|
dirpath = Pathname.new(dir).expand_path
|
103
|
-
drawings =
|
103
|
+
drawings = dirpath.glob("*.d{gn,wg,xf}").sort_by{ _1.basename('.*').to_s.downcase }
|
104
104
|
end
|
105
105
|
|
106
106
|
def dump_template_info_for_dir(dir, options={})
|
@@ -152,19 +152,19 @@ module Microstation
|
|
152
152
|
end
|
153
153
|
|
154
154
|
def scan_text(file,&block)
|
155
|
-
App.open_drawing(file) do |d|
|
155
|
+
::App.open_drawing(file) do |d|
|
156
156
|
d.scan_text(&block)
|
157
157
|
end
|
158
158
|
end
|
159
159
|
|
160
160
|
def get_text(file, &block)
|
161
|
-
App.open_drawing(file) do |d|
|
162
|
-
|
161
|
+
::App.open_drawing(file) do |d|
|
162
|
+
d.get_text(&block)
|
163
163
|
end
|
164
164
|
end
|
165
165
|
|
166
166
|
def get_all_text(file)
|
167
|
-
App.open_drawing(file) do |d|
|
167
|
+
::App.open_drawing(file) do |d|
|
168
168
|
d.get_all_text
|
169
169
|
end
|
170
170
|
end
|
@@ -193,8 +193,8 @@ module Microstation
|
|
193
193
|
drawing.close
|
194
194
|
end
|
195
195
|
end
|
196
|
-
|
197
|
-
def run(
|
196
|
+
|
197
|
+
def run(options={}, &block)
|
198
198
|
App.run(...)
|
199
199
|
end
|
200
200
|
|
@@ -213,7 +213,7 @@ if $0 == __FILE__
|
|
213
213
|
f.write app.ole_obj.ole_methods_detail
|
214
214
|
end
|
215
215
|
|
216
|
-
tlib = app.ole_obj.ole_typelib
|
216
|
+
tlib = app.ole_obj.ole_typelib
|
217
217
|
File.open('microstation_classes.txt','w') do |f|
|
218
218
|
f.write app.ole_obj.ole_classes_detail
|
219
219
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: microstation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dominic Sisneros
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: methadone
|
@@ -458,7 +458,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
458
458
|
- !ruby/object:Gem::Version
|
459
459
|
version: '0'
|
460
460
|
requirements: []
|
461
|
-
rubygems_version: 3.2.
|
461
|
+
rubygems_version: 3.2.33
|
462
462
|
signing_key:
|
463
463
|
specification_version: 4
|
464
464
|
summary: A ruby gem to control and automate Bentley Microstation using win32ole
|