@linkiez/dxf-renew 5.3.1
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.
- package/.eslintignore +17 -0
- package/.eslintrc.json +61 -0
- package/.gitattributes +4 -0
- package/.github/instructions/project-en_US.instructions.md +352 -0
- package/.github/workflows/release.yml +110 -0
- package/.husky/commit-msg +4 -0
- package/.husky/pre-commit +1 -0
- package/.prettierignore +1 -0
- package/.prettierrc.json +6 -0
- package/.releaserc.json +76 -0
- package/.travis.yml +6 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarnrc.yml +1 -0
- package/CHANGELOG.md +134 -0
- package/CONTRIBUTING.md +271 -0
- package/LICENSE +21 -0
- package/PLAN.md +517 -0
- package/README.md +306 -0
- package/build.mjs +66 -0
- package/commitlint.config.js +25 -0
- package/dist/dxf.js +7234 -0
- package/docs/CODE_PATTERNS.md +182 -0
- package/docs/DIMENSION_SUMMARY.md +248 -0
- package/docs/DIMENSION_SUMMARY.pt-BR.md +248 -0
- package/docs/IMPLEMENTED-2D-ENTITIES.md +54 -0
- package/docs/IMPLEMENTED-2D-ENTITIES.pt-BR.md +54 -0
- package/docs/TEXT-MTEXT-DIMENSION-SUPPORT.md +241 -0
- package/docs/TEXT-MTEXT-DIMENSION-SUPPORT.pt-BR.md +169 -0
- package/docs/autocad_2012_pdf_dxf-reference_enu.md +8272 -0
- package/examples/dxf.html +36 -0
- package/examples/example.es5.js +30 -0
- package/examples/example.es6.js +30 -0
- package/examples/text-dimension-viewer.html +133 -0
- package/lib/Helper.cjs +89 -0
- package/lib/Helper.cjs.map +7 -0
- package/lib/Helper.js +59 -0
- package/lib/Helper.js.map +7 -0
- package/lib/applyTransforms.cjs +59 -0
- package/lib/applyTransforms.cjs.map +7 -0
- package/lib/applyTransforms.js +39 -0
- package/lib/applyTransforms.js.map +7 -0
- package/lib/cli.cjs +53 -0
- package/lib/cli.cjs.map +7 -0
- package/lib/cli.js +29 -0
- package/lib/cli.js.map +7 -0
- package/lib/config.cjs +30 -0
- package/lib/config.cjs.map +7 -0
- package/lib/config.js +10 -0
- package/lib/config.js.map +7 -0
- package/lib/constants.cjs +39 -0
- package/lib/constants.cjs.map +7 -0
- package/lib/constants.js +15 -0
- package/lib/constants.js.map +7 -0
- package/lib/denormalise.cjs +148 -0
- package/lib/denormalise.cjs.map +7 -0
- package/lib/denormalise.js +118 -0
- package/lib/denormalise.js.map +7 -0
- package/lib/dimensionToSVG.cjs +307 -0
- package/lib/dimensionToSVG.cjs.map +7 -0
- package/lib/dimensionToSVG.js +273 -0
- package/lib/dimensionToSVG.js.map +7 -0
- package/lib/entityToPolyline.cjs +248 -0
- package/lib/entityToPolyline.cjs.map +7 -0
- package/lib/entityToPolyline.js +213 -0
- package/lib/entityToPolyline.js.map +7 -0
- package/lib/getRGBForEntity.cjs +53 -0
- package/lib/getRGBForEntity.cjs.map +7 -0
- package/lib/getRGBForEntity.js +23 -0
- package/lib/getRGBForEntity.js.map +7 -0
- package/lib/groupEntitiesByLayer.cjs +34 -0
- package/lib/groupEntitiesByLayer.cjs.map +7 -0
- package/lib/groupEntitiesByLayer.js +14 -0
- package/lib/groupEntitiesByLayer.js.map +7 -0
- package/lib/handlers/blocks.cjs +93 -0
- package/lib/handlers/blocks.cjs.map +7 -0
- package/lib/handlers/blocks.js +63 -0
- package/lib/handlers/blocks.js.map +7 -0
- package/lib/handlers/entities.cjs +118 -0
- package/lib/handlers/entities.cjs.map +7 -0
- package/lib/handlers/entities.js +88 -0
- package/lib/handlers/entities.js.map +7 -0
- package/lib/handlers/entity/arc.cjs +82 -0
- package/lib/handlers/entity/arc.cjs.map +7 -0
- package/lib/handlers/entity/arc.js +47 -0
- package/lib/handlers/entity/arc.js.map +7 -0
- package/lib/handlers/entity/attdef.cjs +318 -0
- package/lib/handlers/entity/attdef.cjs.map +7 -0
- package/lib/handlers/entity/attdef.js +282 -0
- package/lib/handlers/entity/attdef.js.map +7 -0
- package/lib/handlers/entity/attrib.cjs +52 -0
- package/lib/handlers/entity/attrib.cjs.map +7 -0
- package/lib/handlers/entity/attrib.js +27 -0
- package/lib/handlers/entity/attrib.js.map +7 -0
- package/lib/handlers/entity/circle.cjs +73 -0
- package/lib/handlers/entity/circle.cjs.map +7 -0
- package/lib/handlers/entity/circle.js +38 -0
- package/lib/handlers/entity/circle.js.map +7 -0
- package/lib/handlers/entity/common.cjs +83 -0
- package/lib/handlers/entity/common.cjs.map +7 -0
- package/lib/handlers/entity/common.js +63 -0
- package/lib/handlers/entity/common.js.map +7 -0
- package/lib/handlers/entity/dimension.cjs +203 -0
- package/lib/handlers/entity/dimension.cjs.map +7 -0
- package/lib/handlers/entity/dimension.js +168 -0
- package/lib/handlers/entity/dimension.js.map +7 -0
- package/lib/handlers/entity/ellipse.cjs +88 -0
- package/lib/handlers/entity/ellipse.cjs.map +7 -0
- package/lib/handlers/entity/ellipse.js +53 -0
- package/lib/handlers/entity/ellipse.js.map +7 -0
- package/lib/handlers/entity/hatch.cjs +470 -0
- package/lib/handlers/entity/hatch.cjs.map +7 -0
- package/lib/handlers/entity/hatch.js +435 -0
- package/lib/handlers/entity/hatch.js.map +7 -0
- package/lib/handlers/entity/insert.cjs +106 -0
- package/lib/handlers/entity/insert.cjs.map +7 -0
- package/lib/handlers/entity/insert.js +71 -0
- package/lib/handlers/entity/insert.js.map +7 -0
- package/lib/handlers/entity/line.cjs +84 -0
- package/lib/handlers/entity/line.cjs.map +7 -0
- package/lib/handlers/entity/line.js +49 -0
- package/lib/handlers/entity/line.js.map +7 -0
- package/lib/handlers/entity/lwpolyline.cjs +82 -0
- package/lib/handlers/entity/lwpolyline.cjs.map +7 -0
- package/lib/handlers/entity/lwpolyline.js +47 -0
- package/lib/handlers/entity/lwpolyline.js.map +7 -0
- package/lib/handlers/entity/mtext.cjs +121 -0
- package/lib/handlers/entity/mtext.cjs.map +7 -0
- package/lib/handlers/entity/mtext.js +85 -0
- package/lib/handlers/entity/mtext.js.map +7 -0
- package/lib/handlers/entity/ole2Frame.cjs +98 -0
- package/lib/handlers/entity/ole2Frame.cjs.map +7 -0
- package/lib/handlers/entity/ole2Frame.js +63 -0
- package/lib/handlers/entity/ole2Frame.js.map +7 -0
- package/lib/handlers/entity/point.cjs +73 -0
- package/lib/handlers/entity/point.cjs.map +7 -0
- package/lib/handlers/entity/point.js +38 -0
- package/lib/handlers/entity/point.js.map +7 -0
- package/lib/handlers/entity/polyline.cjs +70 -0
- package/lib/handlers/entity/polyline.cjs.map +7 -0
- package/lib/handlers/entity/polyline.js +35 -0
- package/lib/handlers/entity/polyline.js.map +7 -0
- package/lib/handlers/entity/solid.cjs +101 -0
- package/lib/handlers/entity/solid.cjs.map +7 -0
- package/lib/handlers/entity/solid.js +66 -0
- package/lib/handlers/entity/solid.js.map +7 -0
- package/lib/handlers/entity/spline.cjs +109 -0
- package/lib/handlers/entity/spline.cjs.map +7 -0
- package/lib/handlers/entity/spline.js +74 -0
- package/lib/handlers/entity/spline.js.map +7 -0
- package/lib/handlers/entity/text.cjs +85 -0
- package/lib/handlers/entity/text.cjs.map +7 -0
- package/lib/handlers/entity/text.js +49 -0
- package/lib/handlers/entity/text.js.map +7 -0
- package/lib/handlers/entity/threeDFace.cjs +98 -0
- package/lib/handlers/entity/threeDFace.cjs.map +7 -0
- package/lib/handlers/entity/threeDFace.js +63 -0
- package/lib/handlers/entity/threeDFace.js.map +7 -0
- package/lib/handlers/entity/vertex.cjs +78 -0
- package/lib/handlers/entity/vertex.cjs.map +7 -0
- package/lib/handlers/entity/vertex.js +53 -0
- package/lib/handlers/entity/vertex.js.map +7 -0
- package/lib/handlers/entity/viewport.cjs +153 -0
- package/lib/handlers/entity/viewport.cjs.map +7 -0
- package/lib/handlers/entity/viewport.js +118 -0
- package/lib/handlers/entity/viewport.js.map +7 -0
- package/lib/handlers/header.cjs +92 -0
- package/lib/handlers/header.cjs.map +7 -0
- package/lib/handlers/header.js +72 -0
- package/lib/handlers/header.js.map +7 -0
- package/lib/handlers/objects.cjs +170 -0
- package/lib/handlers/objects.cjs.map +7 -0
- package/lib/handlers/objects.js +150 -0
- package/lib/handlers/objects.js.map +7 -0
- package/lib/handlers/tables.cjs +587 -0
- package/lib/handlers/tables.cjs.map +7 -0
- package/lib/handlers/tables.js +557 -0
- package/lib/handlers/tables.js.map +7 -0
- package/lib/index.cjs +60 -0
- package/lib/index.cjs.map +7 -0
- package/lib/index.js +19 -0
- package/lib/index.js.map +7 -0
- package/lib/parseString.cjs +118 -0
- package/lib/parseString.cjs.map +7 -0
- package/lib/parseString.js +88 -0
- package/lib/parseString.js.map +7 -0
- package/lib/toPolylines.cjs +69 -0
- package/lib/toPolylines.cjs.map +7 -0
- package/lib/toPolylines.js +39 -0
- package/lib/toPolylines.js.map +7 -0
- package/lib/toSVG.cjs +395 -0
- package/lib/toSVG.cjs.map +7 -0
- package/lib/toSVG.js +361 -0
- package/lib/toSVG.js.map +7 -0
- package/lib/types/arc-entity.cjs +17 -0
- package/lib/types/arc-entity.cjs.map +7 -0
- package/lib/types/arc-entity.js +1 -0
- package/lib/types/arc-entity.js.map +7 -0
- package/lib/types/base-entity.cjs +17 -0
- package/lib/types/base-entity.cjs.map +7 -0
- package/lib/types/base-entity.js +1 -0
- package/lib/types/base-entity.js.map +7 -0
- package/lib/types/circle-entity.cjs +17 -0
- package/lib/types/circle-entity.cjs.map +7 -0
- package/lib/types/circle-entity.js +1 -0
- package/lib/types/circle-entity.js.map +7 -0
- package/lib/types/common.cjs +17 -0
- package/lib/types/common.cjs.map +7 -0
- package/lib/types/common.js +1 -0
- package/lib/types/common.js.map +7 -0
- package/lib/types/dimension-entity.cjs +17 -0
- package/lib/types/dimension-entity.cjs.map +7 -0
- package/lib/types/dimension-entity.js +1 -0
- package/lib/types/dimension-entity.js.map +7 -0
- package/lib/types/dxf.cjs +17 -0
- package/lib/types/dxf.cjs.map +7 -0
- package/lib/types/dxf.js +1 -0
- package/lib/types/dxf.js.map +7 -0
- package/lib/types/ellipse-entity.cjs +17 -0
- package/lib/types/ellipse-entity.cjs.map +7 -0
- package/lib/types/ellipse-entity.js +1 -0
- package/lib/types/ellipse-entity.js.map +7 -0
- package/lib/types/entity.cjs +17 -0
- package/lib/types/entity.cjs.map +7 -0
- package/lib/types/entity.js +1 -0
- package/lib/types/entity.js.map +7 -0
- package/lib/types/handler-internal.cjs +17 -0
- package/lib/types/handler-internal.cjs.map +7 -0
- package/lib/types/handler-internal.js +1 -0
- package/lib/types/handler-internal.js.map +7 -0
- package/lib/types/handler.cjs +17 -0
- package/lib/types/handler.cjs.map +7 -0
- package/lib/types/handler.js +1 -0
- package/lib/types/handler.js.map +7 -0
- package/lib/types/hatch-entity.cjs +17 -0
- package/lib/types/hatch-entity.cjs.map +7 -0
- package/lib/types/hatch-entity.js +1 -0
- package/lib/types/hatch-entity.js.map +7 -0
- package/lib/types/helper.cjs +17 -0
- package/lib/types/helper.cjs.map +7 -0
- package/lib/types/helper.js +1 -0
- package/lib/types/helper.js.map +7 -0
- package/lib/types/index.cjs +77 -0
- package/lib/types/index.cjs.map +7 -0
- package/lib/types/index.js +29 -0
- package/lib/types/index.js.map +7 -0
- package/lib/types/insert-entity.cjs +17 -0
- package/lib/types/insert-entity.cjs.map +7 -0
- package/lib/types/insert-entity.js +1 -0
- package/lib/types/insert-entity.js.map +7 -0
- package/lib/types/layer-groups.cjs +17 -0
- package/lib/types/layer-groups.cjs.map +7 -0
- package/lib/types/layer-groups.js +1 -0
- package/lib/types/layer-groups.js.map +7 -0
- package/lib/types/line-entity.cjs +17 -0
- package/lib/types/line-entity.cjs.map +7 -0
- package/lib/types/line-entity.js +1 -0
- package/lib/types/line-entity.js.map +7 -0
- package/lib/types/mtext-entity.cjs +17 -0
- package/lib/types/mtext-entity.cjs.map +7 -0
- package/lib/types/mtext-entity.js +1 -0
- package/lib/types/mtext-entity.js.map +7 -0
- package/lib/types/ole2frame-entity.cjs +17 -0
- package/lib/types/ole2frame-entity.cjs.map +7 -0
- package/lib/types/ole2frame-entity.js +1 -0
- package/lib/types/ole2frame-entity.js.map +7 -0
- package/lib/types/options.cjs +17 -0
- package/lib/types/options.cjs.map +7 -0
- package/lib/types/options.js +1 -0
- package/lib/types/options.js.map +7 -0
- package/lib/types/point-entity.cjs +17 -0
- package/lib/types/point-entity.cjs.map +7 -0
- package/lib/types/point-entity.js +1 -0
- package/lib/types/point-entity.js.map +7 -0
- package/lib/types/polyline-entity.cjs +17 -0
- package/lib/types/polyline-entity.cjs.map +7 -0
- package/lib/types/polyline-entity.js +1 -0
- package/lib/types/polyline-entity.js.map +7 -0
- package/lib/types/polylines.cjs +17 -0
- package/lib/types/polylines.cjs.map +7 -0
- package/lib/types/polylines.js +1 -0
- package/lib/types/polylines.js.map +7 -0
- package/lib/types/solid-entity.cjs +17 -0
- package/lib/types/solid-entity.cjs.map +7 -0
- package/lib/types/solid-entity.js +1 -0
- package/lib/types/solid-entity.js.map +7 -0
- package/lib/types/spline-entity.cjs +17 -0
- package/lib/types/spline-entity.cjs.map +7 -0
- package/lib/types/spline-entity.js +1 -0
- package/lib/types/spline-entity.js.map +7 -0
- package/lib/types/svg.cjs +17 -0
- package/lib/types/svg.cjs.map +7 -0
- package/lib/types/svg.js +1 -0
- package/lib/types/svg.js.map +7 -0
- package/lib/types/tables.cjs +17 -0
- package/lib/types/tables.cjs.map +7 -0
- package/lib/types/tables.js +1 -0
- package/lib/types/tables.js.map +7 -0
- package/lib/types/text-entity.cjs +17 -0
- package/lib/types/text-entity.cjs.map +7 -0
- package/lib/types/text-entity.js +1 -0
- package/lib/types/text-entity.js.map +7 -0
- package/lib/types/util-types.cjs +17 -0
- package/lib/types/util-types.cjs.map +7 -0
- package/lib/types/util-types.js +1 -0
- package/lib/types/util-types.js.map +7 -0
- package/lib/types/vecks.d.cjs +2 -0
- package/lib/types/vecks.d.cjs.map +7 -0
- package/lib/types/vecks.d.js +1 -0
- package/lib/types/vecks.d.js.map +7 -0
- package/lib/types/viewport-entity.cjs +17 -0
- package/lib/types/viewport-entity.cjs.map +7 -0
- package/lib/types/viewport-entity.js +1 -0
- package/lib/types/viewport-entity.js.map +7 -0
- package/lib/types.cjs +23 -0
- package/lib/types.cjs.map +7 -0
- package/lib/types.js +2 -0
- package/lib/types.js.map +7 -0
- package/lib/util/bSpline.cjs +95 -0
- package/lib/util/bSpline.cjs.map +7 -0
- package/lib/util/bSpline.js +65 -0
- package/lib/util/bSpline.js.map +7 -0
- package/lib/util/colors.cjs +283 -0
- package/lib/util/colors.cjs.map +7 -0
- package/lib/util/colors.js +263 -0
- package/lib/util/colors.js.map +7 -0
- package/lib/util/createArcForLWPolyline.cjs +84 -0
- package/lib/util/createArcForLWPolyline.cjs.map +7 -0
- package/lib/util/createArcForLWPolyline.js +64 -0
- package/lib/util/createArcForLWPolyline.js.map +7 -0
- package/lib/util/dxfColorToRGB.cjs +115 -0
- package/lib/util/dxfColorToRGB.cjs.map +7 -0
- package/lib/util/dxfColorToRGB.js +90 -0
- package/lib/util/dxfColorToRGB.js.map +7 -0
- package/lib/util/insertKnot.cjs +77 -0
- package/lib/util/insertKnot.cjs.map +7 -0
- package/lib/util/insertKnot.js +57 -0
- package/lib/util/insertKnot.js.map +7 -0
- package/lib/util/logger.cjs +53 -0
- package/lib/util/logger.cjs.map +7 -0
- package/lib/util/logger.js +23 -0
- package/lib/util/logger.js.map +7 -0
- package/lib/util/rgbToColorAttribute.cjs +32 -0
- package/lib/util/rgbToColorAttribute.cjs.map +7 -0
- package/lib/util/rgbToColorAttribute.js +12 -0
- package/lib/util/rgbToColorAttribute.js.map +7 -0
- package/lib/util/rotate.cjs +30 -0
- package/lib/util/rotate.cjs.map +7 -0
- package/lib/util/rotate.js +10 -0
- package/lib/util/rotate.js.map +7 -0
- package/lib/util/round10.cjs +38 -0
- package/lib/util/round10.cjs.map +7 -0
- package/lib/util/round10.js +18 -0
- package/lib/util/round10.js.map +7 -0
- package/lib/util/toPiecewiseBezier.cjs +90 -0
- package/lib/util/toPiecewiseBezier.cjs.map +7 -0
- package/lib/util/toPiecewiseBezier.js +54 -0
- package/lib/util/toPiecewiseBezier.js.map +7 -0
- package/lib/util/transformBoundingBoxAndElement.cjs +80 -0
- package/lib/util/transformBoundingBoxAndElement.cjs.map +7 -0
- package/lib/util/transformBoundingBoxAndElement.js +60 -0
- package/lib/util/transformBoundingBoxAndElement.js.map +7 -0
- package/package.json +127 -0
- package/src/Helper.ts +71 -0
- package/src/applyTransforms.ts +54 -0
- package/src/cli.ts +41 -0
- package/src/config.ts +10 -0
- package/src/constants.ts +14 -0
- package/src/denormalise.ts +153 -0
- package/src/dimensionToSVG.ts +427 -0
- package/src/entityToPolyline.ts +338 -0
- package/src/getRGBForEntity.ts +28 -0
- package/src/groupEntitiesByLayer.ts +14 -0
- package/src/handlers/blocks.ts +65 -0
- package/src/handlers/entities.ts +111 -0
- package/src/handlers/entity/arc.ts +61 -0
- package/src/handlers/entity/attdef.ts +284 -0
- package/src/handlers/entity/attrib.ts +29 -0
- package/src/handlers/entity/circle.ts +47 -0
- package/src/handlers/entity/common.ts +79 -0
- package/src/handlers/entity/dimension.ts +217 -0
- package/src/handlers/entity/ellipse.ts +55 -0
- package/src/handlers/entity/hatch.ts +471 -0
- package/src/handlers/entity/insert.ts +73 -0
- package/src/handlers/entity/line.ts +56 -0
- package/src/handlers/entity/lwpolyline.ts +54 -0
- package/src/handlers/entity/mtext.ts +150 -0
- package/src/handlers/entity/ole2Frame.ts +64 -0
- package/src/handlers/entity/point.ts +47 -0
- package/src/handlers/entity/polyline.ts +49 -0
- package/src/handlers/entity/solid.ts +73 -0
- package/src/handlers/entity/spline.ts +103 -0
- package/src/handlers/entity/text.ts +83 -0
- package/src/handlers/entity/threeDFace.ts +69 -0
- package/src/handlers/entity/vertex.ts +55 -0
- package/src/handlers/entity/viewport.ts +119 -0
- package/src/handlers/header.ts +73 -0
- package/src/handlers/objects.ts +152 -0
- package/src/handlers/tables.ts +581 -0
- package/src/index.ts +19 -0
- package/src/parseString.ts +97 -0
- package/src/toPolylines.ts +47 -0
- package/src/toSVG.ts +518 -0
- package/src/types/README.md +91 -0
- package/src/types/arc-entity.ts +10 -0
- package/src/types/base-entity.ts +25 -0
- package/src/types/circle-entity.ts +8 -0
- package/src/types/common.ts +37 -0
- package/src/types/dimension-entity.ts +23 -0
- package/src/types/dxf.ts +64 -0
- package/src/types/ellipse-entity.ts +13 -0
- package/src/types/entity.ts +32 -0
- package/src/types/handler-internal.ts +51 -0
- package/src/types/handler.ts +10 -0
- package/src/types/hatch-entity.ts +127 -0
- package/src/types/helper.ts +12 -0
- package/src/types/index.ts +53 -0
- package/src/types/insert-entity.ts +19 -0
- package/src/types/layer-groups.ts +8 -0
- package/src/types/line-entity.ts +10 -0
- package/src/types/mtext-entity.ts +35 -0
- package/src/types/ole2frame-entity.ts +35 -0
- package/src/types/options.ts +17 -0
- package/src/types/point-entity.ts +7 -0
- package/src/types/polyline-entity.ts +20 -0
- package/src/types/polylines.ts +22 -0
- package/src/types/solid-entity.ts +9 -0
- package/src/types/spline-entity.ts +12 -0
- package/src/types/svg.ts +31 -0
- package/src/types/tables.ts +414 -0
- package/src/types/text-entity.ts +23 -0
- package/src/types/util-types.ts +27 -0
- package/src/types/vecks.d.ts +29 -0
- package/src/types/viewport-entity.ts +81 -0
- package/src/types.ts +5 -0
- package/src/util/bSpline.ts +97 -0
- package/src/util/colors.ts +266 -0
- package/src/util/createArcForLWPolyline.ts +93 -0
- package/src/util/diagram.png +0 -0
- package/src/util/dxfColorToRGB.ts +106 -0
- package/src/util/insertKnot.ts +69 -0
- package/src/util/logger.ts +23 -0
- package/src/util/rgbToColorAttribute.ts +14 -0
- package/src/util/rotate.ts +14 -0
- package/src/util/round10.ts +24 -0
- package/src/util/toPiecewiseBezier.ts +70 -0
- package/src/util/transformBoundingBoxAndElement.ts +74 -0
- package/tsconfig.json +34 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# List of DXF 2D Entities
|
|
2
|
+
|
|
3
|
+
This list was generated based on the AutoCAD 2012 DXF reference documentation. It catalogs 2D entities, indicating whether they have already been implemented in this project.
|
|
4
|
+
|
|
5
|
+
| Entity | Implemented | Description |
|
|
6
|
+
| :--- | :---: | :--- |
|
|
7
|
+
| **ARC** | ✅ | A circular arc. |
|
|
8
|
+
| **CIRCLE** | ✅ | A circle. |
|
|
9
|
+
| **ELLIPSE** | ✅ | An ellipse or elliptical arc. |
|
|
10
|
+
| **HATCH** | ✅ | Fills a bounded area with a pattern, solid color, or gradient. |
|
|
11
|
+
| **LINE** | ✅ | A straight line segment. |
|
|
12
|
+
| **LWPOLYLINE** | ✅ | A lightweight 2D polyline. |
|
|
13
|
+
| **MTEXT** | ✅ | Multi-line text with advanced formatting. |
|
|
14
|
+
| **POINT** | ✅ | A point entity. |
|
|
15
|
+
| **POLYLINE** | ✅ | A 2D or 3D polyline (with vertices). |
|
|
16
|
+
| **SOLID** | ✅ | A 2D area filled with solid color. |
|
|
17
|
+
| **SPLINE** | ✅ | A spline curve. |
|
|
18
|
+
| **TEXT** | ✅ | A single line of text. |
|
|
19
|
+
| **DIMENSION** | ✅ | Dimension entity (linear, angular, radial, etc.). **Complete implementation**: text and styleName parsing, DIMSTYLE integration (68+ properties), rendering of 6 dimension types with extension lines, arrows, text rotation, color support (DIMCLRD, DIMCLRE, DIMCLRT) and line weights (DIMLWD, DIMLWE). See `docs/DIMENSION_IMPLEMENTATION_PLAN.md` for details. |
|
|
20
|
+
| **INSERT** | ✅ | A block insertion (block reference). |
|
|
21
|
+
| **ATTDEF** | ✅ | Attribute definition for a block. |
|
|
22
|
+
| **ATTRIB** | ✅ | An attribute instance attached to a block. |
|
|
23
|
+
| **OLE2FRAME** | ✅ | An OLE (Object Linking and Embedding) object. |
|
|
24
|
+
| **LEADER** | ❌ | A leader line, used for annotations. Creates a line that connects the annotation to a feature in a drawing. |
|
|
25
|
+
| **MLINE** | ❌ | A multi-line entity with parallel lines. |
|
|
26
|
+
| **RAY** | ❌ | A semi-infinite line that extends infinitely in one direction from its start point. |
|
|
27
|
+
| **SHAPE** | ❌ | A shape from a shape file (.shx). Inserts a named shape from a shape file that has already been loaded using the LOAD command. |
|
|
28
|
+
| **TOLERANCE** | ❌ | A geometric tolerance. Creates geometric tolerances contained in a feature control frame. |
|
|
29
|
+
| **TRACE** | ❌ | A solid 2D line with width. |
|
|
30
|
+
| **WIPEOUT** | ❌ | An area that masks other objects with the background color. |
|
|
31
|
+
| **XLINE** | ❌ | An infinite construction line. |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 3D Entities (For Reference)
|
|
36
|
+
|
|
37
|
+
| Entity | Implemented | Description |
|
|
38
|
+
| :--- | :---: | :--- |
|
|
39
|
+
| **3DFACE** | ✅ | A three-dimensional face. |
|
|
40
|
+
| **3DSOLID** | ❌ | A 3D ACIS solid object. Displays 3D solids as wireframe or shaded objects. |
|
|
41
|
+
| **BODY** | ❌ | A 3D ACIS body object. |
|
|
42
|
+
| **HELIX** | ❌ | A 3D helix. |
|
|
43
|
+
| **IMAGE** | ❌ | A raster image. |
|
|
44
|
+
| **LIGHT** | ❌ | A light source. |
|
|
45
|
+
| **MESH** | ❌ | A 3D mesh. |
|
|
46
|
+
| **REGION** | ❌ | A closed 2D area (region). |
|
|
47
|
+
| **SECTION** | ❌ | A section object. |
|
|
48
|
+
| **SUN** | ❌ | A sun light object. |
|
|
49
|
+
| **SURFACE** | ❌ | A 3D surface (extruded, loft, etc.). |
|
|
50
|
+
| **TABLE** | ❌ | A table entity. |
|
|
51
|
+
| **UNDERLAY** | ❌ | An underlay (e.g., DWF, DGN, PDF). |
|
|
52
|
+
| **VIEWPORT** | ✅ | A viewport in paper space. |
|
|
53
|
+
|
|
54
|
+
*Note: The `POLYLINE` implementation may include 3D vertices, but the entity itself is often used for 2D shapes.*
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Lista de Entidades DXF 2D
|
|
2
|
+
|
|
3
|
+
Esta lista foi gerada com base na documentação de referência do AutoCAD 2012 DXF. Ela cataloga as entidades 2D, indicando se já foram implementadas neste projeto.
|
|
4
|
+
|
|
5
|
+
| Entidade | Implementado | Descrição |
|
|
6
|
+
| :--- | :---: | :--- |
|
|
7
|
+
| **ARC** | ✅ | Um arco circular. |
|
|
8
|
+
| **CIRCLE** | ✅ | Um círculo. |
|
|
9
|
+
| **ELLIPSE** | ✅ | Uma elipse ou um arco elíptico. |
|
|
10
|
+
| **HATCH** | ✅ | Preenche uma área delimitada com um padrão, cor sólida ou gradiente. |
|
|
11
|
+
| **LINE** | ✅ | Um segmento de linha reta. |
|
|
12
|
+
| **LWPOLYLINE** | ✅ | Uma polilinha 2D leve (lightweight). |
|
|
13
|
+
| **MTEXT** | ✅ | Texto de múltiplas linhas com formatação avançada. |
|
|
14
|
+
| **POINT** | ✅ | Uma entidade de ponto. |
|
|
15
|
+
| **POLYLINE** | ✅ | Uma polilinha 2D ou 3D (com vértices). |
|
|
16
|
+
| **SOLID** | ✅ | Uma área 2D preenchida com cor sólida. |
|
|
17
|
+
| **SPLINE** | ✅ | Uma curva spline. |
|
|
18
|
+
| **TEXT** | ✅ | Uma única linha de texto. |
|
|
19
|
+
| **DIMENSION** | ✅ | Entidade de dimensão (linear, angular, radial, etc.). **Implementação completa**: parsing de text e styleName, integração com DIMSTYLE (68+ propriedades), renderização de 6 tipos de dimensão com extension lines, setas, rotação de texto, suporte a cores (DIMCLRD, DIMCLRE, DIMCLRT) e espessuras (DIMLWD, DIMLWE). Ver `docs/DIMENSION_IMPLEMENTATION_PLAN.md` para detalhes. |
|
|
20
|
+
| **INSERT** | ✅ | Uma inserção de bloco (block reference). |
|
|
21
|
+
| **ATTDEF** | ✅ | Definição de atributo para um bloco. |
|
|
22
|
+
| **ATTRIB** | ✅ | Uma instância de atributo anexada a um bloco. |
|
|
23
|
+
| **OLE2FRAME** | ✅ | Um objeto OLE (Object Linking and Embedding). |
|
|
24
|
+
| **LEADER** | ❌ | Uma linha de chamada, usada para anotações. Cria uma linha que conecta a anotação a um recurso em um desenho. |
|
|
25
|
+
| **MLINE** | ❌ | Uma entidade de múltiplas linhas paralelas. |
|
|
26
|
+
| **RAY** | ❌ | Uma linha semi-infinita que se estende infinitamente em uma direção a partir de seu ponto inicial. |
|
|
27
|
+
| **SHAPE** | ❌ | Uma forma de um arquivo de formas (.shx). Insere uma forma nomeada a partir de um arquivo de forma que já tenha sido carregado usando o comando LOAD. |
|
|
28
|
+
| **TOLERANCE** | ❌ | Uma tolerância geométrica. Cria tolerâncias geométricas contidas em um quadro de controle de recurso. |
|
|
29
|
+
| **TRACE** | ❌ | Uma linha 2D sólida com espessura. |
|
|
30
|
+
| **WIPEOUT** | ❌ | Uma área que mascara outros objetos com a cor de fundo. |
|
|
31
|
+
| **XLINE** | ❌ | Uma linha de construção infinita. |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Entidades 3D (Para Referência)
|
|
36
|
+
|
|
37
|
+
| Entidade | Implementado | Descrição |
|
|
38
|
+
| :--- | :---: | :--- |
|
|
39
|
+
| **3DFACE** | ✅ | Uma face tridimensional. |
|
|
40
|
+
| **3DSOLID** | ❌ | Um objeto sólido ACIS 3D. Exibe sólidos 3D como objetos de arame ou sombreados. |
|
|
41
|
+
| **BODY** | ❌ | Um objeto de corpo ACIS 3D. |
|
|
42
|
+
| **HELIX** | ❌ | Uma hélice 3D. |
|
|
43
|
+
| **IMAGE** | ❌ | Uma imagem raster. |
|
|
44
|
+
| **LIGHT** | ❌ | Uma fonte de luz. |
|
|
45
|
+
| **MESH** | ❌ | Uma malha 3D. |
|
|
46
|
+
| **REGION** | ❌ | Uma área 2D fechada (região). |
|
|
47
|
+
| **SECTION** | ❌ | Um objeto de seção. |
|
|
48
|
+
| **SUN** | ❌ | Um objeto de luz solar. |
|
|
49
|
+
| **SURFACE** | ❌ | Uma superfície 3D (extrudada, loft, etc.). |
|
|
50
|
+
| **TABLE** | ❌ | Uma entidade de tabela. |
|
|
51
|
+
| **UNDERLAY** | ❌ | Uma subjacência (ex: DWF, DGN, PDF). |
|
|
52
|
+
| **VIEWPORT** | ✅ | Uma viewport em paper space. |
|
|
53
|
+
|
|
54
|
+
*Observação: A implementação de `POLYLINE` pode incluir vértices 3D, mas a entidade em si é frequentemente usada para formas 2D.*
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
# TEXT, MTEXT and DIMENSION - SVG Rendering Support# TEXT, MTEXT e DIMENSION - Suporte de Renderização SVG
|
|
2
|
+
|
|
3
|
+
## Summary of Changes## Resumo das Mudanças
|
|
4
|
+
|
|
5
|
+
Added complete support for rendering TEXT, MTEXT, and DIMENSION entities in SVG.Adicionado suporte completo para renderização de entidades TEXT, MTEXT e DIMENSION em SVG.
|
|
6
|
+
|
|
7
|
+
## Supported Entities## Entidades Suportadas
|
|
8
|
+
|
|
9
|
+
### TEXT### TEXT
|
|
10
|
+
|
|
11
|
+
- Basic text rendering- Renderização básica de texto
|
|
12
|
+
|
|
13
|
+
- Rotation support (code 50)- Suporte para rotação (código 50)
|
|
14
|
+
|
|
15
|
+
- Positioning support (codes 10, 20, 30)- Suporte para posicionamento (códigos 10, 20, 30)
|
|
16
|
+
|
|
17
|
+
- Text height support (code 40)- Suporte para altura do texto (código 40)
|
|
18
|
+
|
|
19
|
+
- Horizontal and vertical alignment (codes 72, 73)- Alinhamento horizontal e vertical (códigos 72, 73)
|
|
20
|
+
|
|
21
|
+
### MTEXT### MTEXT
|
|
22
|
+
|
|
23
|
+
- Multi-line text rendering- Renderização de texto multilinha
|
|
24
|
+
|
|
25
|
+
- Rotation support via X-axis direction (codes 11, 21)- Suporte para rotação via direção do eixo X (códigos 11, 21)
|
|
26
|
+
|
|
27
|
+
- Reference rectangle width support (code 41)- Suporte para largura do retângulo de referência (código 41)
|
|
28
|
+
|
|
29
|
+
- Nominal text height (code 40)- Altura nominal do texto (código 40)
|
|
30
|
+
|
|
31
|
+
- Attachment point (code 71)- Ponto de fixação (código 71)
|
|
32
|
+
|
|
33
|
+
### DIMENSION### DIMENSION
|
|
34
|
+
|
|
35
|
+
Support for all dimension types:Suporte para todos os tipos de dimensão:
|
|
36
|
+
|
|
37
|
+
#### Type 0 - Rotated, horizontal or vertical#### Tipo 0 - Rotated, horizontal ou vertical
|
|
38
|
+
|
|
39
|
+
- Extension lines- Linhas de extensão
|
|
40
|
+
|
|
41
|
+
- Dimension line- Linha de dimensão
|
|
42
|
+
|
|
43
|
+
- Dimension text- Texto de dimensão
|
|
44
|
+
|
|
45
|
+
#### Type 1 - Aligned#### Tipo 1 - Aligned (alinhada)
|
|
46
|
+
|
|
47
|
+
- Dimension line aligned with measured points- Linha de dimensão alinhada com os pontos medidos
|
|
48
|
+
|
|
49
|
+
- Perpendicular extension lines- Linhas de extensão perpendiculares
|
|
50
|
+
|
|
51
|
+
#### Type 2 - Angular#### Tipo 2 - Angular (angular)
|
|
52
|
+
|
|
53
|
+
- Angle dimension between two lines- Dimensão de ângulo entre duas linhas
|
|
54
|
+
|
|
55
|
+
#### Type 3 - Diameter#### Tipo 3 - Diameter (diâmetro)
|
|
56
|
+
|
|
57
|
+
- Radial dimension line for diameters- Linha de dimensão radial para diâmetros
|
|
58
|
+
|
|
59
|
+
- Text with diameter symbol- Texto com símbolo de diâmetro
|
|
60
|
+
|
|
61
|
+
#### Type 4 - Radius#### Tipo 4 - Radius (raio)
|
|
62
|
+
|
|
63
|
+
- Radial dimension line- Linha de dimensão radial
|
|
64
|
+
|
|
65
|
+
- Text with R prefix- Texto com prefixo R
|
|
66
|
+
|
|
67
|
+
#### Type 5 - Angular 3 point#### Tipo 5 - Angular 3 point (angular 3 pontos)
|
|
68
|
+
|
|
69
|
+
- Angular dimension defined by 3 points- Dimensão angular definida por 3 pontos
|
|
70
|
+
|
|
71
|
+
#### Type 6 - Ordinate#### Tipo 6 - Ordinate (ordenada)
|
|
72
|
+
|
|
73
|
+
- X or Y coordinate dimension- Dimensão de coordenada X ou Y
|
|
74
|
+
|
|
75
|
+
- Simple extension line- Linha de extensão simples
|
|
76
|
+
|
|
77
|
+
## Implemented DXF Codes## Códigos DXF Implementados
|
|
78
|
+
|
|
79
|
+
### TEXT
|
|
80
|
+
|
|
81
|
+
| Code | Description || Código | Descrição |
|
|
82
|
+
|
|
83
|
+
|------|-------------||--------|-----------|
|
|
84
|
+
|
|
85
|
+
| 1 | Text content || 1 | Conteúdo do texto |
|
|
86
|
+
|
|
87
|
+
| 10, 20, 30 | Insertion point (x, y, z) || 10, 20, 30 | Ponto de inserção (x, y, z) |
|
|
88
|
+
|
|
89
|
+
| 11, 21, 31 | Second alignment point || 11, 21, 31 | Segundo ponto de alinhamento |
|
|
90
|
+
|
|
91
|
+
| 40 | Text height || 40 | Altura do texto |
|
|
92
|
+
|
|
93
|
+
| 41 | Relative X scale || 41 | Escala relativa X |
|
|
94
|
+
|
|
95
|
+
| 50 | Rotation in degrees || 50 | Rotação em graus |
|
|
96
|
+
|
|
97
|
+
| 51 | Oblique angle || 51 | Ângulo oblíquo |
|
|
98
|
+
|
|
99
|
+
| 72 | Horizontal alignment || 72 | Alinhamento horizontal |
|
|
100
|
+
|
|
101
|
+
| 73 | Vertical alignment || 73 | Alinhamento vertical |
|
|
102
|
+
|
|
103
|
+
### MTEXT### MTEXT
|
|
104
|
+
|
|
105
|
+
| Code | Description || Código | Descrição |
|
|
106
|
+
|
|
107
|
+
|------|-------------||--------|-----------|
|
|
108
|
+
|
|
109
|
+
| 1, 3 | Text content || 1, 3 | Conteúdo do texto |
|
|
110
|
+
|
|
111
|
+
| 10, 20, 30 | Insertion point || 10, 20, 30 | Ponto de inserção |
|
|
112
|
+
|
|
113
|
+
| 11, 21, 31 | X-axis direction || 11, 21, 31 | Direção do eixo X |
|
|
114
|
+
|
|
115
|
+
| 40 | Nominal text height || 40 | Altura nominal do texto |
|
|
116
|
+
|
|
117
|
+
| 41 | Reference rectangle width || 41 | Largura do retângulo de referência |
|
|
118
|
+
|
|
119
|
+
| 71 | Attachment point || 71 | Ponto de fixação |
|
|
120
|
+
|
|
121
|
+
| 72 | Drawing direction || 72 | Direção do desenho |
|
|
122
|
+
|
|
123
|
+
### DIMENSION### DIMENSION
|
|
124
|
+
|
|
125
|
+
| Code | Description || Código | Descrição |
|
|
126
|
+
|
|
127
|
+
|------|-------------||--------|-----------|
|
|
128
|
+
|
|
129
|
+
| 2 | Block name || 2 | Nome do bloco |
|
|
130
|
+
|
|
131
|
+
| 10, 20, 30 | Definition point || 10, 20, 30 | Ponto de definição |
|
|
132
|
+
|
|
133
|
+
| 11, 21, 31 | Text midpoint || 11, 21, 31 | Ponto médio do texto |
|
|
134
|
+
|
|
135
|
+
| 13, 23, 33 | Measurement start point || 13, 23, 33 | Ponto inicial da medida |
|
|
136
|
+
|
|
137
|
+
| 14, 24, 34 | Measurement end point || 14, 24, 34 | Ponto final da medida |
|
|
138
|
+
|
|
139
|
+
| 50 | Rotation angle || 50 | Ângulo de rotação |
|
|
140
|
+
|
|
141
|
+
| 70 | Dimension type || 70 | Tipo de dimensão |
|
|
142
|
+
|
|
143
|
+
## Usage Example## Exemplo de Uso
|
|
144
|
+
|
|
145
|
+
```javascript```javascript
|
|
146
|
+
|
|
147
|
+
import { Helper } from '@linkiez/dxf-renew'
|
|
148
|
+
|
|
149
|
+
const dxfString = `... DXF content ...`const dxfString = `... conteúdo DXF ...`
|
|
150
|
+
|
|
151
|
+
const helper = new Helper(dxfString)const helper = new Helper(dxfString)
|
|
152
|
+
|
|
153
|
+
// Convert to SVG (now includes TEXT, MTEXT and DIMENSION)// Converter para SVG (agora inclui TEXT, MTEXT e DIMENSION)
|
|
154
|
+
|
|
155
|
+
const svg = helper.toSVG()const svg = helper.toSVG()
|
|
156
|
+
|
|
157
|
+
``````
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
## Tests## Testes
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
Unit tests have been added in `test/unit/text-mtext-dimension-rendering.js` that verify:Foram adicionados testes unitários em `test/unit/text-mtext-dimension-rendering.js` que verificam:
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
- Basic TEXT rendering- Renderização básica de TEXT
|
|
170
|
+
|
|
171
|
+
- Basic MTEXT rendering- Renderização básica de MTEXT
|
|
172
|
+
|
|
173
|
+
- DIMENSION rendering- Renderização de DIMENSION
|
|
174
|
+
|
|
175
|
+
- TEXT rotation- Rotação de TEXT
|
|
176
|
+
|
|
177
|
+
- MTEXT rotation via X-axis direction- Rotação de MTEXT via direção do eixo X
|
|
178
|
+
|
|
179
|
+
- Different DIMENSION types- Diferentes tipos de DIMENSION
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
Run tests with:Execute os testes com:
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
```bash```bash
|
|
188
|
+
|
|
189
|
+
npm testnpm test
|
|
190
|
+
|
|
191
|
+
``````
|
|
192
|
+
|
|
193
|
+
## Visual Example## Exemplo Visual
|
|
194
|
+
|
|
195
|
+
An interactive visual example is available at `examples/text-dimension-viewer.html`.Um exemplo visual interativo está disponível em `examples/text-dimension-viewer.html`.
|
|
196
|
+
|
|
197
|
+
To view:Para visualizar:
|
|
198
|
+
|
|
199
|
+
1. Run `npm run build` to generate the bundle1. Execute `npm run build` para gerar o bundle
|
|
200
|
+
|
|
201
|
+
2. Open `examples/text-dimension-viewer.html` in a browser2. Abra `examples/text-dimension-viewer.html` em um navegador
|
|
202
|
+
|
|
203
|
+
3. Load a DXF file or use the provided test files3. Carregue um arquivo DXF ou use os arquivos de teste fornecidos
|
|
204
|
+
|
|
205
|
+
## Known Limitations## Limitações Conhecidas
|
|
206
|
+
|
|
207
|
+
1. **TEXT and MTEXT**:1. **TEXT e MTEXT**:
|
|
208
|
+
|
|
209
|
+
- Font is not respected (uses browser default font) - Fonte não é respeitada (usa fonte padrão do navegador)
|
|
210
|
+
|
|
211
|
+
- Complex MTEXT formatting is not fully supported - Formatação complexa de MTEXT não é totalmente suportada
|
|
212
|
+
|
|
213
|
+
- Bounding box calculation is approximate - Cálculo de bounding box é aproximado
|
|
214
|
+
|
|
215
|
+
2. **DIMENSION**:2. **DIMENSION**:
|
|
216
|
+
|
|
217
|
+
- Custom dimension blocks are not rendered - Blocos de dimensão personalizados não são renderizados
|
|
218
|
+
|
|
219
|
+
- Only basic dimension lines are drawn - Apenas linhas básicas de dimensão são desenhadas
|
|
220
|
+
|
|
221
|
+
- Dimension text is not displayed (needs to be extracted from block) - Texto de dimensão não é exibido (precisa ser extraído do bloco)
|
|
222
|
+
|
|
223
|
+
- Arrows are not rendered - Setas não são renderizadas
|
|
224
|
+
|
|
225
|
+
## Modified Files## Arquivos Modificados
|
|
226
|
+
|
|
227
|
+
- `src/toSVG.js`: Added `text()`, `mtext()`, `dimension()` and `createDimensionPaths()` functions- `src/toSVG.js`: Adicionadas funções `text()`, `mtext()`, `dimension()` e `createDimensionPaths()`
|
|
228
|
+
|
|
229
|
+
- `test/unit/text-mtext-dimension-rendering.js`: New unit tests- `test/unit/text-mtext-dimension-rendering.js`: Novos testes unitários
|
|
230
|
+
|
|
231
|
+
- `examples/text-dimension-viewer.html`: Interactive visual example
|
|
232
|
+
|
|
233
|
+
## Next Steps
|
|
234
|
+
|
|
235
|
+
To further improve support:
|
|
236
|
+
|
|
237
|
+
1. Implement dimension arrow rendering
|
|
238
|
+
2. Extract and render dimension text from blocks
|
|
239
|
+
3. Support custom text styles
|
|
240
|
+
4. Improve bounding box calculation for text
|
|
241
|
+
5. Support advanced MTEXT formatting (colors, bold, etc.)
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# TEXT, MTEXT e DIMENSION - Suporte de Renderização SVG
|
|
2
|
+
|
|
3
|
+
## Resumo das Mudanças
|
|
4
|
+
|
|
5
|
+
Adicionado suporte completo para renderização de entidades TEXT, MTEXT e DIMENSION em SVG.
|
|
6
|
+
|
|
7
|
+
## Entidades Suportadas
|
|
8
|
+
|
|
9
|
+
### TEXT
|
|
10
|
+
|
|
11
|
+
- Renderização básica de texto
|
|
12
|
+
- Suporte para rotação (código 50)
|
|
13
|
+
- Suporte para posicionamento (códigos 10, 20, 30)
|
|
14
|
+
- Suporte para altura do texto (código 40)
|
|
15
|
+
- Alinhamento horizontal e vertical (códigos 72, 73)
|
|
16
|
+
|
|
17
|
+
### MTEXT
|
|
18
|
+
|
|
19
|
+
- Renderização de texto multilinha
|
|
20
|
+
- Suporte para rotação via direção do eixo X (códigos 11, 21)
|
|
21
|
+
- Suporte para largura do retângulo de referência (código 41)
|
|
22
|
+
- Altura nominal do texto (código 40)
|
|
23
|
+
- Ponto de fixação (código 71)
|
|
24
|
+
|
|
25
|
+
### DIMENSION
|
|
26
|
+
|
|
27
|
+
Suporte para todos os tipos de dimensão:
|
|
28
|
+
|
|
29
|
+
#### Tipo 0 - Rotated, horizontal ou vertical
|
|
30
|
+
|
|
31
|
+
- Linhas de extensão
|
|
32
|
+
- Linha de dimensão
|
|
33
|
+
- Texto de dimensão
|
|
34
|
+
|
|
35
|
+
#### Tipo 1 - Aligned (alinhada)
|
|
36
|
+
|
|
37
|
+
- Linha de dimensão alinhada com os pontos medidos
|
|
38
|
+
- Linhas de extensão perpendiculares
|
|
39
|
+
|
|
40
|
+
#### Tipo 2 - Angular (angular)
|
|
41
|
+
|
|
42
|
+
- Dimensão de ângulo entre duas linhas
|
|
43
|
+
|
|
44
|
+
#### Tipo 3 - Diameter (diâmetro)
|
|
45
|
+
|
|
46
|
+
- Linha de dimensão radial para diâmetros
|
|
47
|
+
- Texto com símbolo de diâmetro
|
|
48
|
+
|
|
49
|
+
#### Tipo 4 - Radius (raio)
|
|
50
|
+
|
|
51
|
+
- Linha de dimensão radial
|
|
52
|
+
- Texto com prefixo R
|
|
53
|
+
|
|
54
|
+
#### Tipo 5 - Angular 3 point (angular 3 pontos)
|
|
55
|
+
|
|
56
|
+
- Dimensão angular definida por 3 pontos
|
|
57
|
+
|
|
58
|
+
#### Tipo 6 - Ordinate (ordenada)
|
|
59
|
+
|
|
60
|
+
- Dimensão de coordenada X ou Y
|
|
61
|
+
- Linha de extensão simples
|
|
62
|
+
|
|
63
|
+
## Códigos DXF Implementados
|
|
64
|
+
|
|
65
|
+
### TEXT
|
|
66
|
+
|
|
67
|
+
| Código | Descrição |
|
|
68
|
+
|--------|-----------|
|
|
69
|
+
| 1 | Conteúdo do texto |
|
|
70
|
+
| 10, 20, 30 | Ponto de inserção (x, y, z) |
|
|
71
|
+
| 11, 21, 31 | Segundo ponto de alinhamento |
|
|
72
|
+
| 40 | Altura do texto |
|
|
73
|
+
| 41 | Escala relativa X |
|
|
74
|
+
| 50 | Rotação em graus |
|
|
75
|
+
| 51 | Ângulo oblíquo |
|
|
76
|
+
| 72 | Alinhamento horizontal |
|
|
77
|
+
| 73 | Alinhamento vertical |
|
|
78
|
+
|
|
79
|
+
### MTEXT
|
|
80
|
+
|
|
81
|
+
| Código | Descrição |
|
|
82
|
+
|--------|-----------|
|
|
83
|
+
| 1, 3 | Conteúdo do texto |
|
|
84
|
+
| 10, 20, 30 | Ponto de inserção |
|
|
85
|
+
| 11, 21, 31 | Direção do eixo X |
|
|
86
|
+
| 40 | Altura nominal do texto |
|
|
87
|
+
| 41 | Largura do retângulo de referência |
|
|
88
|
+
| 71 | Ponto de fixação |
|
|
89
|
+
| 72 | Direção do desenho |
|
|
90
|
+
|
|
91
|
+
### DIMENSION
|
|
92
|
+
|
|
93
|
+
| Código | Descrição |
|
|
94
|
+
|--------|-----------|
|
|
95
|
+
| 2 | Nome do bloco |
|
|
96
|
+
| 10, 20, 30 | Ponto de definição |
|
|
97
|
+
| 11, 21, 31 | Ponto médio do texto |
|
|
98
|
+
| 13, 23, 33 | Ponto inicial da medida |
|
|
99
|
+
| 14, 24, 34 | Ponto final da medida |
|
|
100
|
+
| 50 | Ângulo de rotação |
|
|
101
|
+
| 70 | Tipo de dimensão |
|
|
102
|
+
|
|
103
|
+
## Exemplo de Uso
|
|
104
|
+
|
|
105
|
+
```javascript
|
|
106
|
+
import { Helper } from '@linkiez/dxf-renew'
|
|
107
|
+
|
|
108
|
+
const dxfString = `... conteúdo DXF ...`
|
|
109
|
+
const helper = new Helper(dxfString)
|
|
110
|
+
|
|
111
|
+
// Converter para SVG (agora inclui TEXT, MTEXT e DIMENSION)
|
|
112
|
+
const svg = helper.toSVG()
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Testes
|
|
116
|
+
|
|
117
|
+
Foram adicionados testes unitários em `test/unit/text-mtext-dimension-rendering.js` que verificam:
|
|
118
|
+
|
|
119
|
+
- Renderização básica de TEXT
|
|
120
|
+
- Renderização básica de MTEXT
|
|
121
|
+
- Renderização de DIMENSION
|
|
122
|
+
- Rotação de TEXT
|
|
123
|
+
- Rotação de MTEXT via direção do eixo X
|
|
124
|
+
- Diferentes tipos de DIMENSION
|
|
125
|
+
|
|
126
|
+
Execute os testes com:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
npm test
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Exemplo Visual
|
|
133
|
+
|
|
134
|
+
Um exemplo visual interativo está disponível em `examples/text-dimension-viewer.html`.
|
|
135
|
+
|
|
136
|
+
Para visualizar:
|
|
137
|
+
|
|
138
|
+
1. Execute `npm run build` para gerar o bundle
|
|
139
|
+
2. Abra `examples/text-dimension-viewer.html` em um navegador
|
|
140
|
+
3. Carregue um arquivo DXF ou use os arquivos de teste fornecidos
|
|
141
|
+
|
|
142
|
+
## Limitações Conhecidas
|
|
143
|
+
|
|
144
|
+
1. **TEXT e MTEXT**:
|
|
145
|
+
- Fonte não é respeitada (usa fonte padrão do navegador)
|
|
146
|
+
- Formatação complexa de MTEXT não é totalmente suportada
|
|
147
|
+
- Cálculo de bounding box é aproximado
|
|
148
|
+
|
|
149
|
+
2. **DIMENSION**:
|
|
150
|
+
- Blocos de dimensão personalizados não são renderizados
|
|
151
|
+
- Apenas linhas básicas de dimensão são desenhadas
|
|
152
|
+
- Texto de dimensão não é exibido (precisa ser extraído do bloco)
|
|
153
|
+
- Setas não são renderizadas
|
|
154
|
+
|
|
155
|
+
## Arquivos Modificados
|
|
156
|
+
|
|
157
|
+
- `src/toSVG.js`: Adicionadas funções `text()`, `mtext()`, `dimension()` e `createDimensionPaths()`
|
|
158
|
+
- `test/unit/text-mtext-dimension-rendering.js`: Novos testes unitários
|
|
159
|
+
- `examples/text-dimension-viewer.html`: Exemplo visual interativo
|
|
160
|
+
|
|
161
|
+
## Próximos Passos
|
|
162
|
+
|
|
163
|
+
Para melhorar ainda mais o suporte:
|
|
164
|
+
|
|
165
|
+
1. Implementar renderização de setas de dimensão
|
|
166
|
+
2. Extrair e renderizar texto de dimensão dos blocos
|
|
167
|
+
3. Suportar estilos de texto personalizados
|
|
168
|
+
4. Melhorar cálculo de bounding box para texto
|
|
169
|
+
5. Suportar formatação avançada de MTEXT (cores, negrito, etc.)
|