Skip to content
On this page

mxcad_2d API 文档 / 2d / McDbCircle

Class: McDbCircle

2d.McDbCircle

表示圆实体类。

Example

ts
import { McDbCircle, MxCpp } from 'mxcad'

//绘制一个圆心在原点,半径为20的圆
const circle = new McDbCircle(new McGePoint3d(0,0,0), 20);
MxCpp.getCurrentMxCAD().drawEntity(circle);
ts
import { McDbCircle, MxCpp, McGePoint3d } from 'mxcad'
 //交互绘圆
 async function drawCircle() {
   const getPoint = new MxCADUiPrPoint();
   let circle = new McDbCircle();
   // 获取当前绘线颜色
   let drawColor = MxCpp.getCurrentMxCAD().getCurrentDatabaseDrawColor();
   circle.trueColor = new McCmColor(drawColor) //设置圆颜色
   let drawMethod: "default" | "3P" | "2P" | undefined
   let isRadius: boolean | undefined
   let center: McGePoint3d | null | undefined
   let radius: number | undefined
   let point1: McGePoint3d | null | undefine
   let point2: McGePoint3d | null | undefined
   let point3: McGePoint3d | null | undefined
   let endPoint1: McGePoint3d | null | undefined
   let endPoint2: McGePoint3d | null | undefined
   // 循环取点
   while (true) {
       if(typeof drawMethod === "undefined") {
       getPoint.setKeyWords("[三点(3P)/两点(2P)]");// 设置关键词
       drawMethod = "default"
       }
       if (drawMethod === "default") {
       // 设置圆心    
       if (!center) {
           getPoint.setMessage("\n指定圆的圆心");
           const point = await getPoint.go()
           if (getPoint.isKeyWordPicked("3P")) {
           drawMethod = "3P"
           continue
           }
           if (getPoint.isKeyWordPicked("2P")) {
           drawMethod = "2P"
           continue
           }
           if (!point) return
           center = point
       }
       // 设置半径
       if (!radius) {
           const getDist = new MxCADUiPrDist()
           getDist.setBasePt(center)
           if(typeof isRadius === "undefined") {
           getDist.setKeyWords("[直径(D)]");
           isRadius = true
           }
           getDist.setMessage(_ML_String("McDbCircle_Radius", "指定圆的" + (isRadius ? "半径" : "直径")));
           // 动态绘制圆
           getDist.setUserDraw(
           (
               currentPoint,
               pWorldDraw
           ) => {
               if (!center) return
               let circle = new McDbCircle(center.x, center.y, center.z, isRadius
               ? center.distanceTo(currentPoint)
               : center.distanceTo(currentPoint) / 2)
               pWorldDraw.drawMcDbEntity(circle);
               pWorldDraw.drawLine(circle.center.toVector3(), currentPoint.toVector3());
           }
           );
           const _radius = await getDist.go()
           if(getDist.isKeyWordPicked("D")) {
           isRadius = false
           getDist.clearLastInputPoint()
           getDist.setBasePt(center)
           getDist.setMessage(_ML_String("McDbCircle_Diameter", "指定圆的直径"));
           getDist.setKeyWords("")
           const diameter = await getDist.go()
           if(!diameter) return
           radius = diameter / 2
           }
           if(!radius) {
           if (!_radius) return
           radius = _radius as number
           }
       }
       circle.center = center
       circle.radius = radius
       return MxCpp.getCurrentMxCAD().drawEntity(circle)
       }
       if (drawMethod === "3P") {
       if(!point1) {
           getPoint.setMessage("指定圆上的第一个点")
           getPoint.setKeyWords("")
           point1 = await getPoint.go()
           if(!point1) return
       }
       if(!point2) {
           getPoint.setMessage("指定圆上的第二个点")
           getPoint.setKeyWords("")
           getPoint.setUserDraw((pt, pw) => {
           if(!point1) return
           pw.drawLine(point1.toVector3(), pt.toVector3());
           })
           point2 = await getPoint.go()
           if (!point2) return
       }
       if(!point3) {
           getPoint.setMessage("指定圆上的第三个点")
           getPoint.setKeyWords("")
           getPoint.setUserDraw((pt, pw) => {
           if(!point1) return
           if(!point2) return
           const center = threePointsToDetermineTheCenterOfTheCircle([
               point1,
               point2,
               pt,
           ]);
           if (center) {
               const circle = new McDbCircle(center.x, center.y, center.z, center.distanceTo(point1))
               pw.drawMcDbEntity(circle)
           }
           })
           point3 = await getPoint.go()
           if(!point3) return
       }
       const center = threePointsToDetermineTheCenterOfTheCircle([
           point1,
           point2,
           point3,
       ]);
       const circle = new McDbCircle(center.x, center.y, center.z, center.distanceTo(point1))
       return MxCpp.getCurrentMxCAD().drawEntity(circle)
       }
       if(drawMethod === "2P") {
       if(!endPoint1) {
           getPoint.setMessage("指定圆直径的第一个端点")
           getPoint.setKeyWords("")
           endPoint1 = await getPoint.go()
           if(!endPoint1) return
       }
       if(!endPoint2) {
           getPoint.setMessage("指定圆直径的第二个端点")
           getPoint.setKeyWords("")
           getPoint.setUserDraw((pt, pw)=> {
           if(!endPoint1) return
           center = new McGePoint3d((pt.x + endPoint1.x) / 2, (pt.y + endPoint1.y) / 2, (pt.z + endPoint1.z) / 2)
           radius = center.distanceTo(endPoint1)
           pw.drawMcDbEntity(new McDbCircle(center.x, center.y, center.z, radius))
           })
           endPoint2 = await getPoint.go()
           if(!endPoint2) return
       }
       center = new McGePoint3d((endPoint2.x + endPoint1.x) / 2, (endPoint2.y + endPoint1.y) / 2, (endPoint2.z + endPoint1.z) / 2)
       radius = center.distanceTo(endPoint1)
       return MxCpp.getCurrentMxCAD().drawEntity(new McDbCircle(center.x, center.y, center.z, radius))
       }
   }
   }

