microstation 0.8.4 → 0.8.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|