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.
Files changed (102) hide show
  1. checksums.yaml +7 -0
  2. data/.autotest +23 -23
  3. data/.rspec +2 -2
  4. data/Gemfile +28 -10
  5. data/History.txt +6 -6
  6. data/LICENSE.adoc +22 -0
  7. data/Manifest.txt +81 -60
  8. data/README.adoc +131 -0
  9. data/Rakefile +71 -30
  10. data/bin/dgn2pdf +36 -37
  11. data/bin/dgn_template +107 -0
  12. data/bin/microstation +231 -0
  13. data/bin/pw_print +35 -0
  14. data/cad_files/drawing_faatitle_in_non_default_model.dgn +0 -0
  15. data/cad_files/drawing_no_block.dgn +0 -0
  16. data/cad_files/drawing_with_3_block.dgn +0 -0
  17. data/cad_files/drawing_with_block.dgn +0 -0
  18. data/cad_files/seed2d.dgn +0 -0
  19. data/cad_files/test.dgn +0 -0
  20. data/lib/microstation.rb +252 -88
  21. data/lib/microstation/app.rb +781 -286
  22. data/lib/microstation/cad_input_queue.rb +100 -25
  23. data/lib/microstation/cell.rb +191 -0
  24. data/lib/microstation/changer.rb +70 -0
  25. data/lib/microstation/configuration.rb +193 -57
  26. data/lib/microstation/criteria_creation_t.rb +23 -0
  27. data/lib/microstation/dir.rb +252 -252
  28. data/lib/microstation/directory.rb +46 -0
  29. data/lib/microstation/drawing.rb +690 -189
  30. data/lib/microstation/element.rb +311 -0
  31. data/lib/microstation/enumerator.rb +32 -29
  32. data/lib/microstation/errors.rb +17 -0
  33. data/lib/microstation/event_handler.rb +28 -0
  34. data/lib/microstation/ext/pathname.rb +23 -25
  35. data/lib/microstation/ext/win32ole.rb +7 -0
  36. data/lib/microstation/extensions/faa.rb +124 -0
  37. data/lib/microstation/file_tests.rb +68 -0
  38. data/lib/microstation/functions.rb +60 -0
  39. data/lib/microstation/graphics.rb +35 -0
  40. data/lib/microstation/line.rb +19 -0
  41. data/lib/microstation/model.rb +45 -0
  42. data/lib/microstation/model_trait.rb +189 -0
  43. data/lib/microstation/ole_cad_input_message.rb +101 -0
  44. data/lib/microstation/ole_helper.rb +152 -0
  45. data/lib/microstation/pdf_support.rb +40 -40
  46. data/lib/microstation/point3d.rb +71 -0
  47. data/lib/microstation/primitive_command_interface.rb +66 -0
  48. data/lib/microstation/properties.rb +61 -57
  49. data/lib/microstation/property_handler.rb +48 -0
  50. data/lib/microstation/scan/color.rb +38 -38
  51. data/lib/microstation/scan/criteria.rb +89 -85
  52. data/lib/microstation/scan/klass.rb +43 -43
  53. data/lib/microstation/scan/level.rb +38 -38
  54. data/lib/microstation/scan/line_style.rb +45 -45
  55. data/lib/microstation/scan/line_weight.rb +33 -33
  56. data/lib/microstation/scan/range.rb +19 -0
  57. data/lib/microstation/scan/scan_trait.rb +51 -0
  58. data/lib/microstation/scan/subtype.rb +40 -40
  59. data/lib/microstation/scan/type.rb +134 -109
  60. data/lib/microstation/scan_trait.rb +62 -0
  61. data/lib/microstation/scanner.rb +24 -24
  62. data/lib/microstation/tag.rb +87 -58
  63. data/lib/microstation/tag_set.rb +385 -280
  64. data/lib/microstation/tag_set_trait.rb +51 -0
  65. data/lib/microstation/tagged_element.rb +105 -0
  66. data/lib/microstation/template.rb +90 -84
  67. data/lib/microstation/template_info.rb +172 -0
  68. data/lib/microstation/template_runner.rb +65 -0
  69. data/lib/microstation/text.rb +79 -54
  70. data/lib/microstation/text_node.rb +124 -74
  71. data/lib/microstation/ts/attribute.rb +140 -139
  72. data/lib/microstation/ts/instance.rb +146 -112
  73. data/lib/microstation/ts/tagset_trait.rb +49 -0
  74. data/lib/microstation/types.rb +91 -91
  75. data/lib/microstation/version.rb +5 -0
  76. data/lib/microstation/wrap.rb +28 -214
  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. metadata +301 -86
  84. data/.gemtest +0 -0
  85. data/README.txt +0 -75
  86. data/lib/microstation/attributes.rb +0 -35
  87. data/lib/microstation/extensions/hash.rb +0 -27
  88. data/spec/app_spec.rb +0 -267
  89. data/spec/configuration_spec.rb +0 -122
  90. data/spec/drawing_spec.rb +0 -247
  91. data/spec/drawings/new_drawing.dgn +0 -0
  92. data/spec/drawings/test.dgn +0 -0
  93. data/spec/drawings/test1.dgn +0 -0
  94. data/spec/drawings/testfile.pdf +0 -0
  95. data/spec/enumerator_spec.rb +0 -60
  96. data/spec/microstation_spec.rb +0 -36
  97. data/spec/scanner_spec.rb +0 -155
  98. data/spec/spec_app.rb +0 -11
  99. data/spec/spec_helper.rb +0 -31
  100. data/spec/tag_set_spec.rb +0 -123
  101. data/spec/text_node_spec.rb +0 -92
  102. data/spec/text_spec.rb +0 -62
