microstation 0.4.1 → 0.8.3
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 +7 -0
- data/.autotest +23 -23
- data/.rspec +2 -2
- data/Gemfile +28 -10
- data/History.txt +6 -6
- data/LICENSE.adoc +22 -0
- data/Manifest.txt +81 -60
- data/README.adoc +131 -0
- data/Rakefile +71 -30
- data/bin/dgn2pdf +36 -37
- data/bin/dgn_template +107 -0
- data/bin/microstation +231 -0
- data/bin/pw_print +35 -0
- data/cad_files/drawing_faatitle_in_non_default_model.dgn +0 -0
- 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/seed2d.dgn +0 -0
- data/cad_files/test.dgn +0 -0
- data/lib/microstation.rb +252 -88
- data/lib/microstation/app.rb +781 -286
- data/lib/microstation/cad_input_queue.rb +100 -25
- data/lib/microstation/cell.rb +191 -0
- data/lib/microstation/changer.rb +70 -0
- data/lib/microstation/configuration.rb +193 -57
- data/lib/microstation/criteria_creation_t.rb +23 -0
- data/lib/microstation/dir.rb +252 -252
- data/lib/microstation/directory.rb +46 -0
- data/lib/microstation/drawing.rb +690 -189
- data/lib/microstation/element.rb +311 -0
- data/lib/microstation/enumerator.rb +32 -29
- data/lib/microstation/errors.rb +17 -0
- data/lib/microstation/event_handler.rb +28 -0
- data/lib/microstation/ext/pathname.rb +23 -25
- data/lib/microstation/ext/win32ole.rb +7 -0
- data/lib/microstation/extensions/faa.rb +124 -0
- data/lib/microstation/file_tests.rb +68 -0
- data/lib/microstation/functions.rb +60 -0
- data/lib/microstation/graphics.rb +35 -0
- data/lib/microstation/line.rb +19 -0
- data/lib/microstation/model.rb +45 -0
- data/lib/microstation/model_trait.rb +189 -0
- data/lib/microstation/ole_cad_input_message.rb +101 -0
- data/lib/microstation/ole_helper.rb +152 -0
- data/lib/microstation/pdf_support.rb +40 -40
- data/lib/microstation/point3d.rb +71 -0
- data/lib/microstation/primitive_command_interface.rb +66 -0
- data/lib/microstation/properties.rb +61 -57
- data/lib/microstation/property_handler.rb +48 -0
- data/lib/microstation/scan/color.rb +38 -38
- data/lib/microstation/scan/criteria.rb +89 -85
- data/lib/microstation/scan/klass.rb +43 -43
- data/lib/microstation/scan/level.rb +38 -38
- data/lib/microstation/scan/line_style.rb +45 -45
- data/lib/microstation/scan/line_weight.rb +33 -33
- data/lib/microstation/scan/range.rb +19 -0
- data/lib/microstation/scan/scan_trait.rb +51 -0
- data/lib/microstation/scan/subtype.rb +40 -40
- data/lib/microstation/scan/type.rb +134 -109
- data/lib/microstation/scan_trait.rb +62 -0
- data/lib/microstation/scanner.rb +24 -24
- data/lib/microstation/tag.rb +87 -58
- data/lib/microstation/tag_set.rb +385 -280
- data/lib/microstation/tag_set_trait.rb +51 -0
- data/lib/microstation/tagged_element.rb +105 -0
- data/lib/microstation/template.rb +90 -84
- data/lib/microstation/template_info.rb +172 -0
- data/lib/microstation/template_runner.rb +65 -0
- data/lib/microstation/text.rb +79 -54
- data/lib/microstation/text_node.rb +124 -74
- data/lib/microstation/ts/attribute.rb +140 -139
- data/lib/microstation/ts/instance.rb +146 -112
- data/lib/microstation/ts/tagset_trait.rb +49 -0
- data/lib/microstation/types.rb +91 -91
- data/lib/microstation/version.rb +5 -0
- data/lib/microstation/wrap.rb +28 -214
- data/plot/pdf-bw.plt +164 -164
- data/plot/pdf.plt +163 -163
- data/plot/png.plt +383 -383
- data/plot/tiff.plt +384 -384
- data/plot/wmbw.tbl +324 -66
- data/plot/wmcolor.tbl +62 -62
- metadata +301 -86
- data/.gemtest +0 -0
- data/README.txt +0 -75
- data/lib/microstation/attributes.rb +0 -35
- data/lib/microstation/extensions/hash.rb +0 -27
- data/spec/app_spec.rb +0 -267
- data/spec/configuration_spec.rb +0 -122
- data/spec/drawing_spec.rb +0 -247
- data/spec/drawings/new_drawing.dgn +0 -0
- data/spec/drawings/test.dgn +0 -0
- data/spec/drawings/test1.dgn +0 -0
- data/spec/drawings/testfile.pdf +0 -0
- data/spec/enumerator_spec.rb +0 -60
- data/spec/microstation_spec.rb +0 -36
- data/spec/scanner_spec.rb +0 -155
- data/spec/spec_app.rb +0 -11
- data/spec/spec_helper.rb +0 -31
- data/spec/tag_set_spec.rb +0 -123
- data/spec/text_node_spec.rb +0 -92
- data/spec/text_spec.rb +0 -62
data/spec/spec_app.rb
DELETED
data/spec/spec_helper.rb
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# This file was generated by the `rspec --init` command. Conventionally, all
|
|
2
|
-
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
|
3
|
-
# Require this file using `require "spec_helper.rb"` to ensure that it is only
|
|
4
|
-
# loaded once.
|
|
5
|
-
#
|
|
6
|
-
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
|
7
|
-
|
|
8
|
-
if RUBY_VERSION =~ /1\.8/
|
|
9
|
-
require 'rubygems'
|
|
10
|
-
require 'require_relative'
|
|
11
|
-
require 'ruby-debug'
|
|
12
|
-
end
|
|
13
|
-
require 'microstation'
|
|
14
|
-
#
|
|
15
|
-
DRAWING_DIR = File.join(File.dirname(__FILE__) , 'drawings')
|
|
16
|
-
RSpec.configure do |config|
|
|
17
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
|
18
|
-
config.run_all_when_everything_filtered = true
|
|
19
|
-
config.filter_run :focus
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def drawing_path(file)
|
|
23
|
-
drawing = File.join(DRAWING_DIR,file)
|
|
24
|
-
File.expand_path(drawing)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def open_existing_drawing(app)
|
|
28
|
-
app.open_drawing( drawing_path('test.dgn'))
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
|
data/spec/tag_set_spec.rb
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__) , 'spec_helper')
|
|
2
|
-
require 'tempfile'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module Helper
|
|
6
|
-
|
|
7
|
-
def create_temp_drawing
|
|
8
|
-
file = Tempfile.new('drawing.dgn')
|
|
9
|
-
file.close
|
|
10
|
-
@app.new_drawing(file.path)
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
describe Microstation::TagSet do
|
|
17
|
-
|
|
18
|
-
include Helper
|
|
19
|
-
|
|
20
|
-
before(:all) do
|
|
21
|
-
@app = Microstation::App.new
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
after(:all) do
|
|
25
|
-
@app.close_active_drawing if @app
|
|
26
|
-
@app.quit
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
describe 'a new drawing' do
|
|
30
|
-
let(:new_drawing){ create_temp_drawing}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
context 'creating a new tag set' do
|
|
34
|
-
let(:tagsets){ new_drawing.tagsets}
|
|
35
|
-
|
|
36
|
-
it 'should have no initial tagsets' do
|
|
37
|
-
tagsets['test'].should be_nil
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it 'should return a tagset' do
|
|
41
|
-
ts = tagsets.create('test')
|
|
42
|
-
ts.should be_instance_of Microstation::TagSet
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
it 'should be the same as a found tagset' do
|
|
46
|
-
ts = tagsets.create('test')
|
|
47
|
-
tagsets['test'].should == ts
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
it 'should allow you to remove a tagset' do
|
|
51
|
-
tagsets.create('test')
|
|
52
|
-
tagsets.size.should == 1
|
|
53
|
-
tagsets.remove('test')
|
|
54
|
-
tagsets.should be_empty
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
describe 'A Tag Set' do
|
|
61
|
-
let(:app) { @app}
|
|
62
|
-
let(:new_drawing){ create_temp_drawing}
|
|
63
|
-
|
|
64
|
-
describe "#create_tagset" do
|
|
65
|
-
|
|
66
|
-
it 'should allow you to create' do
|
|
67
|
-
ts = new_drawing.create_tagset('faatitle')
|
|
68
|
-
ts.should be_instance_of Microstation::TagSet
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it 'should yield to block if given a block' do
|
|
72
|
-
new_drawing.create_tagset('faatitle') do |ts|
|
|
73
|
-
ts.should be_an_instance_of Microstation::TagSet
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
context 'given a new TagSet' do
|
|
78
|
-
let(:tagset){ new_drawing.create_tagset('faatitle')}
|
|
79
|
-
|
|
80
|
-
it 'should have no attributes' do
|
|
81
|
-
tagset.attributes.should be_empty
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
it 'should allow you to add new definitions' do
|
|
85
|
-
tagset.attributes.should be_empty
|
|
86
|
-
td = tagset.add_attribute('title', String, :prompt => 'My title')
|
|
87
|
-
|
|
88
|
-
td.prompt.should == 'My title'
|
|
89
|
-
tagset.attributes.size.should == 1
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
context 'given a tagset with tag definitions' do
|
|
96
|
-
let(:tagset){ new_drawing.create_tagset('faatitle')}
|
|
97
|
-
# let(:td1){ tagset.definition('title',String)}
|
|
98
|
-
# let(:td2){ tagset.definition('city', String)}
|
|
99
|
-
|
|
100
|
-
it 'should have correct size' do
|
|
101
|
-
tagset.attributes.size.should == 0
|
|
102
|
-
tagset.add_attribute('title', String)
|
|
103
|
-
tagset.attributes.size.should == 1
|
|
104
|
-
tagset.add_attribute('city',String)
|
|
105
|
-
tagset.attributes.size.should == 2
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
it 'should allow you to retrieve a td' do
|
|
109
|
-
td = tagset.add_attribute('title', String)
|
|
110
|
-
tagset['title'].should == td
|
|
111
|
-
end
|
|
112
|
-
end
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
data/spec/text_node_spec.rb
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__) , 'spec_helper')
|
|
2
|
-
|
|
3
|
-
module NodeHelper
|
|
4
|
-
|
|
5
|
-
def text_node_scanner(app)
|
|
6
|
-
app.create_scanner do |scan|
|
|
7
|
-
scan.include_text_nodes
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
describe "Microstation::TextNode" do
|
|
16
|
-
|
|
17
|
-
include NodeHelper
|
|
18
|
-
|
|
19
|
-
context "given a TextNode" do
|
|
20
|
-
|
|
21
|
-
before(:all) do
|
|
22
|
-
@app = Microstation::App.new
|
|
23
|
-
@scanner = text_node_scanner(app)
|
|
24
|
-
end
|
|
25
|
-
after(:all) do
|
|
26
|
-
@app.quit
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
let(:app){ @app }
|
|
31
|
-
let(:drawing) { open_existing_drawing(app) }
|
|
32
|
-
let(:text_node) { drawing.scan(@scanner).find{|t| !(t.empty?) }}
|
|
33
|
-
|
|
34
|
-
it "should forward Capitalized methods to @ole_obj" do
|
|
35
|
-
ole = double('ole')
|
|
36
|
-
text_node.stub(:ole_obj).and_return(ole)
|
|
37
|
-
ole.should_receive('Type').and_return
|
|
38
|
-
text_node.Type
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
describe "ruby string methods" do
|
|
42
|
-
|
|
43
|
-
context "calling with methods that don't change the string" do
|
|
44
|
-
|
|
45
|
-
it "should not call the update method" do
|
|
46
|
-
ole = double('ole')
|
|
47
|
-
text_node.stub(:ole_obj).and_return(ole)
|
|
48
|
-
text_node.should_not_receive('update_ole')
|
|
49
|
-
ole.should_not_receive("Rewrite")
|
|
50
|
-
text_node.reverse
|
|
51
|
-
text_node.downcase
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
it "should give the correct value" do
|
|
55
|
-
value = text_node.to_s
|
|
56
|
-
text_node.reverse.to_s.should == value.reverse
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
it "should retain the same value" do
|
|
60
|
-
value = text_node.to_s
|
|
61
|
-
text_node.reverse
|
|
62
|
-
text_node.to_s.should == value
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
context "calling with methods that change the string" do
|
|
67
|
-
|
|
68
|
-
it "should call the update method" do
|
|
69
|
-
value = text_node.to_s
|
|
70
|
-
reversed = value.reverse
|
|
71
|
-
text_node.should_receive('update_ole').with(reversed)
|
|
72
|
-
text_node.reverse!
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
it "should change to value" do
|
|
76
|
-
value = text_node.to_s
|
|
77
|
-
reversed = value.reverse
|
|
78
|
-
text_node.reverse!
|
|
79
|
-
text_node.to_s.should == reversed
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
data/spec/text_spec.rb
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__) , 'spec_helper')
|
|
2
|
-
|
|
3
|
-
describe "Microstation:Text and Microstation::TextNode" do
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
context "given a text node initialized by a scan" do
|
|
7
|
-
|
|
8
|
-
before(:all) do
|
|
9
|
-
@app = Microstation::App.new
|
|
10
|
-
@drawing = open_existing_drawing(@app)
|
|
11
|
-
@criteria = @app.create_scanner do |scan|
|
|
12
|
-
scan.include_textual
|
|
13
|
-
end
|
|
14
|
-
@text_scan = @drawing.scan(@criteria)
|
|
15
|
-
@text_enum = @text_scan.to_enum
|
|
16
|
-
@text = @text_enum.find{|t| t.class == Microstation::Text}
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
after(:all) do
|
|
20
|
-
@app.quit
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
let(:app) { @app}
|
|
24
|
-
let(:drawing) {@drawing}
|
|
25
|
-
let(:text) { @text}
|
|
26
|
-
|
|
27
|
-
it "should be an instance of text" do
|
|
28
|
-
text.should be_instance_of Microstation::Text
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it "should forward all the methods to underlying text" do
|
|
32
|
-
val = text.to_s
|
|
33
|
-
text.reverse.should == val.reverse
|
|
34
|
-
text.to_s.should == val
|
|
35
|
-
puts "text: #{text}"
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
it "should forward all the Microstation commands to ole_obj" do
|
|
39
|
-
pending
|
|
40
|
-
text.IsTextElement.should be_true
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
it "should update the drawing if the text is changed" do
|
|
44
|
-
pending
|
|
45
|
-
id = text.microstation_id
|
|
46
|
-
debugger
|
|
47
|
-
puts "id: #{id}"
|
|
48
|
-
puts "id class #{id.class}"
|
|
49
|
-
val = text.to_s
|
|
50
|
-
text.reverse!
|
|
51
|
-
drawing_text = app.find_by_id(id)
|
|
52
|
-
drawing_text.to_s.should == val.reverse
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
|