Hierarchy

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new McDbCircle(x?, y?, z?, radius?)

构造函数。

Parameters

NameType
x?number | object
y?number
z?number
radius?number

Example

ts
import { McDbCircle } from 'mxcad'

//绘制一个圆心在原点,半径为20的圆
const circle1 = new McDbCircle(new McGePoint3d(0,0,0), 20);
//绘制一个圆心在原点,半径为10的圆
const circle2 = new McDbCircle(0, 0, 0, 10);

Overrides

McDbCurve.constructor

Properties

imp

imp: any = 0

内部实现对象。

Inherited from

McDbCurve.imp

Accessors

center

get center(): McGePoint3d

获取圆心坐标。

Returns

McGePoint3d

Example

ts
import { McDbCircle } from 'mxcad'

const circle = new McDbCircle();
circle.setCenter(20, 10, 0)//设置圆心在(20, 10, 0);
const center = circle.center;
console.log(center);//(20, 10, 0)

set center(pt): void

设置圆心坐标。

Parameters

NameTypeDescription
ptMcGePoint3d圆心坐标。

Returns

void

Example

ts
import { McDbCircle } from 'mxcad'

const circle = new McDbCircle();
circle.center = new McDbCircle(10, 10, 0);

colorIndex

get colorIndex(): number

得到对象颜色索引

Returns

number

Example

ts
import { McDbEntity, ColorIndexType } from 'mxcad'
 const ent = new McDbEntity();
 ent.colorIndex = ColorIndexType.kByblock;
 console.log(ent.colorIndex)

Inherited from

McDbCurve.colorIndex

set colorIndex(val): void

设置对象颜色索引

Parameters

NameTypeDescription
valnumber颜色索引(ColorIndexType)

Returns

void

Inherited from

McDbCurve.colorIndex


drawOrder

get drawOrder(): number

对象的显示顺序

Returns

number

Example

ts
// 假设ent为有效实例对象
const order = ent.drawOrder();

Inherited from

McDbCurve.drawOrder

set drawOrder(order): void

对象的显示顺序

Parameters

NameTypeDescription
ordernumber顺序值

Returns

void

Example

ts
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

McDbCurve.drawOrder


dxf0

get dxf0(): string

得到对象的DXF组码的类型名,这个和AutoCAD中的DXF组码是一样。 比如直线的类型名为:McDbLine,DXF0组码值: LINE,DXF0组码值可以用来构造集时的类型过滤。

Returns

string

Inherited from

McDbCurve.dxf0


layer

get layer(): string

得到对象图层名

Returns

string

Inherited from

McDbCurve.layer

set layer(val): void

设置对象图层名

Parameters

NameTypeDescription
valstring图层名

Returns

void

Example

ts
import { McDbEntity } from 'mxcad'
 const ent = new McDbEntity();
 ent.layer = "newLayerName";
 console.log(ent.layer)

Inherited from

McDbCurve.layer


layerId

get layerId(): McObjectId

获取图层ID对象

Returns

McObjectId

Example

ts
// 假设ent为有效实例对象
const layerId = ent.layerId;

Inherited from

McDbCurve.layerId

set layerId(id): void

设置图层Id对象

Parameters

NameType
idMcObjectId

Returns

void

Example

ts
// 假设ent为有效实例对象
const mxcad = MxCpp.getCurrentMxCAD();
const layerId = mxcad.addLayer("测试图层")
ent.layerId = layerId;

Inherited from

McDbCurve.layerId


linetype

get linetype(): string

得到对象线型名

Returns

string

Inherited from

McDbCurve.linetype

set linetype(val): void

设置对象线型名

Parameters

NameTypeDescription
valstring线型名