@@ -1,38 +1,38 @@
1
- module Microstation
2
-
3
- module Scan
4
-
5
- module Level
6
-
7
- def level_inclusions
8
- @level_inclusions ||= []
9
- end
10
-
11
- def include_level(level)
12
- level_inclusions << level
13
- end
14
-
15
- def reset_levels
16
- reset_ole_levels
17
- @level_inclusions = []
18
- end
19
-
20
- def reset_ole_levels
21
- ole_obj.ExcludeAllLevels
22
- end
23
-
24
- def resolve_level_scans
25
- return unless level_inclusions.size > 0
26
- reset_ole_levels
27
- level_inclusions.each do |level|
28
- ole_obj.IncludeLevel(level)
29
- end
30
- end
31
-
32
- end
33
-
34
- end
35
-
36
- end
37
-
38
-
1
+ module Microstation
2
+
3
+ module Scan
4
+
5
+ module Level
6
+
7
+ def level_inclusions
8
+ @level_inclusions ||= []
9
+ end
10
+
11
+ def include_level(level)
12
+ level_inclusions << level
13
+ end
14
+
15
+ def reset_levels
16
+ reset_ole_levels
17
+ @level_inclusions = []
18
+ end
19
+
20
+ def reset_ole_levels
21
+ ole_obj.ExcludeAllLevels
22
+ end
23
+
24
+ def resolve_level_scans
25
+ return unless level_inclusions.size > 0
26
+ reset_ole_levels
27
+ level_inclusions.each do |level|
28
+ ole_obj.IncludeLevel(level)
29
+ end
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+
36
+ end
37
+
38
+
@@ -1,45 +1,45 @@
1
- module Microstation
2
-
3
- module Scan
4
-
5
- module LineStyle
6
-
7
- def linestyles
8
- @app.active_design_file.LineStyles rescue []
9
- end
10
-
11
-
12
- def linestyle_inclusions
13
- @linestyle_inclusions ||= []
14
- end
15
-
16
- def include_linestyle(style)
17
- linestyle_inclusions << style
18
- end
19
-
20
- def reset_linestyles
21
- reset_ole_linestyles
22
- @linestyle_inclusions = []
23
- end
24
-
25
- def reset_ole_linestyles
26
- ole_obj.ExcludeAllLineStyles
27
- end
28
-
29
- def resolve_linestyle_scans
30
- return unless linestyle_inclusions.size > 0
31
- reset_ole_linestyles
32
- linestyle_inclusions.each do |linestyle|
33
- ole_obj.IncludeLineStyle(linestyle)
34
- end
35
- end
36
-
37
- end
38
-
39
- end
40
-
41
- end
42
-
43
-
44
-
45
-
1
+ module Microstation
2
+
3
+ module Scan
4
+
5
+ module LineStyle
6
+
7
+ def linestyles
8
+ @app.active_design_file.LineStyles rescue []
9
+ end
10
+
11
+
12
+ def linestyle_inclusions
13
+ @linestyle_inclusions ||= []
14
+ end
15
+
16
+ def include_linestyle(style)
17
+ linestyle_inclusions << style
18
+ end
19
+
20
+ def reset_linestyles
21
+ reset_ole_linestyles
22
+ @linestyle_inclusions = []
23
+ end
24
+
25
+ def reset_ole_linestyles
26
+ ole_obj.ExcludeAllLineStyles
27
+ end
28
+
29
+ def resolve_linestyle_scans
30
+ return unless linestyle_inclusions.size > 0
31
+ reset_ole_linestyles
32
+ linestyle_inclusions.each do |linestyle|
33
+ ole_obj.IncludeLineStyle(linestyle)
34
+ end
35
+ end
36
+
37
+ end
38
+
39
+ end
40
+
41
+ end
42
+
43
+
44
+
45
+
@@ -1,33 +1,33 @@
1
- module Microstation
2
-
3
- module Scan
4
-
5
- module LineWeight
6
-
7
- def lineweight_inclusions
8
- @lineweight_inclusions ||= []
9
- end
10
-
11
- def include_lineweight(weight)
12
- lineweight_inclusions << weight
13
- end
14
-
15
- def reset_lineweights
16
- reset_ole_linestyles
17
- @lineweight_inclusions = []
18
- end
19
-
20
- def reset_ole_lineweights
21
- ole_obj.ExcludeAllLineWeights
22
- end
23
-
24
- def resolve_lineweight_scans
25
- return unless lineweight_inclusions.size > 0
26
- reset_ole_lineweights
27
- lineweight_inclusions.each do |lineweight|
28
- ole_obj.IncludeLineWeight(lineweight)
29
- end
30
- end
31
- end
32
- end
33
- end
1
+ module Microstation
2
+
3
+ module Scan
4
+
5
+ module LineWeight
6
+
7
+ def lineweight_inclusions
8
+ @lineweight_inclusions ||= []
9
+ end
10
+
11
+ def include_lineweight(weight)
12
+ lineweight_inclusions << weight
13
+ end
14
+
15
+ def reset_lineweights
16
+ reset_ole_linestyles
17
+ @lineweight_inclusions = []
18
+ end
19
+
20
+ def reset_ole_lineweights
21
+ ole_obj.ExcludeAllLineWeights
22
+ end
23
+
24
+ def resolve_lineweight_scans
25
+ return unless lineweight_inclusions.size > 0
26
+ reset_ole_lineweights
27
+ lineweight_inclusions.each do |lineweight|
28
+ ole_obj.IncludeLineWeight(lineweight)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,19 @@
1
+ module Microstation
2
+
3
+ module Scan
4
+
5
+ module Range
6
+
7
+ def include_within_range(range)
8
+ ole_obj.IncludeOnlyWithinRange(range)
9
+ end
10
+
11
+ def range_from_points(pt1,pt2)
12
+ app.Range3dFromPoint3dPoint3d(pt1,pt2)
13
+ end
14
+
15
+ end
16
+ end
17
+
18
+
19
+ end
@@ -0,0 +1,51 @@
1
+ module Microstation
2
+
3
+
4
+ module ScanTrait
5
+
6
+ def create_scanner(&block)
7
+ app.create_scanner(&block)
8
+ end
9
+
10
+ def scan_graphical(&block)
11
+ sc = create_scanner
12
+ sc.ExcludeNonGraphical
13
+ self.scan(sc,&block)
14
+ end
15
+
16
+ def scan_text(&block)
17
+ sc = create_scanner do
18
+ include_textual
19
+ end
20
+ self.scan(sc,&block)
21
+ end
22
+
23
+ def scan(criteria)
24
+ scan_result = ole_run_scan(criteria)
25
+ return [] unless scan_result
26
+ scan_enum = Microstation::Enumerator.new(scan_result)
27
+ result = []
28
+ if block_given?
29
+ scan_enum.each do |item|
30
+ yield item
31
+ end
32
+ else
33
+ scan_enum.each do |item|
34
+ result << item
35
+ end
36
+ end
37
+
38
+ return result unless block_given?
39
+ end
40
+
41
+ private
42
+
43
+ def ole_run_scan(criteria)
44
+ criteria.resolve
45
+ scan_result = self.ole_obj.Scan(criteria.ole_obj) rescue nil
46
+ end
47
+
48
+
49
+ end
50
+
51
+ end
@@ -1,40 +1,40 @@
1
- module Microstation
2
-
3
- module Scan
4
-
5
- module Subtype
6
-
7
- def subtype_inclusions
8
- @subtype_inclusions ||= []
9
- end
10
-
11
- def include_subtype(subtype)
12
- subtype_inclusions << subtype
13
- end
14
-
15
- def reset_subtypes
16
- reset_ole_subtypes
17
- @subtype_inclusions = []
18
- end
19
-
20
- def reset_ole_subtypes
21
- ole_obj.ExcludeAllSubtypes
22
- end
23
-
24
- def resolve_subtype_scans
25
- return unless subtype_inclusions.size > 0
26
- reset_ole_subtypes
27
- subtype_inclusions.each do |subtype|
28
- ole_obj.IncludeSubtype(subtype)
29
- end
30
- end
31
-
32
- end
33
-
34
- end
35
-
36
- end
37
-
38
-
39
-
40
-
1
+ module Microstation
2
+
3
+ module Scan
4
+
5
+ module Subtype
6
+
7
+ def subtype_inclusions
8
+ @subtype_inclusions ||= []
9
+ end
10
+
11
+ def include_subtype(subtype)
12
+ subtype_inclusions << subtype
13
+ end
14
+
15
+ def reset_subtypes
16
+ reset_ole_subtypes
17
+ @subtype_inclusions = []
18
+ end
19
+
20
+ def reset_ole_subtypes
21
+ ole_obj.ExcludeAllSubtypes
22
+ end
23
+
24
+ def resolve_subtype_scans
25
+ return unless subtype_inclusions.size > 0
26
+ reset_ole_subtypes
27
+ subtype_inclusions.each do |subtype|
28
+ ole_obj.IncludeSubtype(subtype)
29
+ end
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+
36
+ end
37
+
38
+
39
+
40
+
@@ -1,109 +1,134 @@
1
- module Microstation
2
-
3
- module Scan
4
-
5
- module Type
6
-
7
- # MsdElementTypeCellLibraryHeader
8
- # MsdElementTypeCellHeader
9
- # MsdElementTypeLine
10
- # MsdElementTypeLineString
11
- # MsdElementTypeGroupData
12
- # MsdElementTypeShape
13
- # MsdElementTypeTextNode
14
- # MsdElementTypeDigSetData
15
- # MsdElementTypeDesignFileHeader
16
- # MsdElementTypeLevelSymbology
17
- # MsdElementTypeCurve
18
- # MsdElementTypeComplexString
19
- # MsdElementTypeConic
20
- # MsdElementTypeComplexShape
21
- # MsdElementTypeEllipse
22
- # MsdElementTypeArc
23
- # MsdElementTypeText
24
- # MsdElementTypeSurface
25
- # MsdElementTypeSolid
26
- # MsdElementTypeBsplinePole
27
- # MsdElementTypePointString
28
- # MsdElementTypeCone
29
- # MsdElementTypeBsplineSurface
30
- # MsdElementTypeBsplineBoundary
31
- # MsdElementTypeBsplineKnot
32
- # MsdElementTypeBsplineCurve
33
- # MsdElementTypeBsplineWeight
34
- # MsdElementTypeDimension
35
- # MsdElementTypeSharedCellDefinition
36
- # MsdElementTypeSharedCell
37
- # MsdElementTypeMultiLine
38
- # MsdElementTypeTag
39
- # MsdElementTypeDgnStoreComponent
40
- # MsdElementTypeDgnStoreHeader
41
- # MsdElementType44
42
- # MsdElementTypeMicroStation
43
- # MsdElementTypeRasterHeader
44
- # MsdElementTypeRasterComponent
45
- # MsdElementTypeRasterReference
46
- # MsdElementTypeRasterReferenceComponent
47
- # MsdElementTypeRasterFrame
48
- # MsdElementTypeTableEntry
49
- # MsdElementTypeTable
50
- # MsdElementTypeViewGroup
51
- # MsdElementTypeView
52
- # MsdElementTypeLevelMask
53
- # MsdElementTypeReferenceAttachment
54
- # MsdElementTypeMatrixHeader
55
- # MsdElementTypeMatrixIntegerData
56
- # MsdElementTypeMatrixDoubleData
57
- # MsdElementTypeMeshHeader
58
- # MsdElementTypeReferenceOverride
59
- # MsdElementTypeNamedGroupHeader
60
- # MsdElementTypeNamedGroupComponent
61
-
62
- def type_inclusions
63
- @type_inclusions ||= []
64
- end
65
-
66
- def reset_types
67
- reset_ole_types
68
- @type_inclusions = []
69
- end
70
-
71
- def reset_ole_types
72
- ole_obj.ExcludeAllTypes
73
- end
74
-
75
- def include_type(type)
76
- type_inclusions << type
77
- end
78
-
79
- def resolve_type_scans
80
- return unless type_inclusions.size > 0
81
- reset_ole_types
82
- type_inclusions.each do |type|
83
- ole_obj.IncludeType(type)
84
- end
85
- end
86
-
87
- def include_text
88
- self.include_type(Microstation::MSD::MsdElementTypeText)
89
- end
90
-
91
- def include_tags
92
- self.include_type Microstation::MSD::MsdElementTypeTag
93
- end
94
-
95
- def include_text_nodes
96
- self.include_type Microstation::MSD::MsdElementTypeTextNode
97
- end
98
-
99
- def include_textual
100
- include_text
101
- include_text_nodes
102
- end
103
-
104
-
105
- end
106
-
107
- end
108
-
109
- end
1
+ module Microstation
2
+
3
+ module Scan
4
+
5
+ module Type
6
+
7
+ # MsdElementTypeCellLibraryHeader
8
+ # MsdElementTypeCellHeader
9
+ # MsdElementTypeLine
10
+ # MsdElementTypeLineString
11
+ # MsdElementTypeGroupData
12
+ # MsdElementTypeShape
13
+ # MsdElementTypeTextNode
14
+ # MsdElementTypeDigSetData
15
+ # MsdElementTypeDesignFileHeader
16
+ # MsdElementTypeLevelSymbology
17
+ # MsdElementTypeCurve
18
+ # MsdElementTypeComplexString
19
+ # MsdElementTypeConic
20
+ # MsdElementTypeComplexShape
21
+ # MsdElementTypeEllipse
22
+ # MsdElementTypeArc
23
+ # MsdElementTypeText
24
+ # MsdElementTypeSurface
25
+ # MsdElementTypeSolid
26
+ # MsdElementTypeBsplinePole
27
+ # MsdElementTypePointString
28
+ # MsdElementTypeCone
29
+ # MsdElementTypeBsplineSurface
30
+ # MsdElementTypeBsplineBoundary
31
+ # MsdElementTypeBsplineKnot
32
+ # MsdElementTypeBsplineCurve
33
+ # MsdElementTypeBsplineWeight
34
+ # MsdElementTypeDimension
35
+ # MsdElementTypeSharedCellDefinition
36
+ # MsdElementTypeSharedCell
37
+ # MsdElementTypeMultiLine
38
+ # MsdElementTypeTag
39
+ # MsdElementTypeDgnStoreComponent
40
+ # MsdElementTypeDgnStoreHeader
41
+ # MsdElementType44
42
+ # MsdElementTypeMicroStation
43
+ # MsdElementTypeRasterHeader
44
+ # MsdElementTypeRasterComponent
45
+ # MsdElementTypeRasterReference
46
+ # MsdElementTypeRasterReferenceComponent
47
+ # MsdElementTypeRasterFrame
48
+ # MsdElementTypeTableEntry
49
+ # MsdElementTypeTable
50
+ # MsdElementTypeViewGroup
51
+ # MsdElementTypeView
52
+ # MsdElementTypeLevelMask
53
+ # MsdElementTypeReferenceAttachment
54
+ # MsdElementTypeMatrixHeader
55
+ # MsdElementTypeMatrixIntegerData
56
+ # MsdElementTypeMatrixDoubleData
57
+ # MsdElementTypeMeshHeader
58
+ # MsdElementTypeReferenceOverride
59
+ # MsdElementTypeNamedGroupHeader
60
+ # MsdElementTypeNamedGroupComponent
61
+
62
+ def type_inclusions
63
+ @type_inclusions ||= []
64
+ end
65
+
66
+ def reset_types
67
+ reset_ole_types
68
+ @type_inclusions = []
69
+ end
70
+
71
+ def reset_ole_types
72
+ ole_obj.ExcludeAllTypes
73
+ end
74
+
75
+ def include_type(type)
76
+ type_inclusions << type
77
+ end
78
+
79
+ def resolve_type_scans
80
+ return unless type_inclusions.size > 0
81
+ reset_ole_types
82
+ type_inclusions.each do |type|
83
+ ole_obj.IncludeType(type)
84
+ end
85
+ end
86
+
87
+ def include_cell_header
88
+ self.include_type(::Microstation::MSD::MsdElementTypeCellHeader)
89
+ end
90
+
91
+ def include_shared_cell
92
+ self.include_type(::Microstation::MSD::MsdElementTypeSharedCell)
93
+ end
94
+
95
+ def include_cells
96
+ include_cell_header
97
+ include_shared_cell
98
+ end
99
+
100
+ def include_dimensions
101
+ self.include_type(::Microstation::MSD::MsdElementTypeDimension)
102
+ end
103
+
104
+ def include_text
105
+ self.include_type(::Microstation::MSD::MsdElementTypeText)
106
+ end
107
+
108
+ def include_tags
109
+ self.include_type ::Microstation::MSD::MsdElementTypeTag
110
+ end
111
+
112
+ def include_text_nodes
113
+ self.include_type ::Microstation::MSD::MsdElementTypeTextNode
114
+ end
115
+
116
+ def include_textual
117
+ include_text
118
+ include_text_nodes
119
+ end
120
+
121
+ def include_solids
122
+ self.include_type ::Microstation::MSD::MsdElementTypeSolid
123
+ end
124
+
125
+ def include_lines
126
+ self.include_type ::Microstation::MSD::MsdElementTypeLine
127
+ end
128
+
129
+
130
+ end
131
+
132
+ end
133
+
134
+ end