[mxcad_2d API documentation] (../README. md)/[2d] (../modules/2d. md)/MxCADUiPrEntity
Class: MxCADUiPrEntity
2d.MxCADUiPrEntity
MxCADUiPrEntity is a prompt class used for interactive selection of entity objects.
Description
This class is used to allow users to click on an entity on a drawing and return the corresponding object ID. Subsequently, the entity instance can be obtained through McObjectid. getMcDbEntity () for subsequent operations such as editing, deleting, and property reading. It is suitable for scenarios where users need to continue operating after selecting an object, such as editing objects, attaching properties, batch modifications, etc. Usage:
- Create an entity selector using new MxCADUiPrAntity();
- Call setMessage () to set prompt information and use setFilter () to restrict the available object types;
- Call go() and wait for the user to select an object;
- After obtaining the McObject ID, use getMcDbEntity () to read the object and proceed to the next step of processing.
Example
import { MxCADUiPrEntity } from "mxcad";
const getEnt = new MxCADUiPrEntity();
GetEnt. setMessage ("Please select target object");
const entId = await getEnt.go();
if (!entId || !entId.id) return;
const ent = entId.getMcDbEntity();
If (ent) console. log ("Current object type:", ent. objectName);Hierarchy
↳
MxCADUiPrEntity
Table of contents
Constructors
Methods
- abort
- clearLastInputPoint
- disableAllTrace
- drawReserve
- getCursorType
- getDetailedResult
- getDocPickPoint
- getDynamicInputType
- getFilter
- getInputToucheType
- getLastInputPoint
- getResultPointOsnapMode
- getResultPointType
- getStatus
- go
- isDisableDynInput
- isDisableDynamicTrace
- isDisableGridTrace
- isDisableOrthoTrace
- isDisableOsnap
- isDisablePolarAxisTrace
- isKeyWordPicked
- isOffsetInputPostion
- keyWordPicked
- keyWords
- message
- pickPoint
- setCursorType
- setDisableDynInput
- setDisableDynamicTrace
- setDisableGridTrace
- setDisableOrthoTrace
- setDisableOsnap
- setDisablePolarAxisTrace
- setDynamicInputType
- setFilter
- setInputToucheType
- setKeyWords
- setLastInputPoint
- setMessage
- setOffsetInputPostion
- setOsModeExParam
- setUserDraw
- setUserInputControls
- userInputControls
- value
Constructors
constructor
• new MxCADUiPrEntity(isDisableAllTrace?)
Constructor function
Parameters
| Name | Type | Default value |
|---|---|---|
isDisableAllTrace | boolean | true |
Overrides
Methods
abort
▸ abort(cause?): void
Stop the current dynamic drag
Parameters
| Name | Type | Default value |
|---|---|---|
cause | DetailedResult | DetailedResult.kCodeAbort |
Returns
void
void
Inherited from
clearLastInputPoint
▸ clearLastInputPoint(): void
Clear the previous input point data.
Returns
void
Inherited from
MxCADUiPrBase.clearLastInputPoint
disableAllTrace
▸ disableAllTrace(isDisable?): void
Disable all tracking
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| IsDisable | boolean | true | Is it disabled |
Returns
void
Inherited from
drawReserve
▸ drawReserve(callAddEntity?): void
Keep the dynamically drawn objects on the graph.
Parameters
| Name | Type | Description |
|---|---|---|
callAddEntity? | (ent: Objecti3D)=>void | callback parameter ent type: THREE.THREE.Object3D |
Returns
void
Example
//Example of MxCADUiPrPoint class
import { MxCADUiPrPoint } from 'mxcad';
async function test(){
const getPoint = new MxCADUiPrPoint();
const basePt = new McGePoint3d(0, 0, 0);
getPoint.setBasePt(basePt);
getPoint.setUserDraw((pt,pw)=>{
const line = new McDbLine(basePt, pt);
pw.drawMcDbEntity(line)
})
const val = await getPoint.go();
if (!val) return;
getPoint.drawReserve()
}Inherited from
getCursorType
▸ getCursorType(): MxCursorType
Return cursor type
Returns
MxCursorType
Inherited from
getDetailedResult
▸ getDetailedResult(): DetailedResult
Return detailed reasons for interactive operation exit
Returns
DetailedResult
The return value type of the current interactive operation
Example
//Example of MxCADUiPrList class
import { MxCADUiPrDist } from 'mxcad';
import { DetailedResult } from "mxdraw";
async function test(){
const getDist = new MxCADUiPrDist();
const val = await getDist.go();
if (!val) return;
if (getDist.getDetailedResult() === DetailedResult.kCoordIn) {
Console.log ('prompt input', val)
}
}Inherited from
MxCADUiPrBase.getDetailedResult
getDocPickPoint
▸ getDocPickPoint(): McGePoint3d
The CAD drawing coordinates of the input point when obtaining the object
Returns
Point Object MdGePoint3d
Example
import { MxCADUiPrEntity } from 'mxcad'
const getEnt = new MxCADUiPrEntity();
const entId = await getEnt.go();
if (!entId.id) return;
const point = getEnt.getDocPickPoint();getDynamicInputType
▸ getDynamicInputType(): DynamicInputType
Return dynamic input type
Returns
DynamicInputType
Dynamic input display type
Inherited from
MxCADUiPrBase.getDynamicInputType
getFilter
▸ getFilter(): undefined | MxCADResbuf
Get detailed filtering criteria for MxCADUiPrEntity settings
Returns
undefined | MxCADResbuf
Filter criteria object
getInputToucheType
▸ getInputToucheType(): number
Return the required Touche input type
Returns
number
Touche input type
Inherited from
MxCADUiPrBase.getInputToucheType
getLastInputPoint
▸ getLastInputPoint(): undefined | McGePoint3d
Return to the previous input point.
Returns
undefined | McGePoint3d
Selected keywords
Inherited from
MxCADUiPrBase.getLastInputPoint
getResultPointOsnapMode
▸ getResultPointOsnapMode(): AcquirePointOsnapMode
Return the capture type of the point obtained from the interactive point taking operation
Returns
AcquirePointOsnapMode
Inherited from
MxCADUiPrBase.getResultPointOsnapMode
getResultPointType
▸ getResultPointType(): AcquirePointType
Return the point type obtained from the interactive point retrieval operation
Returns
AcquirePointType
Inherited from
MxCADUiPrBase.getResultPointType
getStatus
▸ getStatus(): MrxDbgUiPrBaseReturn
Get operation status
Returns
MrxDbgUiPrBaseReturn
Operation status value
Example
//Example of MxCADUiPrList class
import { MxCADUiPrDist } from 'mxcad';
import { MrxDbgUiPrBaseReturn } from "mxdraw";
const getDist = new MxCADUiPrDist();
const val = await getDist.go();
if (!val) return;
if(getPoint.getStatus() === MrxDbgUiPrBaseReturn.kNone) {
//Empty input
}Inherited from
go
▸ go(): Promise<McObjectId>
Start dynamic selection
Returns
Return a promise object containing the object selected by the user
isDisableDynInput
▸ isDisableDynInput(): boolean
Do you want to disable dynamic input boxes
Returns
boolean
Inherited from
MxCADUiPrBase.isDisableDynInput
isDisableDynamicTrace
▸ isDisableDynamicTrace(): boolean
Do you want to disable dynamic tracking
Returns
boolean
Inherited from
MxCADUiPrBase.isDisableDynamicTrace
isDisableGridTrace
▸ isDisableGridTrace(): boolean
Do you want to disable grid tracking
Returns
boolean
Inherited from
MxCADUiPrBase.isDisableGridTrace
isDisableOrthoTrace
▸ isDisableOrthoTrace(): boolean
Do you want to disable ortho tracing
Returns
boolean
Inherited from
MxCADUiPrBase.isDisableOrthoTrace
isDisableOsnap
▸ isDisableOsnap(): boolean
Do you want to disable capture
Returns
boolean
Inherited from
isDisablePolarAxisTrace
▸ isDisablePolarAxisTrace(): boolean
Do you want to disable polar tracking
Returns
boolean
Inherited from
MxCADUiPrBase.isDisablePolarAxisTrace
isKeyWordPicked
▸ isKeyWordPicked(matchKeyWord): boolean
Test whether a certain keyword is selected by the user
Parameters
| Name | Type | Description |
|---|---|---|
| MatchKeyWord | string | Keywords to be detected |
Returns
boolean
True is true
Example
//Example of MxCADUiPrPoint class
import { MxCADUiPrPoint } from 'mxcad';
async function test(){
const getPoint = new MxCADUiPrPoint();
GetPoint. setKeyWords ("[Option 1 (A)/Option 2 (B)]");
const pt = await getPoint.go();
if(getPoint.isKeyWordPicked('A')){
Console.log (Option 1)
}else if(getPoint.isKeyWordPicked('B')){
Console.log (Option 2)
}
}Inherited from
isOffsetInputPostion
▸ isOffsetInputPostion(): boolean
Whether the input point is offset for display/processing
Returns
boolean
Inherited from
MxCADUiPrBase.isOffsetInputPostion
keyWordPicked
▸ keyWordPicked(): string
Return the keywords selected by the user
Returns
string
Selected keywords
Example
//Example of MxCADUiPrPoint class
import { MxCADUiPrPoint } from 'mxcad';
async function test(){
const getPoint = new MxCADUiPrPoint();
GetPoint. setKeyWords ("[Option 1 (A)/Option 2 (B)]");
const pt = await getPoint.go();
const key = getPoint.keyWordPicked();
console.log(key)
}Inherited from
keyWords
▸ keyWords(): string
Return keyword list
Returns
string
Keyword List
Example
//Taking the MxCADUiPrPoint class as an example, the same applies to other classes in the MxCADUiPr * series
import { MxCADUiPrPoint } from 'mxcad'
const getPoint = new MxCADUiPrPoint();
GetPoint. setKeyWords ("[Option 1 (A)/Option 2 (B)]");
const keyList = getPoint.keyWords();
Console.log ("Keyword List", keyList)//Keyword List [Option 1 (A)/Option 2 (B)]Inherited from
message
▸ message(): string
Prompt string
Returns
string
Reminder message
Inherited from
pickPoint
▸ pickPoint(): McGePoint3d
Obtain the input point for obtaining the object
Returns
Input point for obtaining objects
Example
import { MxCADUiPrEntity } from 'mxcad'
const getEnt = new MxCADUiPrEntity();
const entId = await getEnt.go();
if (!entId.id) return;
const point = getEnt.pickPoint();
console.log(point)setCursorType
▸ setCursorType(type): void
Set cursor type
Parameters
| Name | Type | Description |
|---|---|---|
| Type | MxCursorType | Mouse Style Type |
Returns
void
Example
//Example of MxCADUiPrPoint class
import { MxCADUiPrPoint } from 'mxcad';
import { MxCursorType } from "mxdraw";
async function test(){
const getPoint = new MxCADUiPrPoint()
GetPoint.setMessage ("Specify text starting point:")
getPoint.setCursorType(MxCursorType.kCross);
const pt = await getPoint.go();
}Inherited from
setDisableDynInput
▸ setDisableDynInput(isDisable): void
Set whether to disable dynamic input boxes
Parameters
| Name | Type | Description |
|---|---|---|
| IsDisable | boolean | Is it disabled |
Returns
void
Inherited from
MxCADUiPrBase.setDisableDynInput
setDisableDynamicTrace
▸ setDisableDynamicTrace(isDisable): void
Set whether to disable dynamic tracking
Parameters
| Name | Type | Description |
|---|---|---|
| IsDisable | boolean | Is it disabled |
Returns
void
Inherited from
MxCADUiPrBase.setDisableDynamicTrace
setDisableGridTrace
▸ setDisableGridTrace(isDisable): void
Set whether to disable grid tracking
Parameters
| Name | Type | Description |
|---|---|---|
| IsDisable | boolean | Is it disabled |
Returns
void
Inherited from
MxCADUiPrBase.setDisableGridTrace
setDisableOrthoTrace
▸ setDisableOrthoTrace(isDisable): void
Set whether to disable orthotracing
Parameters
| Name | Type | Description |
|---|---|---|
| IsDisable | boolean | Is it disabled |
Returns
void
Inherited from
MxCADUiPrBase.setDisableOrthoTrace
setDisableOsnap
▸ setDisableOsnap(isDisable): void
Set whether to disable capture
Parameters
| Name | Type | Description |
|---|---|---|
| IsDisable | boolean | Is it disabled |
Returns
void
Inherited from
setDisablePolarAxisTrace
▸ setDisablePolarAxisTrace(isDisable): void
Set whether to disable polar tracking
Parameters
| Name | Type | Description |
|---|---|---|
| IsDisable | boolean | Is it disabled |
Returns
void
Inherited from
MxCADUiPrBase.setDisablePolarAxisTrace
setDynamicInputType
▸ setDynamicInputType(type): void
Set dynamic input type
Parameters
| Name | Type | Description |
|---|---|---|
| Type | DynamicInputType | Dynamic Input Display Type |
Returns
void
Example
//Example of MxCADUiPrPoint class
import { MxCADUiPrPoint } from 'mxcad';
import { DynamicInputType } from "mxdraw";
async function Mx_WindowZoom() {
let getPoint = new MxCADUiPrPointTransform(MxInsidePublicFuns.getMxCADViewSpinMatrix(MxCpp.getCurrentMxCAD()));
getPoint.disableAllTrace();
GetPoint.setMessage ("\ n Click to zoom area");
getPoint.setDynamicInputType(DynamicInputType.kDynTip);
let pt1 = await getPoint.go();
if (pt1 == null) return;
let mxcad = MxCpp.getCurrentMxCAD();
getPoint.setUserDraw((p1, worldDraw) => {
worldDraw.drawRect(MxCoordConvert.cad2doc1((pt1 as any)), MxCoordConvert.cad2doc1((p1 as any)));
});
let pt2 = await getPoint.go();
if (pt2 == null) return;
pt1.transformBy(getPoint.rmat);
pt2.transformBy(getPoint.rmat);
mxcad.zoomW(pt1, pt2);
}Inherited from
MxCADUiPrBase.setDynamicInputType
setFilter
▸ setFilter(filter): void
Set or retrieve filtering criteria
Parameters
| Name | Type | Description |
|---|---|---|
| Filter | [MxCADResbuf] (2d. MxCADResbuf. md) | Filter Criteria |
Returns
void
Example
import { MxCADUiPrEntity, MxCADResbuf } from "mxcad";
const filter = new MxCADResbuf();
filter.AddMcDbEntityTypes("LINE");
const getEnt = new MxCADUiPrEntity();
getEnt.setFilter(filter);
const entId = await getEnt.go();
if (!entId || !entId.id) return;
const ent = entId.getMcDbEntity();
If (ent) console. log ("Current object type:", ent. objectName);setInputToucheType
▸ setInputToucheType(toucheType): void
Set the required Touche input type, default value is MxType InputToucheType.kGetBegan
Parameters
| Name | Type | Description |
|---|---|---|
| ToucheType | Number | ToucheType Type |
Returns
void
Example
//Example of MxCADUiPrPoint class
import { MxCADUiPrPoint, MxCpp } from "mxcad";
import { MxType } from "mxdraw";
//Draw a straight line on the touch screen of a mobile phone
async function Mx_Test_Touch_DrawLine() {
const getPoint = new MxCADUiPrPoint();
getPoint.setOffsetInputPostion(true);
GetPoint.setMessage ("\ nSpecify the first point:");
//Receive kGetBegan and press it with your touch screen finger
getPoint.setInputToucheType(MxType.InputToucheType.kGetEnd);
let pt1 = await getPoint.go();
if (!pt1) return;
GetPoint.setMessage ("\ nSpecify second point:");
getPoint.setBasePt(pt1);
console.log(getPoint.getResultPointOsnapMode());
console.log(getPoint.getResultPointType());
//Receive kGet and release the touch screen finger
getPoint.setInputToucheType(MxType.InputToucheType.kGetEnd);
let pt2 = await getPoint.go();
if (!pt2) return;
let mxcad = MxCpp.getCurrentMxCAD();
let ent = mxcad.drawLine(pt1.x, pt1.y, pt2.x, pt2.y).getMcDbEntity();
if (ent) {
ent.lineweight = 20;
}
}Inherited from
MxCADUiPrBase.setInputToucheType
setKeyWords
▸ setKeyWords(keyWordList): void
Set keyword list
Parameters
| Name | Type | Description |
|---|---|---|
| KeyWordList | string | Keyword List |
Returns
void
void
Example
//Taking the MxCADUiPrPoint class as an example, the same applies to other classes in the MxCADUiPr * series
import { MxCADUiPrPoint } from 'mxcad'
const getPoint = new MxCADUiPrPoint();
GetPoint. setKeyWords ("[Option 1 (A)/Option 2 (B)]")Inherited from
setLastInputPoint
▸ setLastInputPoint(pt): void
Set the previous input point.
Parameters
| Name | Type | Description |
|---|---|---|
| Pt | undefined \ | [McGePoint3d] (2d. McGePoint3d. md) |
Returns
void
Inherited from
MxCADUiPrBase.setLastInputPoint
setMessage
▸ setMessage(message): void
Set prompt string
Parameters
| Name | Type | Description |
|---|---|---|
message | string | prompt message |
Returns
void
Reminder message
Inherited from
setOffsetInputPostion
▸ setOffsetInputPostion(isOffset): void
Set input point traversal, commonly used for point retrieval on mobile devices
Parameters
| Name | Type |
|---|---|
isOffset | boolean |
Returns
void
Example
import { MxCADUiPrPoint } from "mxcad";
import { MxFun } from "mxdraw";
//Draw temporary annotation circles on mobile devices
async function test(){
const getPoint = new MxCADUiPrPoint();
GetPoint.setMessage ("\ nSpecify a point:");
getPoint.setOffsetInputPostion(true);
getPoint.clearLastInputPoint();
let pt1 = (await getPoint.go());
if (!pt1) return;
let mxdraw = MxFun.getCurrentDraw();
mxdraw.getTempMarkDraw().drawCircleMark(pt1.toVector3(), mxdraw.viewCoordLong2Cad(50), 0xFF0000);
mxdraw.updateDisplay();
}Inherited from
MxCADUiPrBase.setOffsetInputPostion
setOsModeExParam
▸ setOsModeExParam(lVal): void
Set extended capture parameters during capture.
Parameters
| Name | Type | Description |
|---|---|---|
| LVal | OsModeExParam | Extended Object Snap Parameters |
Returns
void
Example
import { MxCADUiPrPoint } from "mxcad";
import { OsModeExParam } from "mxdraw";
async function Mx_Test_Rect2() {
const getPoint = new MxCADUiPrPoint();
getPoint.clearLastInputPoint();
GetPoint.setMessage ("Please select the first point");
const pt1 = await getPoint.go();
if (!pt1) return;
const getNextPt = new MxCADUiPrPoint();
GetNextPt.setMessage ("Please select the second corner");
getNextPt.setOsModeExParam(OsModeExParam.kCircleTangentOsmode);
getNextPt.setUserDraw((pt2, pWorldDraw) => {
let pl = new McDbPolyline();
pl.addVertexAt(pt1);
pl.addVertexAt(new McGePoint3d(pt1.x, pt2.y, pt1.z));
pl.addVertexAt(pt2);
pl.addVertexAt(new McGePoint3d(pt2.x, pt1.y, pt1.z));
pl.isClosed = true;
pWorldDraw.drawMcDbEntity(pl);
});
if (!await getNextPt.go()) return;
getNextPt.drawReserve();
}Inherited from
MxCADUiPrBase.setOsModeExParam
setUserDraw
▸ setUserDraw(pDraw): void
Set the dynamic drawing calling object for the interaction process
Parameters
| Name | Type | Description |
|---|---|---|
| PDraw | (CurrentPoint: [McGePoint3d] (2d. McGePoint3d. md), pWorldDraw: McEdGetPointWorldDrawObject)=>void | McEdGetPointWorldDrawObject \ |
Returns
void
void
Example
//Example of MxCADUiPrPoint class
import { MxCADUiPrPoint } from 'mxcad';
async function test(){
const getPoint = new MxCADUiPrPoint();
getPoint.setUserDraw((pt,pw)=>{
pw.setColor(0xff00ff);
pw.drawCircle(new HTREE.Vector3(pt.x,pt.y,pt.z), 10)
})
const pt = await getPoint.go();
console.log("point", pt)
}Inherited from
setUserInputControls
▸ setUserInputControls(contros): void
Set input control settings
Parameters
| Name | Type |
|---|---|
contros | number |
Returns
void
Example
//Example of MxCADUiPrInt class
import { MxCADUiPrInt } from 'mxcad';
import { UserInputControls } from "mxdraw"
let getInt = new MxCADUiPrInt();
GetInt.setMessage ("Enter integer: ");
getInt.setUserInputControls(UserInputControls.kNoZeroResponseAccepted);
let iRowNum = await getInt.go();
if (iRowNum == null) return;Inherited from
MxCADUiPrBase.setUserInputControls
userInputControls
▸ userInputControls(): number
Return to input control settings
Returns
number
Inherited from
MxCADUiPrBase.userInputControls
value
▸ value(): McObjectId
The ID when obtaining the object
Returns
Return object ID
Example
import { MxCADUiPrEntity } from 'mxcad'
const getEnt = new MxCADUiPrEntity();
const entId = await getEnt.go();
if (!entId.id) return;
const id = getEnt.value();