Returns

void

Example

ts
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.linetype = "MyLineType";
console.log(ent.linetype)

Inherited from

McDbCurve.linetype


linetypeId

get linetypeId(): McObjectId

获取实体对象线型ID

Returns

McObjectId

Example

ts
// 假设ent为有效实例对象
const linetypeId = ent.linetypeId;

Inherited from

McDbCurve.linetypeId

set linetypeId(id): void

设置实体对象线型ID

Parameters

NameType
idMcObjectId

Returns

void

Example

ts
// 假设ent为有效实例对象
const mxcad = MxCpp.getCurrentMxCAD();
const lineId = mxcad.addLinetypeEx("TestMyLine", '25,-5');
ent.linetypeId = lineId;

Inherited from

McDbCurve.linetypeId


linetypeScale

get linetypeScale(): number

得到对象线型比例

Returns

number

Inherited from

McDbCurve.linetypeScale

set linetypeScale(val): void

设置对象线型比例

Parameters

NameTypeDescription
valnumber线型比例

Returns

void

Example

ts
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.linetypeScale = 0.8;
console.log(ent.linetypeScale)

Inherited from

McDbCurve.linetypeScale


lineweight

get lineweight(): number

得到对象线重

Returns

number

Inherited from

McDbCurve.lineweight

set lineweight(val): void

设置对象线重

Parameters

NameTypeDescription
valnumber线重

Returns

void

Example

ts
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.lineweight = 20;
console.log(ent.lineweight)

Inherited from

McDbCurve.lineweight


objectName

get objectName(): string

获取对象名称。

Returns

string

返回对象名

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
console.log(obj.objectName);

Inherited from

McDbCurve.objectName


radius

get radius(): number

获取圆半径。

Returns

number

Example

ts
import { McDbCircle } from 'mxcad'

const circle = new McDbCircle(new McGePoint3d(0,0,0), 20);
const radius = circle.radius;
console.log(radius)//20

set radius(r): void

设置圆半径。

Parameters

NameTypeDescription
rnumber圆半径。

Returns

void

Example

ts
import { McDbCircle } from 'mxcad'

const circle = new McDbCircle();
circle.radius = 20;

textStyle

get textStyle(): string

得到对象文字样式

Returns

string

Inherited from

McDbCurve.textStyle

set textStyle(val): void

设置对象文字样式

Parameters

NameTypeDescription
valstring文字样式名

Returns

void

Example

ts
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.textStyle = "st_style";

Inherited from

McDbCurve.textStyle


textStyleId

get textStyleId(): McObjectId

获取实体文字样式

Returns

McObjectId

Example

ts
// 假设ent为有效实例对象
const textStyleId = ent.textStyleId;

Inherited from

McDbCurve.textStyleId

set textStyleId(id): void

设置实体的文字样式

Parameters

NameType
idMcObjectId

Returns

void

Example

ts
// 假设ent为有效实例对象
const mxcad = MxCpp.getCurrentMxCAD();
const textStyleId = mxcad.addTextStyle("MyLineTypeTextStyle", "txt.shx", "hztxt.shx", 1);
ent.textStyleId = textStyleId;

Inherited from

McDbCurve.textStyleId


trueColor

get trueColor(): McCmColor

得到对象颜色

Returns

McCmColor

Example

ts
import { McDbEntity, McCmColor} from 'mxcad'
 const ent = new McDbEntity();
 ent.trueColor = new McCmColor(255, 0, 0);
 console.log(ent.trueColor)

Inherited from

McDbCurve.trueColor

set trueColor(val): void

设置对象颜色

Parameters

NameType
valMcCmColor

Returns

void

Inherited from

McDbCurve.trueColor


visible

get visible(): boolean

对象是否可见

Returns

boolean

Inherited from

McDbCurve.visible

set visible(val): void

设置是否可见

Parameters

NameTypeDescription
valboolean布尔值

Returns

void

Example

ts
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.visible = true;
console.log(ent.visible)

Inherited from

McDbCurve.visible

Methods

IntersectWith

IntersectWith(intersectObject, exOption): McGePoint3dArray

与其他实体相交, 得到交点

Parameters

NameTypeDescription
intersectObjectMcDbEntity需要相交的是实体对象
exOptionIntersect相交的选项

Returns

McGePoint3dArray

得到所有交点

Example

ts
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

McDbCurve.IntersectWith


assertObjectModification

assertObjectModification(autoUndo?): number

设置对象被改变的状态,可自动触发更新显示函数,更新显示。 比如块表记录更新了,需要通知块引用更新显示,可以调用该函数。

Parameters

NameTypeDefault value
autoUndobooleanfalse

Returns

number

Example

ts
//假设obj为一个数据库对象
obj.assertObjectModification()

Inherited from

McDbCurve.assertObjectModification


clone

clone(): null | McDbObject

克隆对象。

Returns

null | McDbObject

