指南
- 开始
- 指南
- 基础绘图
- 交互绘图
- 图纸编辑
- 数据库
- 最佳实践
MxCAD API 文档
- 类
- 2d.Color
- 2d.McAppType
- 2d.McCmColor
- 2d.McDbAlignedDimension
- 2d.McDbArc
- 2d.McDbAttribute
- 2d.McDbAttributeDefinition
- 2d.McDbBlockReference
- 2d.McDbBlockTable
- 2d.McDbBlockTableRecord
- 2d.McDbCircle
- 2d.McDbCurve
- 2d.McDbDatabase
- 2d.McDbDimension
- 2d.McDbEllipse
- 2d.McDbEntity
- 2d.McDbHatch
- 2d.McDbLayerTable
- 2d.McDbLayerTableRecord
- 2d.McDbLine
- 2d.McDbLinetypeTable
- 2d.McDbLinetypeTableRecord
- 2d.McDbMText
- 2d.McDbObject
- 2d.McDbObjectArray
- 2d.McDbPoint
- 2d.McDbPolyline
- 2d.McDbProxyEntity
- 2d.McDbRasterImage
- 2d.McDbRasterImageDef
- 2d.McDbRotatedDimension
- 2d.McDbText
- 2d.McDbTextStyleTable
- 2d.McDbTextStyleTableRecord
- 2d.McGeLongArray
- 2d.McGeMatrix3d
- 2d.McGePoint3d
- 2d.McGePoint3dArray
- 2d.McGeStringArray
- 2d.McGeVector3d
- 2d.McObject
- 2d.McObjectId
- 2d.McRxObject
- 2d.MdGeDoubleArray
- 2d.MxCADResbuf
- 2d.MxCADSelectionSet
- 2d.MxCADUiPrAngle
- 2d.MxCADUiPrBase
- 2d.MxCADUiPrDist
- 2d.MxCADUiPrEntity
- 2d.MxCADUiPrInt
- 2d.MxCADUiPrKeyWord
- 2d.MxCADUiPrPoint
- 2d.MxCADUiPrString
- 2d.MxCADUtilityClass
- 2d.MxCppType
- 2d.MxPropertiesWindowCustom
- 2d.MxPropertiesWindowCustomValue
- 2d.ObjectInheritance
- 3d.MdGeAngleDim
- 3d.MdGeArray1OfInteger
- 3d.MdGeArray1OfPnt
- 3d.MdGeArray1OfReal
- 3d.MdGeArray2OfPnt
- 3d.MdGeArray2OfReal
- 3d.MdGeArrowAspect
- 3d.MdGeAxis
- 3d.MdGeBezierCurve
- 3d.MdGeBezierSurface
- 3d.MdGeBox
- 3d.MdGeBRep
- 3d.MdGeBSplineCurve
- 3d.MdGeBSplineSurface
- 3d.MdGeChamfer
- 3d.MdGeCircle
- 3d.MdGeColor
- 3d.MdGeCompound
- 3d.MdGeCompSolid
- 3d.MdGeCone
- 3d.MdGeCSYS
- 3d.MdGeCSYSR
- 3d.MdGeCylinder
- 3d.MdGeDiameterDim
- 3d.MdGeDimAspect
- 3d.MdGeDir
- 3d.MdGeEdge
- 3d.MdGeEllipse
- 3d.MdGeExplorer
- 3d.MdGeFace
- 3d.MdGeFillet
- 3d.MdGeHGeomPlane
- 3d.MdGeHGeomSurface
- 3d.MdGeHypr
- 3d.MdGeInterpolateBSpl
- 3d.MdGeLengthDim
- 3d.MdGeLight
- 3d.MdGeLine
- 3d.MdGeLineAspect
- 3d.MdGeListIteratorOfListOfShape
- 3d.MdGeListOfShape
- 3d.MdGeLoft
- 3d.MdGeMakeArcOfCircle
- 3d.MdGeMakeFace
- 3d.MdGeMakeThickSolid
- 3d.MdGeMakeWires
- 3d.MdGeMat
- 3d.MdGeMaterialAspect
- 3d.MdGeObject
- 3d.MdGeParab
- 3d.MdGePipe
- 3d.MdGePlane
- 3d.MdGePoint
- 3d.MdGePointsToBSpl
- 3d.MdGePointsToBSplSurface
- 3d.MdGePrism
- 3d.MdGeRadiusDim
- 3d.MdGeRect
- 3d.MdGeRevol
- 3d.MdGeSequenceIteratorOfSequenceOfShape
- 3d.MdGeSequenceOfShape
- 3d.MdGeShape
- 3d.MdGeShell
- 3d.MdGeSolid
- 3d.MdGeSphere
- 3d.MdGeText
- 3d.MdGeTextAspect
- 3d.MdGeTextLabel
- 3d.MdGeTopo
- 3d.MdGeTorus
- 3d.MdGeTransform
- 3d.MdGeTrsf
- 3d.MdGeVec
- 3d.MdGeVertex
- 3d.MdGeWedge
- 3d.MdGeWire
- 3d.MdGeXYZ
- 3d.MxDraw3d
- Color
- McAppType
- McCmColor
- McDbAlignedDimension
- McDbArc
- McDbAttribute
- McDbAttributeDefinition
- McDbBlockReference
- McDbBlockTable
- McDbBlockTableRecord
- McDbCircle
- McDbCurve
- McDbDatabase
- McDbDimension
- McDbEllipse
- McDbEntity
- McDbHatch
- McDbLayerTable
- McDbLayerTableRecord
- McDbLine
- McDbLinetypeTable
- McDbLinetypeTableRecord
- McDbMText
- McDbObject
- McDbObjectArray
- McDbPoint
- McDbPolyline
- McDbProxyEntity
- McDbRasterImage
- McDbRasterImageDef
- McDbRotatedDimension
- McDbText
- McDbTextStyleTable
- McDbTextStyleTableRecord
- McGeLongArray
- McGeMatrix3d
- McGePoint3d
- McGePoint3dArray
- McGeStringArray
- McGeVector3d
- McObject
- McObjectId
- McRxObject
- MdGeAngleDim
- MdGeArray1OfInteger
- MdGeArray1OfPnt
- MdGeArray1OfReal
- MdGeArray2OfPnt
- MdGeArray2OfReal
- MdGeArrowAspect
- MdGeAxis
- MdGeBezierCurve
- MdGeBezierSurface
- MdGeBox
- MdGeBRep
- MdGeBSplineCurve
- MdGeBSplineSurface
- MdGeChamfer
- MdGeCircle
- MdGeColor
- MdGeCompound
- MdGeCompSolid
- MdGeCone
- MdGeCSYS
- MdGeCSYSR
- MdGeCylinder
- MdGeDiameterDim
- MdGeDimAspect
- MdGeDir
- MdGeDoubleArray
- MdGeEdge
- MdGeEllipse
- MdGeExplorer
- MdGeFace
- MdGeFillet
- MdGeHGeomPlane
- MdGeHGeomSurface
- MdGeHypr
- MdGeInterpolateBSpl
- MdGeLengthDim
- MdGeLight
- MdGeLine
- MdGeLineAspect
- MdGeListIteratorOfListOfShape
- MdGeListOfShape
- MdGeLoft
- MdGeMakeArcOfCircle
- MdGeMakeFace
- MdGeMakeThickSolid
- MdGeMakeWires
- MdGeMat
- MdGeMaterialAspect
- MdGeObject
- MdGeParab
- MdGePipe
- MdGePlane
- MdGePoint
- MdGePointsToBSpl
- MdGePointsToBSplSurface
- MdGePrism
- MdGeRadiusDim
- MdGeRect
- MdGeRevol
- MdGeSequenceIteratorOfSequenceOfShape
- MdGeSequenceOfShape
- MdGeShape
- MdGeShell
- MdGeSolid
- MdGeSphere
- MdGeText
- MdGeTextAspect
- MdGeTextLabel
- MdGeTopo
- MdGeTorus
- MdGeTransform
- MdGeTrsf
- MdGeVec
- MdGeVertex
- MdGeWedge
- MdGeWire
- MdGeXYZ
- MxCADResbuf
- MxCADSelectionSet
- MxCADUiPrAngle
- MxCADUiPrBase
- MxCADUiPrDist
- MxCADUiPrEntity
- MxCADUiPrInt
- MxCADUiPrKeyWord
- MxCADUiPrPoint
- MxCADUiPrString
- MxCADUtilityClass
- MxCppType
- MxDraw3d
- MxPropertiesWindowCustom
- MxPropertiesWindowCustomValue
- ObjectInheritance
- 2d.ColorIndexType
- 2d.ColorMethod
- 2d.FetchAttributes
- 2d.McDb.AttachmentPoint
- 2d.McDb.ClipBoundaryType
- 2d.McDb.HatchEdgeType
- 2d.McDb.HatchLoopType
- 2d.McDb.HatchPatternType
- 2d.McDb.HatchStyle
- 2d.McDb.Intersect
- 2d.McDb.LineWeight
- 2d.McDb.TextHorzMode
- 2d.McDb.TextVertMode
- 2d.McObjectIdType
- 2d.MxCADResbufDataType
- 2d.MxCADSelectionSetStatus
- 2d.MxPropertiesWindowCustomValueType
- 3d.MdGe.MxCameraProjection
- 3d.MdGe.MxCF3dFilletShapeEnum
- 3d.MdGe.MxCFDSChamfMode
- 3d.MdGe.MxDimensionArrowOrientation
- 3d.MdGe.MxDimensionTextHorizontalPosition
- 3d.MdGe.MxDimensionTextVerticalPosition
- 3d.MdGe.MxDisplayMode
- 3d.MdGe.MxFontAspect
- 3d.MdGe.MxGAJoinTypeEnum
- 3d.MdGe.MxGAShapeEnum
- 3d.MdGe.MxGFTrihedron
- 3d.MdGe.MxHorizontalTextAlignment
- 3d.MdGe.MxKindOfDimension
- 3d.MdGe.MxNameOfColor
- 3d.MdGe.MxNameOfMaterial
- 3d.MdGe.MxOffsetModeEnum
- 3d.MdGe.MxShapeEnum
- 3d.MdGe.MxTextPath
- 3d.MdGe.MxTypeOfAngle
- 3d.MdGe.MxTypeOfAngleArrowVisibility
- 3d.MdGe.MxTypeOfColor
- 3d.MdGe.MxTypeOfDisplayText
- 3d.MdGe.MxTypeOfLightSource
- 3d.MdGe.MxTypeOfLine
- 3d.MdGe.MxTypeOfMaterial
- 3d.MdGe.MxTypeOfReflection
- 3d.MdGe.MxV3dTypeOfOrientation
- 3d.MdGe.MxVerticalTextAlignment
- 枚举
- ColorIndexType
- ColorMethod
- FetchAttributes
- McDb.AttachmentPoint
- McDb.ClipBoundaryType
- McDb.HatchEdgeType
- McDb.HatchLoopType
- McDb.HatchPatternType
- McDb.HatchStyle
- McDb.Intersect
- McDb.LineWeight
- McDb.TextHorzMode
- McDb.TextVertMode
- McObjectIdType
- MdGe.MxCameraProjection
- MdGe.MxCF3dFilletShapeEnum
- MdGe.MxCFDSChamfMode
- MdGe.MxDimensionArrowOrientation
- MdGe.MxDimensionTextHorizontalPosition
- MdGe.MxDimensionTextVerticalPosition
- MdGe.MxDisplayMode
- MdGe.MxFontAspect
- MdGe.MxGAJoinTypeEnum
- MdGe.MxGAShapeEnum
- MdGe.MxGFTrihedron
- MdGe.MxHorizontalTextAlignment
- MdGe.MxKindOfDimension
- MdGe.MxNameOfColor
- MdGe.MxNameOfMaterial
- MdGe.MxOffsetModeEnum
- MdGe.MxShapeEnum
- MdGe.MxTextPath
- MdGe.MxTypeOfAngle
- MdGe.MxTypeOfAngleArrowVisibility
- MdGe.MxTypeOfColor
- MdGe.MxTypeOfDisplayText
- MdGe.MxTypeOfLightSource
- MdGe.MxTypeOfLine
- MdGe.MxTypeOfMaterial
- MdGe.MxTypeOfReflection
- MdGe.MxV3dTypeOfOrientation
- MdGe.MxVerticalTextAlignment
- MxCADResbufDataType
- MxCADSelectionSetStatus
- MxPropertiesWindowCustomValueType
- 2d.MxCadConfig
- 2d.MxCADUI
- 3d.MxDraw3dConfig
- 3d.WasmConfig
- 接口
- 模块
1. 系统变量
系统变量
CAD系统变量是用于存储操作环境设置、图形信息和命令设置等的数据存储单位。它们可以控制CAD的某些功能和设计环境、命令的工作方式。CAD系统变量通常具有6到10个字符的长度,可以是整数型、实数型、点开关或文本字符串等类型。有些系统变量具有只读属性,用户只能查看而不能修改;而没有只读属性的系统变量可以通过调用命令进行查看和设置。下面介绍的是我们在CAD绘图中最常用的几种系统变量。
mxcad 根据上述CAD系统变量的定义提供了对应CAD变量的获取和设置方法。根据不同的变量类型, 我们分了四种不同方式设置:
获取浮点数变量getSysVarDouble,
获取长整数变量getSysVarLong
获取点变量getSysVarPoint
获取字符串变量getSysVarString
:::tip 提示 设置就是方法的get
改成set
, 传入变量名和对应类型的值。 :::
正交
我们可以通过设置长整数变量 ORTHOMODE
来控制是否开启正交绘图模式。开启正交绘图模式后,可限制光标只在水平或垂直轴上移动,来达到直角或正交模式下绘图的目的。但用户从命令行输入坐标值或使用实体捕捉时,将忽略正交绘图。
变量名 | 变量值 | 说明 |
---|---|---|
ORTHOMODE | 1 | 开启正交绘图模式 |
ORTHOMODE | 0 | 关闭正交绘图模式 |
import { MxCpp } from "mxcad"
const mxcad = MxCpp.getCurrentMxCAD()
// 开启正交绘图模式
mxcad.setSysVarLong("ORTHOMODE", 1)
对象捕捉
在CAD绘图过程中经常会遇到需要图形一些特殊位置的点如端点、中点、交点等。如果单靠眼睛去捕捉这些点是不精确的,因此 mxcad 提供了一些实体捕捉方式来提高精确性。
我们可以通过设置长整数变量 OSMODE
的动态捕捉值来设置不同的捕捉方式,1其中,我们获取到的动态捕捉值是根据这些开关是否开启运算得到的总值。下面以设置平行捕捉方式为例(其他捕捉方式可直接参考下面示例):
方式 | 运算值 | 说明 |
---|---|---|
最近点捕捉 | 512 | 捕捉对象与指定点距离最近的点。这些对象包括直线、圆、圆弧、复合线、椭圆、样条曲线等距光标最近的点。 |
端点捕捉 | 1 | 捕捉到圆弧、直线、复合线、射线、平面等距光标最近的端点 |
中点捕捉 | 2 | 捕捉到圆弧、直线、复合线、实体填充线、样条曲线等实体的中点 |
圆心捕捉 | 4 | 捕捉到圆弧、圆、椭圆和椭圆弧的圆心。 |
垂足捕捉 | 128 | 捕捉到与圆弧、圆、构造线、椭圆、椭圆弧、直线、复合线、射线、实体或样条曲线等正交的点,也可以捕捉到对象的外观延伸的正交点。 |
切点捕捉 | 256 | 在圆或圆弧上捕捉到与上一点相连的点,这两点形成的直线与该圆或圆弧相切。 |
象限点捕捉 | 16 | 捕捉到圆弧、圆或椭圆最近的象限点。 |
插入点捕捉 | 64 | 捕捉到块、文字、属性、或属性定义等的插入点。 |
交点捕捉 | 32 | 捕捉到圆弧、圆、椭圆、椭圆弧、直线、复合线、射线、样条曲线或构造线等对象之间的交点。 |
延伸捕捉 | 4096 | 延伸捕捉模式用于捕捉直线或圆弧的延伸点。 |
平行捕捉 | 8192 | 平行捕捉模式用于绘制平行于另一对象的直线。 |
外观交点捕捉 | 2048 | 捕捉弧、圆、椭圆、直线、复合线、射线、样条曲线或参照线等两个对象的外观交点,这两个对象在三维空间不相交,但在图形显示里看起来是相交的。 |
关闭捕捉 | 16384 | 关闭实体捕捉。 |
import { MxCpp, McGePoint3d } from "mxcad"
const mxcad = mxcad.MxCpp.getCurrentMxCAD()
const osModeVal = mxcad.setSysVarLong("OSMODE")
export enum SysVarLongSketchSettingsOsMode {
/** 端点捕捉 */
End = 1,
/** 中点捕捉 */
Mid = 2,
/** 圆心点捕捉 */
Cen = 4,
/** 节点捕捉 */
Node = 8,
/** 象限点捕捉 */
Quad = 16,
/** 交点捕捉 */
Int = 32,
/** 插入点捕捉 */
Ins = 64,
/** 垂足点捕捉 */
Perp = 128,
/** 切点捕捉 */
Tan = 256,
/** 最近点捕捉 */
Near = 512,
/**外观交点捕捉*/
App = 2048,
/**延伸点捕捉*/
Ext = 4096,
/** 平行点捕捉 */
Par = 8192,
/**捕捉关闭 */
Off = 16384,
}
// 关闭捕捉 0 或 1
const osModeOff = osModeVal & SysVarLongSketchSettingsOsMode.Off
// 平行点捕捉 0 或 1
const osModePar = osModeVal & SysVarLongSketchSettingsOsMode.Par
// 是否开启平行点捕捉
const isOpenOsModePar = true
// 设置
mxcad.setSysVarLong("OSMODE",
isOpenOsModePar
?
(osModeVal | SysVarLongSketchSettingsOsMode.Par)
:
(osModeVal & ~SysVarLongSketchSettingsOsMode.Par)
)
动态输入
我们可以通过设置长整数变量 DYNINPUT
来控制是否开启动态输入模式。开启动态输入模式后,用户在绘图时可以实时查看并编辑当前操作的长度、角度和圆弧半径等数值。
变量名 | 变量值 | 说明 |
---|---|---|
DYNINPUT | 1 | 开启动态输入模式 |
DYNINPUT | 0 | 关闭动态输入模式 |
import { MxCpp } from "mxcad"
const mxcad = MxCpp.getCurrentMxCAD()
// 开启动态输入模式
mxcad.setSysVarLong("DYNINPUT", 1)
极轴和对象追踪
极轴追踪允许用户沿特定的角度增量来追踪点,从而帮助创建精确的直线、角度等图形对象。例如,如果用户设置了30度的角度增量,那么在使用极轴追踪时,每相隔30度,光标处就会显示一条虚线,帮助用户追踪和定位到特定的角度。
我们可以通过设置长整数变量 AUTOSNAP
来启动极轴,长整数变量DYNTRACE
来启动对象追踪。其中极轴的增量可以通过设置浮点数变量POLARANG
,为该变量赋值时需将角度转化为弧度值。
import { MxCpp } from "mxcad"
const mxcad = MxCpp.getCurrentMxCAD()
// 开启对象追踪
mxcad.setSysVarLong("DYNTRACE",1)
// 开启极轴
const autoSnapVal = mxcad.getSysVarLong("AUTOSNAP")
// 指定极轴角度
mxcad.setSysVarDouble("POLARANG", 30/180 *Math.PI)
// 是否开启极轴
const isOpenOsModePar = true
// 设置
mxcad.setSysVarLong("AUTOSNAP", isOpenOsModePar ? (autoSnapVal | 8) :(autoSnapVal & ~8) )
栅格
栅格模式在CAD中可以看作是在二维空间中设置的一系列规则点,这些点或线形成了一个矩阵,覆盖了用户坐标系的整个平面。开启栅格模式后,用户可以通过栅格点来精确地定位和绘制对象,类似于在图纸下放置一张坐标纸。栅格模式还有助于显示对象之间的距离和角度,作为一个定位和显示的参考框架。
我们可以通过设置长整数变量 GRIDMODE
来控制是否开启格栅模式。
变量名 | 变量值 | 说明 |
---|---|---|
GRIDMODE | 1 | 开启栅格模式 |
GRIDMODE | 0 | 关闭栅格模式 |
import { MxCpp } from "mxcad"
const mxcad = MxCpp.getCurrentMxCAD()
// 开启栅格模式
mxcad.setSysVarLong("GRIDMODE",1)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论