mxcad_2d API 文档 / 2d / McDbHatch
Class: McDbHatch
2d.McDbHatch
表示图案填充类,实现实心颜色填充和各种图案填充效果
Example
import { MxCADUiPrPoint, MxCADUtility, McDbHatch, MxCpp, McDb, McCmColor} from "mxcad"
//选点填充
const getPoint = new MxCADUiPrPoint();
console.log("\n指定填充区域内部一点:");
let pt = (await getPoint.go()) as McGePoint3d;
if (!pt) return;
let hatch:McDbHatch = MxCADUtility.builderHatchFromPoint(pt);
if (!hatch) {
console.log("没有找到闭合区域\n")
return;
}
// 清除填充图案效果
hatch.clearPatternDefinition();
// 添加图案填充定义
hatch.addPatternDefinition(45, 1, 1, 1, 0.25, [45, 0.17677695, 0, 0, 0.25, 0.125, -0.0625])
// 设置填充图案
hatch.setPattern(McDb.HatchPatternType.kCustomDefined, 'test')
// 设置填充颜色
hatch.trueColor = new McCmColor(0, 133, 122)
// 绘制填充对象
MxCpp.getCurrentMxCAD().drawEntity(hatch);Hierarchy
↳
McDbHatch
Table of contents
Constructors
Properties
Accessors
- colorIndex
- drawOrder
- dxf0
- layer
- layerId
- linetype
- linetypeId
- linetypeScale
- lineweight
- normal
- numLoops
- numPatternDefinitions
- objectName
- patternAngle
- patternDouble
- patternScale
- patternSpace
- textStyle
- textStyleId
- trueColor
- visible
Methods
- IntersectWith
- addPatternDefinition
- appendCircleLoop
- appendLoop
- assertObjectModification
- clearPatternDefinition
- clone
- createExtensionDictionary
- deleteXData
- disableDisplay
- erase
- explode
- getAllAppName
- getArea
- getBoundingBox
- getDatabase
- getDatabaseIndexId
- getExtensionDictionary
- getGripPoints
- getHandle
- getImp
- getJson
- getLoopAt
- getObjectID
- getOwnerID
- getPatternDefinitionAt
- getxData
- getxDataDouble
- getxDataLong
- getxDataPoint
- getxDataString
- hatchStyle
- highlight
- initTempObject
- isErased
- isHaveExtensionDictionary
- isKindOf
- isNull
- isSolid
- loopTypeAt
- mirror
- move
- moveGripPointsAt
- patternName
- patternType
- removeAllLoop
- removeLoopAt
- rotate
- scaleEntity
- scalePattern
- setHatchStyle
- setJson
- setLoopAt
- setPattern
- setxData
- setxDataDouble
- setxDataLong
- setxDataPoint
- setxDataString
- syncData
- transformBy
- unErase
- updateDisplay
Constructors
constructor
• new McDbHatch(x?)
构造函数。
Parameters
| Name | Type |
|---|---|
x? | object |
Example
import { McDbHatch } from "mxcad";
const hatch = new McDbHatch()Overrides
Properties
imp
• imp: any = 0
内部实现对象。
Inherited from
Accessors
colorIndex
• get colorIndex(): number
得到对象颜色索引
Returns
number
Example
import { McDbEntity, ColorIndexType } from 'mxcad'
const ent = new McDbEntity();
ent.colorIndex = ColorIndexType.kByblock;
console.log(ent.colorIndex)Inherited from
McDbEntity.colorIndex
• set colorIndex(val): void
设置对象颜色索引
Parameters
| Name | Type | Description |
|---|---|---|
val | number | 颜色索引(ColorIndexType) |
Returns
void
Inherited from
McDbEntity.colorIndex
drawOrder
• get drawOrder(): number
对象的显示顺序
Returns
number
Example
// 假设ent为有效实例对象
const order = ent.drawOrder();Inherited from
McDbEntity.drawOrder
• set drawOrder(order): void
对象的显示顺序
Parameters
| Name | Type | Description |
|---|---|---|
order | number | 顺序值 |
Returns
void
Example
import { MxCpp, MxCADSelectionSet } from "mxcad";
let ss = new MxCADSelectionSet();
if (!await ss.userSelect("\n选择对象")) return;
//得到当前图上对象的最大,小最显示顺序.
let minmaxOrder = MxCpp.getCurrentDatabase().currentSpace.getMinMaxDrawOrder();
// 把对象放到最上面。
let lOrder = minmaxOrder.maxDrawOrder + 1;
ss.forEach((id) => {
let ent = id.getMcDbEntity();
if (ent) {
ent.drawOrder = lOrder;
}
})Inherited from
McDbEntity.drawOrder
dxf0
• get dxf0(): string
得到对象的DXF组码的类型名,这个和AutoCAD中的DXF组码是一样。 比如直线的类型名为:McDbLine,DXF0组码值: LINE,DXF0组码值可以用来构造集时的类型过滤。
Returns
string
Inherited from
McDbEntity.dxf0
layer
• get layer(): string
得到对象图层名
Returns
string
Inherited from
McDbEntity.layer
• set layer(val): void
设置对象图层名
Parameters
| Name | Type | Description |
|---|---|---|
val | string | 图层名 |
Returns
void
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity();
ent.layer = "newLayerName";
console.log(ent.layer)Inherited from
McDbEntity.layer
layerId
• get layerId(): McObjectId
获取图层ID对象
Returns
Example
// 假设ent为有效实例对象
const layerId = ent.layerId;Inherited from
McDbEntity.layerId
• set layerId(id): void
设置图层Id对象
Parameters
| Name | Type |
|---|---|
id | McObjectId |
Returns
void
Example
// 假设ent为有效实例对象
const mxcad = MxCpp.getCurrentMxCAD();
const layerId = mxcad.addLayer("测试图层")
ent.layerId = layerId;Inherited from
McDbEntity.layerId
linetype
• get linetype(): string
得到对象线型名
Returns
string
Inherited from
McDbEntity.linetype
• set linetype(val): void
设置对象线型名
Parameters
| Name | Type | Description |
|---|---|---|
val | string | 线型名 |
Returns
void
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.linetype = "MyLineType";
console.log(ent.linetype)Inherited from
McDbEntity.linetype
linetypeId
• get linetypeId(): McObjectId
获取实体对象线型ID
Returns
Example
// 假设ent为有效实例对象
const linetypeId = ent.linetypeId;Inherited from
McDbEntity.linetypeId
• set linetypeId(id): void
设置实体对象线型ID
Parameters
| Name | Type |
|---|---|
id | McObjectId |
Returns
void
Example
// 假设ent为有效实例对象
const mxcad = MxCpp.getCurrentMxCAD();
const lineId = mxcad.addLinetypeEx("TestMyLine", '25,-5');
ent.linetypeId = lineId;Inherited from
McDbEntity.linetypeId
linetypeScale
• get linetypeScale(): number
得到对象线型比例
Returns
number
Inherited from
McDbEntity.linetypeScale
• set linetypeScale(val): void
设置对象线型比例
Parameters
| Name | Type | Description |
|---|---|---|
val | number | 线型比例 |
Returns
void
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.linetypeScale = 0.8;
console.log(ent.linetypeScale)Inherited from
McDbEntity.linetypeScale
lineweight
• get lineweight(): number
得到对象线重
Returns
number
Inherited from
McDbEntity.lineweight
• set lineweight(val): void
设置对象线重
Parameters
| Name | Type | Description |
|---|---|---|
val | number | 线重 |
Returns
void
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.lineweight = 20;
console.log(ent.lineweight)Inherited from
McDbEntity.lineweight
normal
• get normal(): McGeVector3d
返回对象的normal
Returns
Example
Inherited from
McDbEntity.normal
• set normal(val): void
设置对象的normal
Parameters
| Name | Type |
|---|---|
val | McGeVector3d |
Returns
void
Example
Inherited from
McDbEntity.normal
numLoops
• get numLoops(): number
闭合区域次数
Returns
number
Example
// hatch 为图案填充实例对象
const num = hatch.numLoopsnumPatternDefinitions
• get numPatternDefinitions(): number
图案定义的数量
Returns
number
Example
// hatch 为图案填充实例对象
const num = hatch.numPatternDefinitions;objectName
• get objectName(): string
获取对象名称。
Returns
string
返回对象名
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
console.log(obj.objectName);Inherited from
McDbEntity.objectName
patternAngle
• get patternAngle(): number
获取填充图案角度
Returns
number
Example
// hatch 为图案填充实例对象
const angle = hatch.patternAngle• set patternAngle(angle): void
设置填充图案角度
Parameters
| Name | Type |
|---|---|
angle | number |
Returns
void
Example
import { McDbHatch } from "mxcad";
const hatch = new McDbHatch();
hatch.patternAngle(Math.PI/4);patternDouble
• get patternDouble(): boolean
获取填充图案是否是双倍
Returns
boolean
Example
// hatch 为图案填充实例对象
const isDouble = hatch.patternDouble;
if(isDouble){
//填充图案为双倍
}else{
//填充图案不为双倍
}• set patternDouble(isDouble): void
设置填充图案是否为双倍
Parameters
| Name | Type |
|---|---|
isDouble | boolean |
Returns
void
Example
import { McDbHatch } from "mxcad";
const hatch = new McDbHatch();
hatch.patternDouble = true;patternScale
• get patternScale(): number
获取填充图案缩放比例
Returns
number
Example
// hatch 为图案填充实例对象
const scale = hatch.patternScale• set patternScale(scale): void
设置填充图案缩放比例
Parameters
| Name | Type |
|---|---|
scale | number |
Returns
void
Example
import { McDbHatch } from "mxcad";
const hatch = new McDbHatch();
hatch.patternScale = 0.8;patternSpace
• get patternSpace(): number
获取填充图案空间
Returns
number
Example
// hatch 为图案填充实例对象
const patternSpace = hatch.patternSpace• set patternSpace(space): void
设置填充图案空间
Parameters
| Name | Type |
|---|---|
space | number |
Returns
void
Example
import { McDbHatch } from "mxcad";
const hatch = new McDbHatch();
hatch.patternSpace = 0.8;textStyle
• get textStyle(): string
得到对象文字样式
Returns
string
Inherited from
McDbEntity.textStyle
• set textStyle(val): void
设置对象文字样式
Parameters
| Name | Type | Description |
|---|---|---|
val | string | 文字样式名 |
Returns
void
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.textStyle = "st_style";Inherited from
McDbEntity.textStyle
textStyleId
• get textStyleId(): McObjectId
获取实体文字样式
Returns
Example
// 假设ent为有效实例对象
const textStyleId = ent.textStyleId;Inherited from
McDbEntity.textStyleId
• set textStyleId(id): void
设置实体的文字样式
Parameters
| Name | Type |
|---|---|
id | McObjectId |
Returns
void
Example
// 假设ent为有效实例对象
const mxcad = MxCpp.getCurrentMxCAD();
const textStyleId = mxcad.addTextStyle("MyLineTypeTextStyle", "txt.shx", "hztxt.shx", 1);
ent.textStyleId = textStyleId;Inherited from
McDbEntity.textStyleId
trueColor
• get trueColor(): McCmColor
得到对象颜色
Returns
Example
import { McDbEntity, McCmColor} from 'mxcad'
const ent = new McDbEntity();
ent.trueColor = new McCmColor(255, 0, 0);
console.log(ent.trueColor)Inherited from
McDbEntity.trueColor
• set trueColor(val): void
设置对象颜色
Parameters
| Name | Type |
|---|---|
val | McCmColor |
Returns
void
Inherited from
McDbEntity.trueColor
visible
• get visible(): boolean
对象是否可见
Returns
boolean
Inherited from
McDbEntity.visible
• set visible(val): void
设置是否可见
Parameters
| Name | Type | Description |
|---|---|---|
val | boolean | 布尔值 |
Returns
void
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.visible = true;
console.log(ent.visible)Inherited from
McDbEntity.visible
Methods
IntersectWith
▸ IntersectWith(intersectObject, exOption): McGePoint3dArray
与其他实体相交, 得到交点
Parameters
| Name | Type | Description |
|---|---|---|
intersectObject | McDbEntity | 需要相交的是实体对象 |
exOption | Intersect | 相交的选项 |
Returns
得到所有交点
Example
import { McDbLine, McDb } from 'mxcad'
const line1 = new McDbLine(new McGePoint3d(0,0,0), new McGePoint3d(20,1,0));
const line2 = new McDbLine(new McGePoint3d(10,10,0), new McGePoint3d(11,1,0));
const ptArr = line1.IntersectWith(line2, McDb.Intersect.kExtendBoth)Inherited from
addPatternDefinition
▸ addPatternDefinition(angle, baseX, baseY, offsetX, offsetY, dashes): boolean
添加图案定义
Parameters
| Name | Type | Description |
|---|---|---|
angle | number | 角度 如 45 |
baseX | number | 基点x坐标 |
baseY | number | 基点y坐标 |
offsetX | number | 偏移x坐标 |
offsetY | number | 偏移y坐标 |
dashes | number[] | 短划线数据 |
Returns
boolean
是否成功添加图案定义
Example
import { McDbHatch } from "mxcad"
const hatch = new McDbHatch()
const res = hatch.addPatternDefinition(45, 0, 0, 0, 0.25, [45, 0.17677695, 0, 0, 0.25, 0.125, -0.0625]);
if(res){
//添加成功
}else{
//添加失败
}appendCircleLoop
▸ appendCircleLoop(dCenX, dCenY, dR, dPrecision?, loopType?): any
追加圆构造的闭合区域
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
dCenX | number | undefined | 圆心X轴坐标 |
dCenY | number | undefined | 圆心Y轴坐标 |
dR | number | undefined | 圆半径 |
dPrecision | number | 0 | 精度参数,默认值为 0。 |
loopType | number | McDb.HatchLoopType.kPolyline | 循环类型参数,默认值为 McDb.HatchLoopType.kPolyline |
Returns
any
追加结果
Example
import { McDbHatch } from "mxcad";
const hatch = new McDbHatch();
const res = hatch.appendCircleLoop(0,0,0,20);
if(res){
//追加成功
}else{
//追加失败
}appendLoop
▸ appendLoop(vertices, bulges?, loopType?): boolean
追加闭合区域
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
vertices | McGePoint3dArray | undefined | 坐标集合 |
bulges | number[] | [] | 凸度集合 |
loopType | number | McDb.HatchLoopType.kPolyline | 闭合区域类型 |
Returns
boolean
返回追加结果
Example
import { McDbHatch, McGePoint3d, McGePoint3dArray } from "mxcad";
let solid = new McDbHatch();
const pts = [
new McGePoint3d({ x: 10, y: 20, z: 0 }),
new McGePoint3d({ x: 0, y: 0, z: 0 }),
];
const res = solid.appendLoop(new McGePoint3dArray(pts));
if(res){
//设置成功
}else{
//设置失败
}assertObjectModification
▸ assertObjectModification(autoUndo?): number
设置对象被改变的状态,可自动触发更新显示函数,更新显示。 比如块表记录更新了,需要通知块引用更新显示,可以调用该函数。
Parameters
| Name | Type | Default value |
|---|---|---|
autoUndo | boolean | false |
Returns
number
Example
//假设obj为一个数据库对象
obj.assertObjectModification()Inherited from
McDbEntity.assertObjectModification
clearPatternDefinition
▸ clearPatternDefinition(): boolean
清空图案定义
Returns
boolean
Example
// hatch 为图案填充实例对象
const res = hatch.clearPatternDefinition();
if(res){
//清空成功
}else{
//清空失败
}clone
▸ clone(): null | McDbObject
克隆对象。
Returns
null | McDbObject
克隆出的对象。
Example
//假设obj为一个数据库对象
const obj_clone = obj.clone();Inherited from
createExtensionDictionary
▸ createExtensionDictionary(): boolean
创建对象的扩展字典数据.
Returns
boolean
Example
//假设obj为一个数据库对象
const res = obj.createExtensionDictionary();Inherited from
McDbEntity.createExtensionDictionary
deleteXData
▸ deleteXData(appName): boolean
删除实体指定应用程序名称相关的数据
Parameters
| Name | Type | Description |
|---|---|---|
appName | string | 扩展数据名称 |
Returns
boolean
Example
import { MxCADUiPrEntity, McDbEntity } from "mxcad";
let selEntity = new MxCADUiPrEntity();
selEntity.setMessage("选择对象");
let id = await selEntity.go();
if (!id.isValid()) return;
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
const res = ent.deleteXData("DataName");
if(res){
//删除成功
}else
//删除失败
}Inherited from
disableDisplay
▸ disableDisplay(isDisable): void
禁用对象的自动更新显示.
Parameters
| Name | Type | Description |
|---|---|---|
isDisable | boolean | 是否禁用对象自动更新显示 |
Returns
void
Example
import { McDbLine } from 'mxcad'
const line1 = new McDbLine(new McGePoint3d(0,0,0), new McGePoint3d(20,1,0));
line1.disableDisplay(true)Inherited from
erase
▸ erase(): boolean
删除对象。
Returns
boolean
是否删除成功。
Example
//假设obj为一个数据库对象
const res = obj.erase();
console.log(res);Inherited from
explode
▸ explode(): MxCADResbuf
打碎对象,返回打后对象数据链表
Returns
resbuf 数据
Example
import { McDbEntity, MxCADResbuf } from "mxcad";
// 获取目标对象
let getEnt = new MxCADUiPrEntity();
getEnt.setMessage("选择打碎对象:");
let id = await getEnt.go();
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
// 打碎对象
let retExplode: MxCADResbuf = ent.explode();
if (retExplode.GetCount() == 0) return;
let iExplodeConut = retExplode.GetCount();
for (let j = 0; j < iExplodeConut; j++) {
let tmpobj = retExplode.AtObject(j).val;
if(tmpobj instanceof McDbEntity ){
mxcad.drawEntity(tmpobj);
}
}Inherited from
getAllAppName
▸ getAllAppName(): McGeStringArray
获取实体中包含的所有 XData 记录的应用程序名(AppName)
Returns
Example
// 假设ent为有效实例对象
const appNames = ent.getAllAppName();
console.log(appNames);Inherited from
getArea
▸ getArea(): Object
计算面积
Returns
Object
val 面积值 | ret 是否获取成功
| Name | Type |
|---|---|
ret | boolean |
val | number |
Example
import { McGePoint3d, McDbCircle } from "mxcad"
const circle = new McDbCircle(0,0,0, 20);
const area = circle.getArea();
console.log("圆面积:", area)Inherited from
getBoundingBox
▸ getBoundingBox(): Object
得到对象的最小外包
Returns
Object
| Name | Type |
|---|---|
maxPt | McGePoint3d |
minPt | McGePoint3d |
ret | boolean |
Example
import { McDbText, McGePoint3d } from 'mxcad'
const text = new McDbText();
text.textString = "测试Test";
text.height = 20;
text.position = text.alignmentPoint = new McGePoint3d(0,0,0);
const { minPt, maxPt, ret } = text.getBoundingBox()Inherited from
getDatabase
▸ getDatabase(): McDbDatabase
得到对象所在的数据库
Returns
返回数据库
Example
//假设obj为一个数据库对象
const data = obj.getDatabase();Inherited from
getDatabaseIndexId
▸ getDatabaseIndexId(): number
获取对象的索引ID
Returns
number
Example
//假设obj为一个数据库对象
const id = obj.getDatabaseIndexId();Inherited from
getExtensionDictionary
▸ getExtensionDictionary(): McDbDictionary
得到对象的扩展字典数据.
Returns
扩展字典数据
Example
//假设obj为一个数据库对象
const id = obj.getOwnerID();Inherited from
McDbEntity.getExtensionDictionary
getGripPoints
▸ getGripPoints(): McGePoint3dArray
获取对象的控制点
Returns
Example
//假设obj为一个数据库对象
const ptArr = obj.getGripPoints();Inherited from
getHandle
▸ getHandle(): string
得到对象句柄
Returns
string
返回对象句柄
Example
//假设obj为一个数据库对象
const handle = obj.getHandle();Inherited from
getImp
▸ getImp(): any
获取内部实现对象。
Returns
any
内部实现对象。
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
let imp = obj.getImp();Inherited from
getJson
▸ getJson(): string
获取 JSON 格式的字符串。
Returns
string
JSON 格式的字符串。
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
const json = obj.getJson()Inherited from
getLoopAt
▸ getLoopAt(loopIndex): Object
获取索引的值
Parameters
| Name | Type | Description |
|---|---|---|
loopIndex | number | index 闭合区域的索引 |
Returns
Object
ret 是否成功获取 | lootype 类型 | vertices 坐标集合 | bulges凸度集合
| Name | Type |
|---|---|
bulges | number[] |
lootype | number |
ret | boolean |
vertices | McGePoint3d[] |
Example
// hatch 为图案填充实例对象
const numLoops = hatch.numLoops;
for (let i = 0; i < numLoops; i++) {
const loop = hatch.getLoopAt(i);
console.log(loop)
};getObjectID
▸ getObjectID(): McObjectId
获取对象 ID。
Returns
对象 ID。
Example
import { McDbObject } from "mxcad";
const id = obj.getObjectID();Inherited from
getOwnerID
▸ getOwnerID(): number
得到对象拥用者的id
Returns
number
Example
//假设obj为一个数据库对象
const id = obj.getOwnerID();Inherited from
getPatternDefinitionAt
▸ getPatternDefinitionAt(index): Object
获取对应图案定义的数据
Parameters
| Name | Type | Description |
|---|---|---|
index | number | 索引 |
Returns
Object
ret 是否成功获取 | angle 角度 | baseX, baseY 基点位置 | offsetX, offsetY 偏移位置 | aryDashes 短划线数据
| Name | Type |
|---|---|
angle | number |
aryDashes | number[] |
baseX | number |
baseY | number |
offsetX | number |
offsetY | number |
ret | boolean |
Example
// hatch 为图案填充实例对象
const obj = {};
for (let i = 0; i < obj.numPatternDefinitions; i++) {
obj["patternDefinitions:" + i] = hatch.getPatternDefinitionAt(i);
};getxData
▸ getxData(appName?): MxCADResbuf
得到对象的扩展数据
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
appName | string | "" | 扩展数据名 |
Returns
Example
// 假设ent为有效实例对象
const xData = ent.getXData();Inherited from
getxDataDouble
▸ getxDataDouble(appName): Object
获取实体的指定 XData 类型中的 double 值
Parameters
| Name | Type | Description |
|---|---|---|
appName | string | 扩展数据名称 |
Returns
Object
double 值
| Name | Type |
|---|---|
ret | boolean |
val | number |
Example
// 假设ent为有效实例对象
let data = ent.getxDataDouble("DataName");
if(data.ret){
console.log(data.val)
}Inherited from
getxDataLong
▸ getxDataLong(appName): Object
获取实体的指定 XData 类型中的 long(整数)值
Parameters
| Name | Type | Description |
|---|---|---|
appName | string | 扩展数据名称 |
Returns
Object
long 值
| Name | Type |
|---|---|
ret | boolean |
val | number |
Example
// 假设ent为有效实例对象
let data = ent.getxDataLong("DataName");
if(data.ret){
console.log(data.val)
}Inherited from
getxDataPoint
▸ getxDataPoint(appName): Object
获取实体的指定 XData 类型中的点对象
Parameters
| Name | Type | Description |
|---|---|---|
appName | string | 扩展数据名称 |
Returns
Object
获取结果及三维点对象
| Name | Type |
|---|---|
ret | boolean |
val | McGePoint3d |
Inherited from
getxDataString
▸ getxDataString(appName): Object
获取与特定实体关联的 XData 信息,并以字符串形式返回
Parameters
| Name | Type | Description |
|---|---|---|
appName | string | 扩展数据名称 |
Returns
Object
val XData信息 | ret 是否返回成功
| Name | Type |
|---|---|
ret | boolean |
val | string |
Example
// 假设ent为有效实例对象
let data = ent.getxDataString("DataName");
if(data.ret){
console.log(data.val)
}Inherited from
hatchStyle
▸ hatchStyle(): HatchStyle
填充样式
Returns
Example
// hatch 为图案填充实例对象
const style = hatch.hatchStyle();highlight
▸ highlight(isHighlight): void
设置对象是否高亮
Parameters
| Name | Type | Description |
|---|---|---|
isHighlight | boolean | 是否高亮 |
Returns
void
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.highlight(true);Inherited from
initTempObject
▸ initTempObject(imp): void
初始化临时对象。
Parameters
| Name | Type | Description |
|---|---|---|
imp | any | 内部实现对象。 |
Returns
void
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
obj.initTempObject()Inherited from
isErased
▸ isErased(): boolean
对象是否已经删除
Returns
boolean
Example
//假设obj为一个数据库对象
const res = obj.isErased();
console.log(res);Inherited from
isHaveExtensionDictionary
▸ isHaveExtensionDictionary(): boolean
是否有扩展字典数据.
Returns
boolean
Example
//假设obj为一个数据库对象
const res = obj.isHaveExtensionDictionary();Inherited from
McDbEntity.isHaveExtensionDictionary
isKindOf
▸ isKindOf(sObjectName): boolean
判断对象类型
Parameters
| Name | Type | Description |
|---|---|---|
sObjectName | string | 类型名 |
Returns
boolean
返回对象是否是目标类型
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
let isKind = obj.isKindOf('SomeObjectType');
console.log(isKind); // 输出: true 或 falseInherited from
isNull
▸ isNull(): any
判断是否为空对象
Returns
any
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
console.log(obj.isNull()); // 输出: true 或 falseInherited from
isSolid
▸ isSolid(): boolean
检查填充对象是否为实体填充
Returns
boolean
布尔值
Example
// hatch 为图案填充实例对象
const res = hatch.isSolid();
if(res){
//实体填充
}else{
//非实体填充
}loopTypeAt
▸ loopTypeAt(loopIndex): number
某次闭合区域索引中的类型
Parameters
| Name | Type |
|---|---|
loopIndex | number |
Returns
number
Example
// hatch 为图案填充实例对象
const looptType = hatch.loopTypeAt(0)mirror
▸ mirror(point1, point2): boolean
镜向对象
Parameters
| Name | Type | Description |
|---|---|---|
point1 | McGePoint3d | 镜像基点 |
point2 | McGePoint3d | - |
Returns
boolean
Example
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.mirror(new McGePoint3d(0,0,0), new McGePoint3d(20,10,0))Inherited from
move
▸ move(fromPoint, toPoint): boolean
移动对象
Parameters
| Name | Type | Description |
|---|---|---|
fromPoint | McGePoint3d | 移动开始点 |
toPoint | McGePoint3d | 移动结束点 |
Returns
boolean
Example
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.move(new McGePoint3d(0,0,0), new McGePoint3d(20,0,0))Inherited from
moveGripPointsAt
▸ moveGripPointsAt(iIndex, dXOffset, dYOffset, dZOffset): any
移动对象的控制点
Parameters
| Name | Type | Description |
|---|---|---|
iIndex | number | 索引 |
dXOffset | number | X轴偏移量 |
dYOffset | number | Y轴偏移量 |
dZOffset | number | Z轴偏移量 |
Returns
any
Example
//假设obj为一个数据库对象
obj.moveGripPointsAt(1,10,10,10);Inherited from
patternName
▸ patternName(): string
填充图案名称
Returns
string
Example
// hatch 为图案填充实例对象
const patternName = hatch.patternName()patternType
▸ patternType(): number
填充图案类型
Returns
number
Example
// hatch 为图案填充实例对象
const type = hatch.patternType()removeAllLoop
▸ removeAllLoop(): boolean
删除所有闭合区域
Returns
boolean
Example
// hatch 为图案填充实例对象
const res = hatch.removeAllLoop();
if(res){
//删除成功
}else{
//删除失败
}removeLoopAt
▸ removeLoopAt(loopIndex): boolean
删除某个索引下的闭合区域
Parameters
| Name | Type | Description |
|---|---|---|
loopIndex | number | 移除的循环的索引 |
Returns
boolean
Example
// hatch 为图案填充实例对象
const res = hatch.removeLoopAt(1);
if(res){
//删除成功
}else{
//删除失败
}rotate
▸ rotate(basePoint, dRotationAngle): boolean
旋转对象
Parameters
| Name | Type | Description |
|---|---|---|
basePoint | McGePoint3d | 旋转基点 |
dRotationAngle | number | 旋转角度 |
Returns
boolean
Example
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.rotate(new McGePoint3d(0,0,0), Math.PI)Inherited from
scaleEntity
▸ scaleEntity(basePoint, dScaleFactor): boolean
缩放对象
Parameters
| Name | Type | Description |
|---|---|---|
basePoint | McGePoint3d | 缩放基点 |
dScaleFactor | number | 缩放因子(<1 缩小; >1 放大) |
Returns
boolean
Example
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.scaleEntity(new McGePoint3d(0,0,0), 0.5)Inherited from
scalePattern
▸ scalePattern(scale): boolean
对当前定义的填充图案数据进行缩放。
Parameters
| Name | Type |
|---|---|
scale | number |
Returns
boolean
setHatchStyle
▸ setHatchStyle(val): void
设置填充样式
Parameters
| Name | Type |
|---|---|
val | HatchStyle |
Returns
void
Example
import { McDbHatch, McDb } from "mxcad"
McDbHatch.setHatchStyle(McDb.HatchStyle.kNormal)setJson
▸ setJson(str): boolean
设置 JSON 格式的字符串。
Parameters
| Name | Type | Description |
|---|---|---|
str | string | JSON 格式的字符串。 |
Returns
boolean
是否设置成功。
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
const res = obj.setJson('{"key": "value"}');
console.log(res)Inherited from
setLoopAt
▸ setLoopAt(loopIndex, vertices, bulges, loopType?): boolean
设置某个索引下的闭合区域数据
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
loopIndex | number | undefined | 闭合区域索引 |
vertices | McGePoint3dArray | undefined | 坐标集合 |
bulges | number[] | undefined | 凸度集合 |
loopType | number | McDb.HatchLoopType.kPolyline | 闭合区域类型 |
Returns
boolean
Example
import { McDbHatch } from "mxcad";
const hatch = new McDbHatch();
const pts = [
new McGePoint3d({ x: 10, y: 20, z: 0 }),
new McGePoint3d({ x: 0, y: 0, z: 0 }),
];
const isSuccess = hatch.setLoopAt(0, new McGePoint3dArray(pts), [0.4,0.8]);
if (isSuccess) {
console.log("循环设置成功!");
} else {
console.log("循环设置失败...");
}setPattern
▸ setPattern(type, patName): void
设置填充图案
Parameters
| Name | Type | Description |
|---|---|---|
type | number | 填充图案的来源类型 |
patName | string | 填充图案名称 |
Returns
void
Example
import { McDbHatch, MxCpp } from "mxcad";
const hatch = new McDbHatch();
hatch.setPattern(McDb.HatchPatternType.kCustomDefined, 'test')
let mxcad = MxCpp.getCurrentMxCAD();
mxcad.drawEntity(hatch);setxData
▸ setxData(xdata): boolean
设置对象的扩展数据
Parameters
| Name | Type | Description |
|---|---|---|
xdata | MxCADResbuf | 扩展数据链表 |
Returns
boolean
Example
import { MxCADUiPrEntity, McDbEntity } from "mxcad";
//设置扩展数据
let selEntity = new MxCADUiPrEntity();
selEntity.setMessage("选择对象");
let id = await selEntity.go();
if (!id.isValid()) return;
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
ent.setxData(new MxCADResbuf([{type:DxfCode.kExDataName,val:"DataName"},{type:DxfCode.kString,val:"yyyyy"}]));Inherited from
setxDataDouble
▸ setxDataDouble(appName, val): boolean
设置实体的指定 XData 类型中的 double 值
Parameters
| Name | Type | Description |
|---|---|---|
appName | string | 扩展数据名称 |
val | number | double 值 |
Returns
boolean
布尔值
Example
import { MxCADUiPrEntity, McDbEntity } from "mxcad";
let selEntity = new MxCADUiPrEntity();
selEntity.setMessage("选择对象");
let id = await selEntity.go();
if (!id.isValid()) return;
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
const res = ent.setxDataDouble("DataName", 0);
if(res){
//设置成功
}else{
//设置失败
}Inherited from
setxDataLong
▸ setxDataLong(appName, val): boolean
设置实体的指定 XData 类型中的 long(整数)值
Parameters
| Name | Type | Description |
|---|---|---|
appName | string | 扩展数据名称 |
val | number | long 值 |
Returns
boolean
long 值
Example
import { MxCADUiPrEntity, McDbEntity } from "mxcad";
let selEntity = new MxCADUiPrEntity();
selEntity.setMessage("选择对象");
let id = await selEntity.go();
if (!id.isValid()) return;
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
const res = ent.setxDataLong("DataName", 123456);
if(res){
//设置成功
}else{
//设置失败
}Inherited from
setxDataPoint
▸ setxDataPoint(appName, val): boolean
设置实体的指定 XData 类型中的点对象
Parameters
| Name | Type | Description |
|---|---|---|
appName | string | 扩展数据名称 |
val | McGePoint3d | 点对象 |
Returns
boolean
获取结果及三维点对象
Inherited from
setxDataString
▸ setxDataString(appName, val): boolean
设置与特定实体关联的 XData 信息,并以字符串形式设置
Parameters
| Name | Type | Description |
|---|---|---|
appName | string | 扩展数据名称 |
val | string | 字符串值 |
Returns
boolean
是否设置成功
Example
import { MxCADUiPrEntity, McDbEntity } from "mxcad";
let selEntity = new MxCADUiPrEntity();
selEntity.setMessage("选择对象");
let id = await selEntity.go();
if (!id.isValid()) return;
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
const res = ent.setxDataString("DataName", "xxxxx");
if(res){
//设置成功
}else{
//设置失败
}Inherited from
syncData
▸ syncData(_toCpp?): boolean
同步实体的数据。这个方法可能是在修改了实体的属性或者附加了新的数据之后调用的,以确保所有的改变都被正确地保存到实体的数据库记录中。
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
_toCpp | boolean | true | 是否同步数据 |
Returns
boolean
Example
// 假设ent为有效实例对象
const res = ent.syncData(true);
if(res){
//同步成功
}else{
//同步失败
}Inherited from
transformBy
▸ transformBy(transformationMatrix): boolean
变换对象
Parameters
| Name | Type | Description |
|---|---|---|
transformationMatrix | McGeMatrix3d | 变换矩阵 |
Returns
boolean
Example
import { McGeMatrix3d, McDbEntity, McGeVector3d} from 'mxcad'
const ent = new McDbEntity()
let matrix = new McGeMatrix3d();
matrix.setToTranslation(new McGeVector3d(20,0,0));//平移
ent.transformBy(matrix);Inherited from
unErase
▸ unErase(): boolean
反删除对象。
Returns
boolean
Example
//假设obj为一个数据库对象
const res = obj.unErase();
console.log(res);Inherited from
updateDisplay
▸ updateDisplay(): void
显示调用对象更新显示.
Returns
void
Example
// 假设ent为有效实例对象
ent.updateDisplay()