克隆出的对象。

Example

ts
//假设obj为一个数据库对象
const obj_clone = obj.clone();

Inherited from

McDbCurve.clone


createExtensionDictionary

createExtensionDictionary(): boolean

创建对象的扩展字典数据.

Returns

boolean

Example

ts
//假设obj为一个数据库对象
const res = obj.createExtensionDictionary();

Inherited from

McDbCurve.createExtensionDictionary


deleteXData

deleteXData(appName): boolean

删除实体指定应用程序名称相关的数据

Parameters

NameTypeDescription
appNamestring扩展数据名称

Returns

boolean

Example

ts
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

McDbCurve.deleteXData


disableDisplay

disableDisplay(isDisable): void

禁用对象的自动更新显示.

Parameters

NameTypeDescription
isDisableboolean是否禁用对象自动更新显示

Returns

void

Example

ts
import { McDbLine } from 'mxcad'
const line1 = new McDbLine(new McGePoint3d(0,0,0), new McGePoint3d(20,1,0));
line1.disableDisplay(true)

Inherited from

McDbCurve.disableDisplay


erase

erase(): boolean

删除对象。

Returns

boolean

是否删除成功。

Example

ts
//假设obj为一个数据库对象
const res = obj.erase();
console.log(res);

Inherited from

McDbCurve.erase


explode

explode(): MxCADResbuf

打碎对象,返回打后对象数据链表

Returns

MxCADResbuf

resbuf 数据

Example

ts
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();

Inherited from

McDbCurve.explode


freeTempRelationObject

freeTempRelationObject(): void

释放临时关系对象

Returns

void

Example

ts
//假设obj为一个数据库对象
obj.freeTempRelationObject();

Inherited from

McDbCurve.freeTempRelationObject


getAllAppName

getAllAppName(): McGeStringArray

获取实体中包含的所有 XData 记录的应用程序名(AppName)

Returns

McGeStringArray

Example

ts
// 假设ent为有效实例对象
const appNames = ent.getAllAppName();
console.log(appNames);

Inherited from

McDbCurve.getAllAppName


getArea

getArea(): Object

计算面积

Returns

Object

val 面积值 | ret 是否获取成功

NameType
retboolean
valnumber

Example

ts
import { McGePoint3d, McDbCircle } from "mxcad"

const center = new McGePoint3d(0,0,0);
const circle = new McDbCircle(center, 20);
const area = circle.getArea();
console.log("圆面积:", area)

Inherited from

McDbCurve.getArea


getBoundingBox

getBoundingBox(): Object

得到对象的最小外包

Returns

Object

NameType
maxPtMcGePoint3d
minPtMcGePoint3d
retboolean

Example

ts
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

McDbCurve.getBoundingBox


getClosestPointTo

getClosestPointTo(givenPnt, isExtend): Object

得到一个点到曲线的最近点

Parameters

NameTypeDescription
givenPntMcGePoint3d参考点
isExtendboolean是否延展实体

Returns

Object

点对象及执行结果。

NameType
retboolean
valMcGePoint3d

Example

ts
import { McGePoint3d, McDbCircle, MxCADUiPrPoint, MxCpp } from "mxcad"

const center = new McGePoint3d(0,0,0);
const circle = new McDbCircle(center, 20);
const mxcad = MxCpp.getCurrentMxCAD();
mxcad.drawEntity(circle);

const getPoint = new MxCADUiPrPoint();
getPoint.setUserDraw((pt,pw)=>{
  //获取pt到circle上最近的点
  const point = circle.getClosestPointTo(pt);
  console.log(point)
})
const point = await getPoint.go();

Inherited from

McDbCurve.getClosestPointTo


getDatabase

getDatabase(): McDbDatabase

得到对象所在的数据库

Returns

McDbDatabase

返回数据库

Example

ts
//假设obj为一个数据库对象
const data = obj.getDatabase();

Inherited from

McDbCurve.getDatabase


getDatabaseIndexId

getDatabaseIndexId(): number

获取对象的索引ID

Returns

number

Example

ts
//假设obj为一个数据库对象
const id = obj.getDatabaseIndexId();

Inherited from

McDbCurve.getDatabaseIndexId


getDistAtParam

getDistAtParam(param): Object

获取参数位置上的距离。

Parameters

NameTypeDescription
paramnumber参数位置。

Returns

Object

距离及执行结果。

NameType
retboolean
valnumber

Example

ts
// 假设curve为有效曲线实例对象
const res = curve.getDistAtParam(2);
if(res.ret){
  console.log(res.val)
}

Inherited from

McDbCurve.getDistAtParam


getDistAtPoint

getDistAtPoint(pt): Object

获取曲线上点的距离位置。

Parameters

NameTypeDescription
ptMcGePoint3d距离位置。

Returns

Object

点及执行结果。

NameType
retboolean
valnumber

Example

ts
import { McGePoint3d, McDbLine } from "mxcad"

