[mxcad_2d API documentation] (../README. md)/[2d] (../modules/2d. md)/MxCADUiPrList
Class: MxCADUiPrDist
2d.MxCADUiPrDist
Interactive distance input class, used to obtain distance values between two points.
Description
`MxCADUiPrList is an interactive control based on MxCADUiPrBase, used to prompt users to determine a distance value through two-point input. It supports setting prompt information, dynamically dragging base points, dynamically drawing callbacks, and obtaining final distance values and detailed exit reasons. Commonly used for annotation, measurement, or interactive scenarios that require users to determine length. Instructions:
- Create an instance of MxCADUiPrList and set prompt information through setMessage;
- (Optional) Use
setBasePt/setUserDrawto set dynamic drag base points or dynamic drawing effects to enhance the user experience; - Call 'go()' to wait for user input, then use 'value()' to obtain the distance result and use 'getDetailedResult()' to determine the reason for exiting.
Example
import { MxCADUiPrDist } from 'mxcad';
async function measure() {
const getDist = new MxCADUiPrDist();
GetDist.setMessage ('\ nSpecify the first and second points to determine the distance:');
//Optional: Set dynamic drawing
getDist.setUserDraw((pt, worldDraw) => {
worldDraw.setColor(0x00ff00);
//Assuming to draw a temporary marker here
});
const val = await getDist.go();
if (val == null) return; //User cancellation or other reasons
const dist = getDist.value();
Console.log ('measured distance: ', dist);
}Hierarchy
↳
MxCADUiPrDist
Table of contents
Constructors
Methods
- abort
- basePt
- clearLastInputPoint
- disableAllTrace
- drawReserve
- getCursorType
- getDetailedResult
- getDynamicInputType
- getInputToucheType
- getLastInputPoint
- getResultPointOsnapMode
- getResultPointType
- getStatus
- go
- isDisableDynInput
- isDisableDynamicTrace
- isDisableGridTrace
- isDisableOrthoTrace
- isDisableOsnap
- isDisablePolarAxisTrace
- isKeyWordPicked
- isOffsetInputPostion
- keyWordPicked
- keyWords
- message
- setBasePt
- setCursorType
- setDisableDynInput
- setDisableDynamicTrace
- setDisableGridTrace
- setDisableOrthoTrace
- setDisableOsnap
- setDisablePolarAxisTrace
- setDynamicInputType
- setInputToucheType
- setKeyWords
- setLastInputPoint
- setMessage
- setOffsetInputPostion
- setOsModeExParam
- setUseBasePt
- setUserDraw
- setUserInputControls
- userInputControls
- value
Constructors
constructor
• new MxCADUiPrDist()
Constructor function
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
basePt
▸ basePt(): McGePoint3d
Obtain the base point for dynamic dragging
Returns
McGePoint3d
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
getDynamicInputType
▸ getDynamicInputType(): DynamicInputType
Return dynamic input type
Returns
DynamicInputType
Dynamic input display type
Inherited from
MxCADUiPrBase.getDynamicInputType
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<null | number>
Start dynamic dragging
Returns
Promise<null | number>
Return a promise object containing the distance set 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
setBasePt
▸ setBasePt(basePt): void
Set the base point for dynamic dragging
Parameters
| Name | Type | Description |
|---|---|---|
| BasePt | [McGePoint3d] (2d. McGePoint3d. md) | Base point McGePoint3d |
Returns
void
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
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
setUseBasePt
▸ setUseBasePt(useIt): void
Set the base point for using dynamic dragging
Parameters
| Name | Type | Description |
|---|---|---|
useIt | boolean | Whether to enable base point for dynamic following/dynamic drawing defaults to false |
Returns
void
void
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(): number
The distance that can be obtained
Returns
number
Return distance value
Example
import { MxCADUiPrDist } from 'mxcad'
const getDist = new MxCADUiPrDist();
const val = await getDist.go();
if(!val) return;
const dist = getDist.value();
console.log(dist)