diff --git a/spec/EntitiesSpec.xml b/spec/EntitiesSpec.xml
index 5aade74..fe5574b 100644
--- a/spec/EntitiesSpec.xml
+++ b/spec/EntitiesSpec.xml
@@ -493,7 +493,7 @@
-
+
diff --git a/src/entity.rs b/src/entity.rs
index ff24a59..25b9166 100644
--- a/src/entity.rs
+++ b/src/entity.rs
@@ -1515,7 +1515,7 @@ impl Entity {
}
pairs.push(CodePair::new_i16(70, v.flags as i16));
pairs.push(CodePair::new_f64(50, v.curve_fit_tangent_direction));
- if version >= AcadVersion::R13 {
+ if version >= AcadVersion::R12 {
if v.polyface_mesh_vertex_index1 != 0 {
pairs.push(CodePair::new_i16(71, v.polyface_mesh_vertex_index1 as i16));
}
@@ -1572,7 +1572,13 @@ impl Entity {
for (v, vertex_handle) in &poly.__vertices_and_handles {
let mut v = v.clone();
v.set_is_3d_polyline_vertex(poly.is_3d_polyline());
- v.set_is_3d_polygon_mesh(poly.is_3d_polygon_mesh());
+ if v.polyface_mesh_vertex_index1 == 0
+ && v.polyface_mesh_vertex_index2 == 0
+ && v.polyface_mesh_vertex_index3 == 0
+ && v.polyface_mesh_vertex_index4 == 0
+ {
+ v.set_is_3d_polygon_mesh(poly.is_3d_polygon_mesh());
+ }
let v = Entity {
common: EntityCommon {
handle: *vertex_handle,
@@ -2872,9 +2878,9 @@ mod tests {
}
#[test]
- fn write_insert_no_extrusion_on_r12() {
+ fn write_insert_no_extrusion_on_r11() {
let mut drawing = Drawing::new();
- drawing.header.version = AcadVersion::R12;
+ drawing.header.version = AcadVersion::R11;
let ins = Insert {
extrusion_direction: Vector::new(1.0, 2.0, 3.0),
..Default::default()
@@ -2891,6 +2897,26 @@ mod tests {
);
}
+ #[test]
+ fn write_insert_extrusion_on_r12() {
+ let mut drawing = Drawing::new();
+ drawing.header.version = AcadVersion::R12;
+ let ins = Insert {
+ extrusion_direction: Vector::new(1.0, 2.0, 3.0),
+ ..Default::default()
+ };
+ let ent = Entity::new(EntityType::Insert(ins));
+ drawing.add_entity(ent);
+ assert_contains_pairs(
+ &drawing,
+ vec![
+ CodePair::new_f64(210, 1.0),
+ CodePair::new_f64(220, 2.0),
+ CodePair::new_f64(230, 3.0),
+ ],
+ );
+ }
+
#[test]
fn write_insert_extrusion_on_r13() {
let mut drawing = Drawing::new();