const pt1 = new McGePoint3d(0,0,0);
const pt2 = new McGePoint3d(20,0,0);
const line = new McDbLine(pt1, pt2)
const res = line.getDistAtPoint(pt2);
if(res.ret){
  const dist = res.val;
  console.log(dist);//20
}

Inherited from

McDbCurve.getDistAtPoint


getEndParam

getEndParam(): Object

获取结束参数。

Returns

Object

结束参数及执行结果。

NameType
retboolean
valnumber

Example

ts
// 假设curve为有效曲线实例对象
const endPa = curve.getEndParam();
if(endPa.ret){
  console.log(endPa.val)
}

Inherited from

McDbCurve.getEndParam


getEndPoint

getEndPoint(): Object

得到曲线的结束点

Returns

Object

曲线的结束点及执行结果。

NameType
retboolean
valMcGePoint3d

Example

ts
import { McGePoint3d, McDbLine } from "mxcad"

const pt1 = new McGePoint3d(0,0,0);
const pt2 = new McGePoint3d(20,0,0);
const line = new McDbLine(pt1, pt2)
const res = line.getEndPoint();
if(res.ret){
  const point = res.val;
  console.log(point);//(20, 0, 0)
}

Inherited from

McDbCurve.getEndPoint


getExtensionDictionary

getExtensionDictionary(): McDbDictionary

得到对象的扩展字典数据.

Returns

McDbDictionary

扩展字典数据

Example

ts
//假设obj为一个数据库对象
const id = obj.getOwnerID();

Inherited from

McDbCurve.getExtensionDictionary


getFirstDeriv

getFirstDeriv(pt): Object

通过曲线上某点得到曲线的一阶导数

Parameters

NameTypeDescription
ptMcGePoint3d曲线上的点

Returns

Object

曲线一阶导数及执行结果。

NameType
retboolean
valMcGeVector3d

Example

ts
import { McGePoint3d, McDbCircle } from "mxcad"

const center = new McGePoint3d(0,0,0);
const circle = new McDbCircle(center, 20);
const vec = circle.getFirstDeriv(new McGePoint3d(20,0,0));//目标点切向量
if(vec.ret){
 const val = vec.val;
}

Inherited from

McDbCurve.getFirstDeriv


getFirstDerivFromParam

getFirstDerivFromParam(param): Object

通过曲线参数得到曲线的一阶导数

Parameters

NameTypeDescription
paramnumber曲线参数

Returns

Object

曲线一阶导数及执行结果。

NameType
retboolean
valMcGeVector3d

Example

ts
// 假设curve为有效曲线实例对象
const res = curve.getFirstDerivFromParam(5);
if(res.ret){
  console.log(res.val)
}

Inherited from

McDbCurve.getFirstDerivFromParam


getGripPoints

getGripPoints(): McGePoint3dArray

获取对象的控制点

Returns

McGePoint3dArray

Example

ts
//假设obj为一个数据库对象
const ptArr = obj.getGripPoints();

Inherited from

McDbCurve.getGripPoints


getHandle

getHandle(): string

得到对象句柄

Returns

string

返回对象句柄

Example

ts
//假设obj为一个数据库对象
const handle = obj.getHandle();

Inherited from

McDbCurve.getHandle


getImp

getImp(): any

获取内部实现对象。

Returns

any

内部实现对象。

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
let imp = obj.getImp();

Inherited from

McDbCurve.getImp


getJson

getJson(): string

获取 JSON 格式的字符串。

Returns

string

JSON 格式的字符串。

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
const json = obj.getJson()

Inherited from

McDbCurve.getJson


getLength

getLength(): Object

得到曲线长度

Returns

Object

NameType
retboolean
valnumber

Example

ts
import { MxCpp, MxCADResbuf, MxCADUtility, MxCADUiPrPoint} from "mxcad"

 const mxcad = MxCpp.App.getCurrentMxCAD();
   let filter = new MxCADResbuf();
   filter.AddMcDbEntityTypes("CIRCLE,ARC,LINE,LWPOLYLINE,ELLIPSE");
   let aryId = await MxCADUtility.userSelect("选择目标曲线", filter);
   if (aryId.length == 0)  return;
   aryId.forEach(async (id) => {
       let event = id.getMcDbEntity() as McDbCurve;
       let length = event.getLength().val;
       console.log(length)
   });

Inherited from

McDbCurve.getLength


getObjectID

getObjectID(): McObjectId

获取对象 ID。

Returns

McObjectId

对象 ID。

Example

ts
import { McDbObject } from "mxcad";

const obj = new McDbObject();
const id = obj.getObjectID();

Inherited from

McDbCurve.getObjectID


getOwnerID

getOwnerID(): number

得到对象拥用者的id

Returns

number

Example

ts
//假设obj为一个数据库对象
const id = obj.getOwnerID();

Inherited from

