返回介绍

指南

MxCAD API 文档

8. 文字

发布于 2024-07-31 21:40:00 字数 4971 浏览 0 评论 0 收藏 0

文字

文字是编辑图纸过程中不可缺少的部分,它能辅助说明作者的设计意图,有了它们可以使图纸编辑更加明白、清楚。mxcad 中提供了单行文本和多行文本的绘制,并能设置修改文本的字体、大小、角度、倾向和其他特性。

单行文本

我们可以通过实例化一个 McDbText() 对象创建单行文本。

点击 McDbText() 查看详细属性和方法说明。

import { MxCpp, McGePoint3d, McCmColor, McDb, McDbText } from "mxcad"

const mxcad = MxCpp.getCurrentMxCAD()
const text = new McDbText()
text.widthFactor = 1
text.horizontalMode = McDb.TextHorzMode.kTextCenter
text.verticalMode = McDb.TextVertMode.kTextBottom
text.textString = "测试文本"
text.position = text.alignmentPoint = new McGePoint3d(0, 20)
text.trueColor = new McCmColor(255, 0, 255)
text.height = 20
mxcad.drawEntity(text)

多行文本

我们可以通过实例化一个 McDbMText() 对象创建旋转标注尺寸类。

点击 McDbMText() 查看详细属性和方法说明。

import { MxCpp, McGePoint3d, McCmColor, McDb, McDbMText } from "mxcad"

const mxcad = MxCpp.getCurrentMxCAD()
const text = new McDbMText()
text.attachment = McDb.AttachmentPoint.kTopLeft
text.contents = "第一行文本 \\P 第二行文本"
text.location = new McGePoint3d(0, -20)
text.trueColor = new McCmColor(255, 0, 255)
text.textHeight = 20
mxcad.drawEntity(text)

:::demo

import {  McObject, McDbText, McDbMText, McDb, McGePoint3d, McCmColor } from "mxcad"

export default () => {
    const mxcad = new McObject()
    mxcad.create({
      canvas: "#myCanvas",
      locateFile: (fileName: string)=> {
            // CDN 加载必须使用wasm/2d-st中的资源、因为github的限制无法使用wasm/2d 资源
            // 需要使用wasm/2d需要遵循浏览器同源策略或使用其他手段规避浏览器同源策略
            return "https://unpkg.com/mxcad/dist/wasm/2d-st/" + fileName
      },
      // 加载字体的目录位置
      fontspath: self.location.origin + "/mxcad_docs/fonts",
      // 加载转换后的图纸文件
      fileUrl: self.location.origin + "/mxcad_docs/test.mxweb",
      onOpenFileComplete: ()=>{
            const text = new McDbText()
            text.widthFactor = 1
            text.horizontalMode = McDb.TextHorzMode.kTextCenter
            text.verticalMode = McDb.TextVertMode.kTextBottom
            text.textString = "测试文本"
            text.position = text.alignmentPoint = new McGePoint3d(500, 20)
            text.height = 200
            mxcad.drawEntity(text)

            const mtext = new McDbMText()
            mtext.attachment = McDb.AttachmentPoint.kTopLeft
            mtext.contents = "第一行文本 \\P 第二行文本"
            mtext.location = new McGePoint3d(-1000, 400)
            mtext.trueColor = new McCmColor(255, 255, 0)
            mtext.textHeight = 200
            mxcad.drawEntity(mtext)

            mxcad.zoomCenter(0,0)
      }
    })
    return (<div style="height: 500px; overflow: hidden;"><canvas id="myCanvas" ></canvas>
    </div>)
}

:::

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文