McDbCurve.getOwnerID


getParamAtDist

getParamAtDist(dist): Object

获取距离位置上的参数。

Parameters

NameTypeDescription
distnumber距离位置。

Returns

Object

参数及执行结果。

NameType
retboolean
valnumber

Example

ts
// 假设curve为有效曲线实例对象
const res = curve.getParamAtDist(0);
if(res.ret){
  console.log(res.val)
}

Inherited from

McDbCurve.getParamAtDist


getParamAtPoint

getParamAtPoint(pt): Object

得到曲线某点位置的曲线参数

Parameters

NameTypeDescription
ptMcGePoint3d曲线上的点

Returns

Object

曲线参数及执行结果。

NameType
retboolean
valnumber

Example

ts
import { McGePoint3d, McDbLine } from "mxcad"

const pt1 = new McGePoint3d(0,0,0);
const pt2 = new McGePoint3d(20,0,0);
const line = new McDbLine(pt1, pt2)
const res = line.getParamAtPoint(pt1);
if(res.ret){
  const val = res.val;
  console.log(val);
}

Inherited from

McDbCurve.getParamAtPoint


getPointAtDist

getPointAtDist(dist): Object

获取距离位置上的点。

Parameters

NameTypeDescription
distnumber距离位置。

Returns

Object

点及执行结果。

NameType
retboolean
valMcGePoint3d

Example

ts
import { McGePoint3d, McDbLine } from "mxcad"

const pt1 = new McGePoint3d(0,0,0);
const pt2 = new McGePoint3d(20,0,0);
const line = new McDbLine(pt1, pt2)
const res = line.getPointAtDist(10);
if(res.ret){
  const point = res.val;
  console.log(point);//(10, 0, 0)
}

Inherited from

McDbCurve.getPointAtDist


getPointAtParam

getPointAtParam(param): Object

得到曲线参数所在的点坐标

Parameters

NameTypeDescription
paramnumber曲线参数

Returns

Object

点对象及执行结果。

NameType
retboolean
valMcGePoint3d

Example

ts
// 假设curve为有效曲线实例对象
const res = curve.getPointAtParam(5);
if(res.ret){
  console.log(res.val)
}

Inherited from

McDbCurve.getPointAtParam


getSamplePoints

getSamplePoints(dApproxEps): MxCADResbuf

把曲线离散成一堆点

Parameters

NameTypeDescription
dApproxEpsnumber采样间隔

Returns

MxCADResbuf

resbuf 数据

Example

ts
import { McGePoint3d, McDbLine } from "mxcad"

const pt1 = new McGePoint3d(0,0,0);
const pt2 = new McGePoint3d(20,0,0);
const line = new McDbLine(pt1, pt2);
const resBuf = line.getSamplePoints(0.1);

Inherited from

McDbCurve.getSamplePoints


getStartParam

getStartParam(): Object

获取起始参数。

Returns

Object

起始参数及执行结果。

NameType
retboolean
valnumber

Example

ts
// 假设curve为有效曲线实例对象
const startPa = curve.getStartParam();
if(startPa.ret){
  console.log(startPa.val)
}

Inherited from

McDbCurve.getStartParam


getStartPoint

getStartPoint(): Object

得到曲线的开始点

Returns

Object

曲线的开始点及执行结果。

NameType
retboolean
valMcGePoint3d

Example

ts
import { McGePoint3d, McDbLine } from "mxcad"

const pt1 = new McGePoint3d(0,0,0);
const pt2 = new McGePoint3d(20,0,0);
const line = new McDbLine(pt1, pt2)
const res = line.getStartPoint();
if(res.ret){
  const point = res.val;
  console.log(point);//(0, 0, 0)
}

Inherited from

McDbCurve.getStartPoint


getxData

getxData(appName?): MxCADResbuf

得到对象的扩展数据

Parameters

NameTypeDefault valueDescription
appNamestring""扩展数据名

Returns

MxCADResbuf

Example

ts
// 假设ent为有效实例对象
const xData = ent.getXData();

Inherited from

McDbCurve.getxData


getxDataDouble

getxDataDouble(appName): Object

获取实体的指定 XData 类型中的 double 值

Parameters

NameTypeDescription
appNamestring扩展数据名称

Returns

Object

double 值

NameType
retboolean
valnumber

Example

ts
// 假设ent为有效实例对象
let data = ent.getxDataDouble("DataName");
if(data.ret){
  console.log(data.val)
}

Inherited from

McDbCurve.getxDataDouble


getxDataLong

getxDataLong(appName): Object

获取实体的指定 XData 类型中的 long(整数)值

Parameters

NameTypeDescription
appNamestring扩展数据名称

Returns

Object

long 值

NameType
retboolean
valnumber

Example

ts
// 假设ent为有效实例对象
let data = ent.getxDataLong("DataName");
if(data.ret){
  console.log(data.val)
}

Inherited from

McDbCurve.getxDataLong


getxDataPoint

getxDataPoint(appName): Object

获取实体的指定 XData 类型中的点对象

Parameters

NameTypeDescription
appNamestring扩展数据名称

Returns

Object

获取结果及三维点对象

NameType
retboolean
valMcGePoint3d

Inherited from

McDbCurve.getxDataPoint


getxDataString

getxDataString(appName): Object

获取与特定实体关联的 XData 信息,并以字符串形式返回

Parameters

NameTypeDescription
appNamestring扩展数据名称

Returns

Object

val XData信息 | ret 是否返回成功

NameType
retboolean
valstring

Example

ts
// 假设ent为有效实例对象
let data = ent.getxDataString("DataName");
if(data.ret){
  console.log(data.val)
}

Inherited from

McDbCurve.getxDataString


highlight

highlight(isHighlight): void

设置对象是否高亮

Parameters

NameTypeDescription
isHighlightboolean是否高亮

Returns

void

Example

ts
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.highlight(true);

Inherited from

McDbCurve.highlight


initTempObject

initTempObject(imp): void

初始化临时对象。

Parameters

NameTypeDescription
impany内部实现对象。

Returns

void

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
obj.initTempObject()

Inherited from

McDbCurve.initTempObject


isErased

isErased(): boolean

对象是否已经删除

Returns

boolean

Example

ts
//假设obj为一个数据库对象
const res = obj.isErased();
console.log(res);

Inherited from

McDbCurve.isErased


isHaveExtensionDictionary

isHaveExtensionDictionary(): boolean

是否有扩展字典数据.

Returns

boolean

Example

ts
//假设obj为一个数据库对象
const res = obj.isHaveExtensionDictionary();

Inherited from

McDbCurve.isHaveExtensionDictionary


isKindOf

isKindOf(sObjectName): boolean

判断对象类型

Parameters

NameTypeDescription
sObjectNamestring类型名

Returns

boolean

返回对象是否是目标类型

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
let isKind = obj.isKindOf('SomeObjectType');
console.log(isKind); // 输出: true 或 false

Inherited from

McDbCurve.isKindOf


isNull

isNull(): any

判断是否为空对象

Returns

any

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
console.log(obj.isNull()); // 输出: true 或 false

Inherited from

McDbCurve.isNull


mirror

mirror(point1, point2): boolean

镜向对象

Parameters

NameTypeDescription
point1McGePoint3d镜像基点
point2McGePoint3d-

Returns

boolean

Example

ts
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.mirror(new McGePoint3d(0,0,0), new McGePoint3d(20,10,0))

Inherited from

McDbCurve.mirror


move

move(fromPoint, toPoint): boolean

移动对象

Parameters

NameTypeDescription
fromPointMcGePoint3d移动开始点
toPointMcGePoint3d移动结束点

Returns

boolean

Example

ts
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.move(new McGePoint3d(0,0,0), new McGePoint3d(20,0,0))

Inherited from

McDbCurve.move


moveGripPointsAt

moveGripPointsAt(iIndex, dXOffset, dYOffset, dZOffset): any

移动对象的控制点

Parameters

NameTypeDescription
iIndexnumber索引
dXOffsetnumberX轴偏移量
dYOffsetnumberY轴偏移量
dZOffsetnumberZ轴偏移量

Returns

any

Example

ts
//假设obj为一个数据库对象
obj.moveGripPointsAt(1,10,10,10);

Inherited from

McDbCurve.moveGripPointsAt


offsetCurves

offsetCurves(dOffsetDist, ptOffsetRef): McDbObjectArray

得到偏移曲线

Parameters

NameTypeDescription
dOffsetDistnumber偏移距离
ptOffsetRefMcGePoint3d偏移点

Returns

McDbObjectArray

偏移后的对象数组。

Example

ts
import { MxCADUiPrPoint, MxCpp } from 'mxcad'
   let getFristPoint = new MxCADUiPrPoint();
   let offsetDist = 10 ;
   let getEvent = new MxCADUiPrEntity();
   getEvent.setMessage('指定偏移对象');
   let event_id = await getEvent.go();
   if (!event_id) return;
   let event = (await event_id.getMcDbEntity()) as McDbCurve;
   let getoOffPt = new MxCADUiPrPoint();
   getoOffPt.setMessage('指定偏移点');
   let offPt = await getoOffPt.go();
   if (!offPt) return;
   let objArr = event.offsetCurves(offsetDist, offPt);
   if (objArr.length() === 0) return;
   objArr.forEach((obj: McDbObject) => {
       MxCpp.getCurrentCAD().drawEntity(obj as McDbEntity);
   });

Inherited from

McDbCurve.offsetCurves


rotate

rotate(basePoint, dRotationAngle): boolean

旋转对象

Parameters

NameTypeDescription
basePointMcGePoint3d旋转基点
dRotationAnglenumber旋转角度

Returns

boolean

Example

ts
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.rotate(new McGePoint3d(0,0,0), Math.PI)

Inherited from

McDbCurve.rotate


scaleEntity

scaleEntity(basePoint, dScaleFactor): boolean

缩放对象

Parameters

NameTypeDescription
basePointMcGePoint3d缩放基点
dScaleFactornumber缩放因子(<1 缩小; >1 放大)

Returns

boolean

Example

ts
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.scaleEntity(new McGePoint3d(0,0,0), 0.5)

Inherited from

McDbCurve.scaleEntity


setCenter

setCenter(x, y, z?): void

设置圆心坐标。

Parameters

NameTypeDescription
xnumber圆心 x 坐标。
ynumber圆心 y 坐标。
z?number圆心 z 坐标。

Returns

void

Example

ts
import { McDbCircle } from 'mxcad'

const circle = new McDbCircle();
circle.setCenter(0, 0, 0)//设置圆心在(0,0,0)

setJson

setJson(str): boolean

设置 JSON 格式的字符串。

Parameters

NameTypeDescription
strstringJSON 格式的字符串。

Returns

boolean

是否设置成功。

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
const res = obj.setJson('{"key": "value"}');
console.log(res)

Inherited from

McDbCurve.setJson


setxData

setxData(xdata): boolean

设置对象的扩展数据

Parameters

NameTypeDescription
xdataMxCADResbuf扩展数据链表

Returns

boolean

Example

ts
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

McDbCurve.setxData


setxDataDouble

setxDataDouble(appName, val): boolean

设置实体的指定 XData 类型中的 double 值

Parameters

NameTypeDescription
appNamestring扩展数据名称
valnumberdouble 值

Returns

boolean

布尔值

Example

ts
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

McDbCurve.setxDataDouble


setxDataLong

setxDataLong(appName, val): boolean

设置实体的指定 XData 类型中的 long(整数)值

Parameters

NameTypeDescription
appNamestring扩展数据名称
valnumberlong 值

Returns

boolean

long 值

Example

ts
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

McDbCurve.setxDataLong


setxDataPoint

setxDataPoint(appName, val): boolean

设置实体的指定 XData 类型中的点对象

Parameters

NameTypeDescription
appNamestring扩展数据名称
valMcGePoint3d点对象

Returns

boolean

获取结果及三维点对象

Inherited from

McDbCurve.setxDataPoint


setxDataString

setxDataString(appName, val): boolean

设置与特定实体关联的 XData 信息,并以字符串形式设置

Parameters

NameTypeDescription
appNamestring扩展数据名称
valstring字符串值

Returns

boolean

是否设置成功

Example

ts
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

McDbCurve.setxDataString


splitCurves

splitCurves(pts): McDbObjectArray

打断曲线

Parameters

NameTypeDescription
ptsMcGePoint3d[]断点数组

Returns

McDbObjectArray

打断后的曲线数组。

Example

ts
import { MxCpp } from "mxcad"
// PointsArr:断点数组 event:McDbCurve
   event.splitCurves(PointsArr).forEach((e:McDbCurve, index:number) => {
       if(index % 2 === 0){
           MxCpp.getCurrentCAD().drawEntity(e as McDbEntity)
       }
   })

Inherited from

McDbCurve.splitCurves


splitCurvesFromParam

splitCurvesFromParam(params): McDbObjectArray

根据曲线参数打断曲线

Parameters

NameTypeDescription
paramsnumber[]曲线参数数组

Returns

McDbObjectArray

打断后的曲线数组。

Inherited from

McDbCurve.splitCurvesFromParam


syncData

syncData(_toCpp?): boolean

同步实体的数据。这个方法可能是在修改了实体的属性或者附加了新的数据之后调用的,以确保所有的改变都被正确地保存到实体的数据库记录中。

Parameters

NameTypeDefault valueDescription
_toCppbooleantrue是否同步数据

Returns

boolean

Example

ts
// 假设ent为有效实例对象
const res = ent.syncData(true);
if(res){
  //同步成功
}else{
  //同步失败
}

Inherited from

McDbCurve.syncData


tempRelationObject

tempRelationObject(): number

与对象相关的临时关系数

Returns

number

Inherited from

McDbCurve.tempRelationObject


transformBy

transformBy(transformationMatrix): boolean

变换对象

Parameters

NameTypeDescription
transformationMatrixMcGeMatrix3d变换矩阵

Returns

boolean

Example

ts
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

McDbCurve.transformBy


unErase

unErase(): boolean

反删除对象。

Returns

boolean

Example

ts
//假设obj为一个数据库对象
const res = obj.unErase();
console.log(res);

Inherited from

McDbCurve.unErase


updateDisplay

updateDisplay(): void

显示调用对象更新显示.

Returns

void

Example

ts
// 假设ent为有效实例对象
ent.updateDisplay()

Inherited from

McDbCurve.updateDisplay