mxcad 1.0.392 → 1.0.394

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mxcad.d.ts CHANGED
@@ -634,6 +634,8 @@ export declare class McGePoint3d {
634
634
  * ```
635
635
  */
636
636
  toVector3(): THREE.Vector3;
637
+ get vector3(): THREE.Vector3;
638
+ set vector3(val: THREE.Vector3);
637
639
  /** 将three.js 的向量设置成点
638
640
  * @example
639
641
  * ```ts
@@ -912,6 +914,9 @@ export declare class McGeVector3d {
912
914
  * ```
913
915
  * */
914
916
  toVector3(): THREE.Vector3;
917
+ setFromVector3(val: THREE.Vector3): this;
918
+ get vector3(): THREE.Vector3;
919
+ set vector3(val: THREE.Vector3);
915
920
  /**
916
921
  * 复制对象的值
917
922
  * @param val 三维向量对象
@@ -1111,6 +1116,13 @@ export declare class McGeVector3d {
1111
1116
  * */
1112
1117
  mult(val: number): this;
1113
1118
  /**
1119
+ * 使用矩阵变换该向量
1120
+ * @param leftSide 变换矩阵
1121
+ * @returns 变换后的向量对象
1122
+ * @example
1123
+ */
1124
+ transformBy(leftSide: McGeMatrix3d): this;
1125
+ /**
1114
1126
  * 获取或设置向量 X 坐标。
1115
1127
  * @param val x轴坐标
1116
1128
  * @example
@@ -1404,6 +1416,15 @@ export declare class McGeMatrix3d {
1404
1416
  * ```
1405
1417
  */
1406
1418
  getDatas(): string;
1419
+ setDatas(str: string): boolean;
1420
+ /**
1421
+ * 矩阵定义数据
1422
+ * @example
1423
+ * ```ts
1424
+ * ```
1425
+ */
1426
+ get matrix4(): THREE.Matrix4;
1427
+ set matrix4(mat: THREE.Matrix4);
1407
1428
  /**
1408
1429
  * 返回THREE.Matrix4
1409
1430
  * @example
@@ -2029,7 +2050,7 @@ export declare class McGeBound {
2029
2050
  */
2030
2051
  addPoints(pts: McGePoint3dArray | McGePoint3d[]): void;
2031
2052
  }
2032
- /** 坐标转换类型 */
2053
+ /** 坐标转换类型 ,该类只是为我们MxCAD的兼容的代码的调用,不会向用户导出*/
2033
2054
  export declare class MxCoordConvertType {
2034
2055
  /** 文档坐标转cad坐标
2035
2056
  * @param pt 三维点的对象
@@ -2103,7 +2124,7 @@ export declare class MxCoordConvertType {
2103
2124
  */
2104
2125
  cad2doc2(x: number, y: number, z: number): THREE.Vector3;
2105
2126
  }
2106
- /** 提供坐标转换方法 */
2127
+ /** 提供坐标转换方法,该类只是为我们MxCAD的兼容的代码的调用,不会向用户导出 */
2107
2128
  export declare let MxCoordConvert: MxCoordConvertType;
2108
2129
  /**
2109
2130
  * 检索一个CAD(计算机辅助设计)过滤器
@@ -12014,6 +12035,45 @@ export declare class McObject {
12014
12035
  * ```
12015
12036
  */
12016
12037
  protected creaeCallId(): number;
12038
+ /** cad坐标转绘图修正的小坐标系
12039
+ * @param pt 点的对象
12040
+ */
12041
+ cadToSmallcoord(pt: McGePoint3d): McGePoint3d;
12042
+ /** 绘图修正的小坐标系转cad坐标
12043
+ * @param pt 点的对象
12044
+ */
12045
+ smallcoordToCad(pt: McGePoint3d): McGePoint3d;
12046
+ viewCoord2Cad(pt: McGePoint3d): McGePoint3d;
12047
+ /**
12048
+ *CAD坐标到视区坐标.
12049
+ * @returns number
12050
+ * @example
12051
+ * ```typescript
12052
+ *
12053
+ *
12054
+ * ```
12055
+ */
12056
+ cadCoord2View(pt: McGePoint3d): McGePoint3d;
12057
+ /**
12058
+ *CAD长度到视区长度
12059
+ * @returns number
12060
+ * @example
12061
+ * ```typescript
12062
+ *
12063
+ *
12064
+ * ```
12065
+ */
12066
+ cadCoordLong2View(l: number): number;
12067
+ /**
12068
+ *视区长度到CAD长度
12069
+ * @returns number
12070
+ * @example
12071
+ * ```typescript
12072
+ *
12073
+ *
12074
+ * ```
12075
+ */
12076
+ viewCoordLong2Cad(l: number): number;
12017
12077
  /**
12018
12078
  * 得到临时绘制模块
12019
12079
  * @example
@@ -16544,6 +16604,7 @@ export declare function Mx_Erase(): Promise<void>;
16544
16604
  * 绘制矩形
16545
16605
  */
16546
16606
  export declare const drawRectang: () => Promise<void>;
16607
+ export declare function MxRegistCommand(): void;
16547
16608
  /**
16548
16609
  * 将数据进行 Base64 编码
16549
16610
  * @param str 目标数据
package/dist/mxcad.es.js CHANGED
@@ -14596,7 +14596,7 @@ win.McDrawObjectEvent_asciiToUTF8 = function (hexstr) {
14596
14596
  return MxG2312Obj.decodeFromGb2312Imp(hexstr);
14597
14597
  };
14598
14598
 
14599
- const version$1 = "1.0.391";
14599
+ const version$1 = "1.0.393";
14600
14600
 
14601
14601
  var isSharedArrayBuffer = "SharedArrayBuffer" in window;
14602
14602
  var isCdn = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src);
@@ -22217,6 +22217,40 @@ var McObject = /*#__PURE__*/function () {
22217
22217
  value: function creaeCallId() {
22218
22218
  return Math.round(Math.random() * 1e7);
22219
22219
  }
22220
+ }, {
22221
+ key: "cadToSmallcoord",
22222
+ value: function cadToSmallcoord(pt) {
22223
+ var v = this.mxdraw.toSmallcoord2(pt.x, pt.y, pt.z);
22224
+ return new McGePoint3d(v.x, v.y, v.z);
22225
+ }
22226
+ }, {
22227
+ key: "smallcoordToCad",
22228
+ value: function smallcoordToCad(pt) {
22229
+ var v = this.mxdraw.fromSmallcoord2(pt.x, pt.y, pt.z);
22230
+ return new McGePoint3d(v.x, v.y, v.z);
22231
+ }
22232
+ }, {
22233
+ key: "viewCoord2Cad",
22234
+ value: function viewCoord2Cad(pt) {
22235
+ var v = this.mxdraw.viewCoord2Cad(pt.x, pt.y, pt.z);
22236
+ return new McGePoint3d(v.x, v.y, v.z);
22237
+ }
22238
+ }, {
22239
+ key: "cadCoord2View",
22240
+ value: function cadCoord2View(pt) {
22241
+ var v = this.mxdraw.cadCoord2View(pt.x, pt.y, pt.z);
22242
+ return new McGePoint3d(v.x, v.y, v.z);
22243
+ }
22244
+ }, {
22245
+ key: "cadCoordLong2View",
22246
+ value: function cadCoordLong2View(l) {
22247
+ return this.mxdraw.cadCoordLong2View(l);
22248
+ }
22249
+ }, {
22250
+ key: "viewCoordLong2Cad",
22251
+ value: function viewCoordLong2Cad(l) {
22252
+ return this.mxdraw.viewCoordLong2Cad(l);
22253
+ }
22220
22254
  }, {
22221
22255
  key: "getTempDraw",
22222
22256
  value: function getTempDraw() {
@@ -24518,6 +24552,16 @@ var McGePoint3d = /*#__PURE__*/function () {
24518
24552
  value: function toVector3() {
24519
24553
  return new THREE.Vector3(this.imp.x, this.imp.y, this.imp.z);
24520
24554
  }
24555
+ }, {
24556
+ key: "vector3",
24557
+ get: function get() {
24558
+ return new THREE.Vector3(this.imp.x, this.imp.y, this.imp.z);
24559
+ },
24560
+ set: function set(val) {
24561
+ this.imp.x = val.x;
24562
+ this.imp.y = val.y;
24563
+ this.imp.z = val.z;
24564
+ }
24521
24565
  }, {
24522
24566
  key: "setFromVector3",
24523
24567
  value: function setFromVector3(val) {
@@ -24637,6 +24681,24 @@ var McGeVector3d = /*#__PURE__*/function () {
24637
24681
  value: function toVector3() {
24638
24682
  return new THREE.Vector3(this.imp.x, this.imp.y, this.imp.z);
24639
24683
  }
24684
+ }, {
24685
+ key: "setFromVector3",
24686
+ value: function setFromVector3(val) {
24687
+ this.imp.x = val.x;
24688
+ this.imp.y = val.y;
24689
+ this.imp.z = val.z;
24690
+ return this;
24691
+ }
24692
+ }, {
24693
+ key: "vector3",
24694
+ get: function get() {
24695
+ return new THREE.Vector3(this.imp.x, this.imp.y, this.imp.z);
24696
+ },
24697
+ set: function set(val) {
24698
+ this.imp.x = val.x;
24699
+ this.imp.y = val.y;
24700
+ this.imp.z = val.z;
24701
+ }
24640
24702
  }, {
24641
24703
  key: "copy",
24642
24704
  value: function copy(val) {
@@ -24735,6 +24797,12 @@ var McGeVector3d = /*#__PURE__*/function () {
24735
24797
  this.imp.mult(val);
24736
24798
  return this;
24737
24799
  }
24800
+ }, {
24801
+ key: "transformBy",
24802
+ value: function transformBy(leftSide) {
24803
+ this.imp.transformBy(leftSide.imp);
24804
+ return this;
24805
+ }
24738
24806
  }, {
24739
24807
  key: "x",
24740
24808
  get: function get() {
@@ -24893,6 +24961,19 @@ var McGeMatrix3d = /*#__PURE__*/function () {
24893
24961
  value: function getDatas() {
24894
24962
  return this.imp.getDatas();
24895
24963
  }
24964
+ }, {
24965
+ key: "setDatas",
24966
+ value: function setDatas(str) {
24967
+ return this.imp.setDatas(str);
24968
+ }
24969
+ }, {
24970
+ key: "matrix4",
24971
+ get: function get() {
24972
+ return this.toMatrix4();
24973
+ },
24974
+ set: function set(mat) {
24975
+ this.imp.setDatas(JSON.stringify(mat.toArray()));
24976
+ }
24896
24977
  }, {
24897
24978
  key: "toMatrix4",
24898
24979
  value: function toMatrix4() {
@@ -40923,6 +41004,332 @@ MxFun.on("init", function () {
40923
41004
  MxFun.addCommand("Mx_Ellipse", drawMxDbEllipse);
40924
41005
  });
40925
41006
 
41007
+ function Mx_Ucs() {
41008
+ return _Mx_Ucs.apply(this, arguments);
41009
+ }
41010
+ function _Mx_Ucs() {
41011
+ _Mx_Ucs = _asyncToGenerator(/*#__PURE__*/regenerator.mark(function _callee() {
41012
+ var mxcad, getUcsOriginPoint, originPt, ret, dLen, ucsToWcsMat, getAngle, angle, angleRet;
41013
+ return regenerator.wrap(function _callee$(_context) {
41014
+ while (1) switch (_context.prev = _context.next) {
41015
+ case 0:
41016
+ mxcad = MxCpp.getCurrentMxCAD();
41017
+ getUcsOriginPoint = new MxCADUiPrPoint();
41018
+ getUcsOriginPoint.setMessage("\u6307\u5B9A UCS \u7684\u539F\u70B9");
41019
+ getUcsOriginPoint.setKeyWords("[\u5BF9\u8C61(O)]<\u4E16\u754C>");
41020
+ getUcsOriginPoint.clearLastInputPoint();
41021
+ _context.next = 7;
41022
+ return getUcsOriginPoint.go();
41023
+ case 7:
41024
+ originPt = _context.sent;
41025
+ ret = getUcsOriginPoint.getStatus();
41026
+ if (!(ret === MrxDbgUiPrBaseReturn.kNone)) {
41027
+ _context.next = 13;
41028
+ break;
41029
+ }
41030
+ mxcad.database.ucsMatrix = McGeMatrix3d.kIdentity;
41031
+ MxFun.acutPrintf("\n \u8BBE\u7F6E\u6210\u4E16\u754C\u5750\u6807\u7CFB\u6210\u529F");
41032
+ return _context.abrupt("return");
41033
+ case 13:
41034
+ if (!(ret === MrxDbgUiPrBaseReturn.kKeyWord)) {
41035
+ _context.next = 19;
41036
+ break;
41037
+ }
41038
+ if (!getUcsOriginPoint.isKeyWordPicked("O")) {
41039
+ _context.next = 18;
41040
+ break;
41041
+ }
41042
+ _context.next = 17;
41043
+ return Mx_Ucs_ByObject(mxcad);
41044
+ case 17:
41045
+ return _context.abrupt("return");
41046
+ case 18:
41047
+ return _context.abrupt("return");
41048
+ case 19:
41049
+ if (!originPt) {
41050
+ _context.next = 41;
41051
+ break;
41052
+ }
41053
+ dLen = MxFun.screenCoordLong2Doc(50);
41054
+ ucsToWcsMat = new McGeMatrix3d().setToTranslation(new McGeVector3d(originPt.x, originPt.y, originPt.z));
41055
+ getAngle = new MxCADUiPrAngle();
41056
+ getAngle.setMessage("\u6307\u5B9A X \u8F74\u4E0A\u7684\u70B9\u6216 <\u63A5\u53D7>");
41057
+ getAngle.setBasePt(originPt);
41058
+ getAngle.setUserDraw(function (currentPoint, pWorldDraw) {
41059
+ var mat = ucsToWcsMat.clone().postMultBy(new McGeMatrix3d().setToRotation(currentPoint.sub(originPt).angle(), McGeVector3d.kZAxis, McGePoint3d.kOrigin));
41060
+ var pt1 = new McGePoint3d(0, 0, 0);
41061
+ var pt2 = new McGePoint3d(dLen, 0, 0);
41062
+ var pt3 = new McGePoint3d(0, dLen, 0);
41063
+ pt1.transformBy(mat);
41064
+ pt2.transformBy(mat);
41065
+ pt3.transformBy(mat);
41066
+ pt1 = mxcad.cadToSmallcoord(pt1);
41067
+ pt2 = mxcad.cadToSmallcoord(pt2);
41068
+ pt3 = mxcad.cadToSmallcoord(pt3);
41069
+ var arrowLen = dLen * 0.15;
41070
+ var halfAngle = Math.PI / 12;
41071
+ pWorldDraw.setColor(16711680);
41072
+ pWorldDraw.drawLine(new THREE.Vector3(pt1.x, pt1.y, pt1.z), new THREE.Vector3(pt2.x, pt2.y, pt2.z), void 0, true);
41073
+ var xDir = new McGeVector3d(1, 0, 0);
41074
+ var xPerp = new McGeVector3d(0, 1, 0);
41075
+ xDir.transformBy(mat);
41076
+ xPerp.transformBy(mat);
41077
+ var xArrowBase = new McGePoint3d(pt2.x - arrowLen * xDir.x, pt2.y - arrowLen * xDir.y, pt2.z - arrowLen * xDir.z);
41078
+ var xArrowL = new McGePoint3d(xArrowBase.x + arrowLen * Math.sin(halfAngle) * xPerp.x, xArrowBase.y + arrowLen * Math.sin(halfAngle) * xPerp.y, xArrowBase.z + arrowLen * Math.sin(halfAngle) * xPerp.z);
41079
+ var xArrowR = new McGePoint3d(xArrowBase.x - arrowLen * Math.sin(halfAngle) * xPerp.x, xArrowBase.y - arrowLen * Math.sin(halfAngle) * xPerp.y, xArrowBase.z - arrowLen * Math.sin(halfAngle) * xPerp.z);
41080
+ pWorldDraw.drawLine(new THREE.Vector3(pt2.x, pt2.y, pt2.z), new THREE.Vector3(xArrowL.x, xArrowL.y, xArrowL.z), void 0, true);
41081
+ pWorldDraw.drawLine(new THREE.Vector3(pt2.x, pt2.y, pt2.z), new THREE.Vector3(xArrowR.x, xArrowR.y, xArrowR.z), void 0, true);
41082
+ pWorldDraw.setColor(65280);
41083
+ pWorldDraw.drawLine(new THREE.Vector3(pt1.x, pt1.y, pt1.z), new THREE.Vector3(pt3.x, pt3.y, pt3.z), void 0, true);
41084
+ var yDir = new McGeVector3d(0, 1, 0);
41085
+ var yPerp = new McGeVector3d(-1, 0, 0);
41086
+ yDir.transformBy(mat);
41087
+ yPerp.transformBy(mat);
41088
+ var yArrowBase = new McGePoint3d(pt3.x - arrowLen * yDir.x, pt3.y - arrowLen * yDir.y, pt3.z - arrowLen * yDir.z);
41089
+ var yArrowL = new McGePoint3d(yArrowBase.x + arrowLen * Math.sin(halfAngle) * yPerp.x, yArrowBase.y + arrowLen * Math.sin(halfAngle) * yPerp.y, yArrowBase.z + arrowLen * Math.sin(halfAngle) * yPerp.z);
41090
+ var yArrowR = new McGePoint3d(yArrowBase.x - arrowLen * Math.sin(halfAngle) * yPerp.x, yArrowBase.y - arrowLen * Math.sin(halfAngle) * yPerp.y, yArrowBase.z - arrowLen * Math.sin(halfAngle) * yPerp.z);
41091
+ pWorldDraw.drawLine(new THREE.Vector3(pt3.x, pt3.y, pt3.z), new THREE.Vector3(yArrowL.x, yArrowL.y, yArrowL.z), void 0, true);
41092
+ pWorldDraw.drawLine(new THREE.Vector3(pt3.x, pt3.y, pt3.z), new THREE.Vector3(yArrowR.x, yArrowR.y, yArrowR.z), void 0, true);
41093
+ });
41094
+ _context.next = 28;
41095
+ return getAngle.go();
41096
+ case 28:
41097
+ angle = _context.sent;
41098
+ angleRet = getAngle.getStatus();
41099
+ if (!(angleRet === MrxDbgUiPrBaseReturn.kNone)) {
41100
+ _context.next = 33;
41101
+ break;
41102
+ }
41103
+ _context.next = 38;
41104
+ break;
41105
+ case 33:
41106
+ if (!(angleRet === MrxDbgUiPrBaseReturn.kOk)) {
41107
+ _context.next = 37;
41108
+ break;
41109
+ }
41110
+ ucsToWcsMat.postMultBy(new McGeMatrix3d().setToRotation(angle, McGeVector3d.kZAxis, McGePoint3d.kOrigin));
41111
+ _context.next = 38;
41112
+ break;
41113
+ case 37:
41114
+ return _context.abrupt("return");
41115
+ case 38:
41116
+ mxcad.database.ucsMatrix = ucsToWcsMat;
41117
+ MxFun.acutPrintf("\n \u8BBE\u7F6EUCS\u5750\u6807\u7CFB\u6210\u529F");
41118
+ return _context.abrupt("return");
41119
+ case 41:
41120
+ case "end":
41121
+ return _context.stop();
41122
+ }
41123
+ }, _callee);
41124
+ }));
41125
+ return _Mx_Ucs.apply(this, arguments);
41126
+ }
41127
+ function Mx_Plan() {
41128
+ return _Mx_Plan.apply(this, arguments);
41129
+ }
41130
+ function _Mx_Plan() {
41131
+ _Mx_Plan = _asyncToGenerator(/*#__PURE__*/regenerator.mark(function _callee2() {
41132
+ var mxcad, prKeyword, ret, ucsMatrix, vec, dAng2, dAng, getAngle, _getAngle;
41133
+ return regenerator.wrap(function _callee2$(_context2) {
41134
+ while (1) switch (_context2.prev = _context2.next) {
41135
+ case 0:
41136
+ mxcad = MxCpp.getCurrentMxCAD();
41137
+ prKeyword = new MxCADUiPrPoint();
41138
+ prKeyword.setMessage("\u8F93\u5165\u9009\u9879");
41139
+ prKeyword.setKeyWords("[\u5F53\u524D UCS(C)/\u4E16\u754C(W)/\u89D2\u5EA6(A)/\u76F8\u5BF9\u89D2\u5EA6(X)]<\u5F53\u524D UCS>");
41140
+ prKeyword.clearLastInputPoint();
41141
+ _context2.next = 7;
41142
+ return prKeyword.go();
41143
+ case 7:
41144
+ ret = prKeyword.getStatus();
41145
+ if (!(ret === MrxDbgUiPrBaseReturn.kNone || prKeyword.isKeyWordPicked("C"))) {
41146
+ _context2.next = 16;
41147
+ break;
41148
+ }
41149
+ ucsMatrix = mxcad.database.ucsMatrix;
41150
+ vec = McGeVector3d.kXAxis.clone().transformBy(ucsMatrix);
41151
+ dAng2 = vec.angleTo2(McGeVector3d.kXAxis, McGeVector3d.kNegateZAxis);
41152
+ dAng2 = normalizeAngle(dAng2);
41153
+ mxcad.zoomAngle(dAng2);
41154
+ MxFun.acutPrintf("\n \u89C6\u533A\u65CB\u8F6C\u6210\u529F,\u89D2\u5EA6 = " + (dAng2 * 180 / Math.PI).toFixed(2) + " \u5EA6");
41155
+ return _context2.abrupt("return");
41156
+ case 16:
41157
+ if (!(ret !== MrxDbgUiPrBaseReturn.kOk && ret !== MrxDbgUiPrBaseReturn.kKeyWord)) {
41158
+ _context2.next = 18;
41159
+ break;
41160
+ }
41161
+ return _context2.abrupt("return");
41162
+ case 18:
41163
+ dAng = 0;
41164
+ if (!prKeyword.isKeyWordPicked("W")) {
41165
+ _context2.next = 23;
41166
+ break;
41167
+ }
41168
+ dAng = 0;
41169
+ _context2.next = 50;
41170
+ break;
41171
+ case 23:
41172
+ if (!prKeyword.isKeyWordPicked("A")) {
41173
+ _context2.next = 36;
41174
+ break;
41175
+ }
41176
+ getAngle = new MxCADUiPrAngle();
41177
+ getAngle.setMessage("\u8F93\u5165\u89C6\u533A\u65CB\u8F6C\u89D2\u5EA6");
41178
+ _context2.next = 28;
41179
+ return getAngle.go();
41180
+ case 28:
41181
+ _context2.t0 = _context2.sent;
41182
+ if (!(_context2.t0 !== null)) {
41183
+ _context2.next = 33;
41184
+ break;
41185
+ }
41186
+ dAng = -getAngle.value();
41187
+ _context2.next = 34;
41188
+ break;
41189
+ case 33:
41190
+ return _context2.abrupt("return");
41191
+ case 34:
41192
+ _context2.next = 50;
41193
+ break;
41194
+ case 36:
41195
+ if (!prKeyword.isKeyWordPicked("X")) {
41196
+ _context2.next = 49;
41197
+ break;
41198
+ }
41199
+ _getAngle = new MxCADUiPrAngle();
41200
+ _getAngle.setMessage("\u8F93\u5165\u89C6\u533A\u65CB\u8F6C\u89D2\u5EA6");
41201
+ _context2.next = 41;
41202
+ return _getAngle.go();
41203
+ case 41:
41204
+ _context2.t1 = _context2.sent;
41205
+ if (!(_context2.t1 !== null)) {
41206
+ _context2.next = 46;
41207
+ break;
41208
+ }
41209
+ dAng = mxcad.mxdraw.getViewAngle() - _getAngle.value();
41210
+ _context2.next = 47;
41211
+ break;
41212
+ case 46:
41213
+ return _context2.abrupt("return");
41214
+ case 47:
41215
+ _context2.next = 50;
41216
+ break;
41217
+ case 49:
41218
+ return _context2.abrupt("return");
41219
+ case 50:
41220
+ dAng = normalizeAngle(dAng);
41221
+ mxcad.zoomAngle(dAng);
41222
+ MxFun.acutPrintf("\n \u89C6\u533A\u65CB\u8F6C\u6210\u529F,\u89D2\u5EA6 = " + (dAng * 180 / Math.PI).toFixed(2) + " \u5EA6");
41223
+ case 53:
41224
+ case "end":
41225
+ return _context2.stop();
41226
+ }
41227
+ }, _callee2);
41228
+ }));
41229
+ return _Mx_Plan.apply(this, arguments);
41230
+ }
41231
+ function normalizeAngle(angle) {
41232
+ var twoPI = 2 * Math.PI;
41233
+ if (angle > twoPI) {
41234
+ angle = angle % twoPI;
41235
+ }
41236
+ if (angle < 0) {
41237
+ angle = angle % twoPI;
41238
+ angle = twoPI + angle;
41239
+ }
41240
+ if (Math.abs(angle - twoPI) < 1e-4) {
41241
+ angle = 0;
41242
+ }
41243
+ return angle;
41244
+ }
41245
+ function Mx_Ucs_ByObject(_x) {
41246
+ return _Mx_Ucs_ByObject.apply(this, arguments);
41247
+ }
41248
+ function _Mx_Ucs_ByObject() {
41249
+ _Mx_Ucs_ByObject = _asyncToGenerator(/*#__PURE__*/regenerator.mark(function _callee3(mxcad) {
41250
+ var getEnt, filter, id, curve, ptPick, onPtRet, onPt, vecRet, vec, ptsRet, pteRet, pts, pte, ptOrigin, directionVec, distToStart, distToEnd, dAng, ucsToWcsMat;
41251
+ return regenerator.wrap(function _callee3$(_context3) {
41252
+ while (1) switch (_context3.prev = _context3.next) {
41253
+ case 0:
41254
+ getEnt = new MxCADUiPrEntity();
41255
+ getEnt.setMessage("\n\u9009\u62E9\u5BF9\u9F50 UCS \u7684\u5BF9\u8C61:");
41256
+ filter = new MxCADResbuf();
41257
+ filter.AddMcDbEntityTypes("LINE,*POLYLINE,ARC");
41258
+ getEnt.setFilter(filter);
41259
+ _context3.next = 7;
41260
+ return getEnt.go();
41261
+ case 7:
41262
+ id = _context3.sent;
41263
+ if (!(getEnt.getStatus() !== MrxDbgUiPrBaseReturn.kOk)) {
41264
+ _context3.next = 10;
41265
+ break;
41266
+ }
41267
+ return _context3.abrupt("return");
41268
+ case 10:
41269
+ curve = id.getMcDbEntity();
41270
+ if (curve) {
41271
+ _context3.next = 14;
41272
+ break;
41273
+ }
41274
+ console.log("\u65E0\u6CD5\u83B7\u53D6\u66F2\u7EBF\u5BF9\u8C61");
41275
+ return _context3.abrupt("return");
41276
+ case 14:
41277
+ ptPick = getEnt.getDocPickPoint();
41278
+ if (ptPick) {
41279
+ _context3.next = 17;
41280
+ break;
41281
+ }
41282
+ return _context3.abrupt("return");
41283
+ case 17:
41284
+ onPtRet = curve.getClosestPointTo(ptPick, false);
41285
+ if (onPtRet.ret) {
41286
+ _context3.next = 20;
41287
+ break;
41288
+ }
41289
+ return _context3.abrupt("return");
41290
+ case 20:
41291
+ onPt = onPtRet.val;
41292
+ vecRet = curve.getFirstDeriv(onPt);
41293
+ if (vecRet.ret) {
41294
+ _context3.next = 24;
41295
+ break;
41296
+ }
41297
+ return _context3.abrupt("return");
41298
+ case 24:
41299
+ vec = vecRet.val;
41300
+ ptsRet = curve.getStartPoint();
41301
+ pteRet = curve.getEndPoint();
41302
+ if (!(!ptsRet.ret || !pteRet.ret)) {
41303
+ _context3.next = 29;
41304
+ break;
41305
+ }
41306
+ return _context3.abrupt("return");
41307
+ case 29:
41308
+ pts = ptsRet.val;
41309
+ pte = pteRet.val;
41310
+ ptOrigin = pts;
41311
+ directionVec = vec;
41312
+ distToStart = onPt.distanceTo(pts);
41313
+ distToEnd = onPt.distanceTo(pte);
41314
+ if (distToEnd < distToStart) {
41315
+ ptOrigin = pte;
41316
+ directionVec = new McGeVector3d(-vec.x, -vec.y, -vec.z);
41317
+ }
41318
+ dAng = directionVec.angleTo2(McGeVector3d.kXAxis, McGeVector3d.kNegateZAxis);
41319
+ ucsToWcsMat = new McGeMatrix3d();
41320
+ ucsToWcsMat.setToTranslation(new McGeVector3d(ptOrigin.x, ptOrigin.y, ptOrigin.z));
41321
+ ucsToWcsMat = ucsToWcsMat.postMultBy(new McGeMatrix3d().setToRotation(dAng, McGeVector3d.kZAxis, McGePoint3d.kOrigin));
41322
+ mxcad.database.ucsMatrix = ucsToWcsMat;
41323
+ MxFun.acutPrintf("\n UCS\u5DF2\u6839\u636E\u5BF9\u8C61\u5BF9\u9F50");
41324
+ case 42:
41325
+ case "end":
41326
+ return _context3.stop();
41327
+ }
41328
+ }, _callee3);
41329
+ }));
41330
+ return _Mx_Ucs_ByObject.apply(this, arguments);
41331
+ }
41332
+
40926
41333
  var material;
40927
41334
  function createThickLine(start, end) {
40928
41335
  var width = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : MxFun.viewCoordLong2Cad(4);
@@ -46217,6 +46624,7 @@ MxFun.on("init", function () {
46217
46624
  MxFun.addCommand("Mx_WindowZoom", Mx_WindowZoom);
46218
46625
  MxFun.addCommand("Mx_ZoomE", Mx_ZoomE);
46219
46626
  MxFun.addCommand("Mx_Plan90CW", Mx_Plan90CW);
46627
+ MxFun.addCommand("Mx_Plan", Mx_Plan);
46220
46628
  MxFun.addCommand("Mx_Offset", Mx_Offset);
46221
46629
  MxFun.addCommand("Mx_Regen", Mx_Regen);
46222
46630
  MxFun.addCommand("Mx_Mirror", Mx_Mirror, MxType.MxCommandFlag.MCRX_CMD_NO_CLEAR_SELECT);
@@ -46761,6 +47169,13 @@ MxFun.on("init", function () {
46761
47169
  MxFun.addCommand("Mx_Rectang", drawRectang);
46762
47170
  });
46763
47171
 
47172
+ function MxRegistCommand() {
47173
+ MxFun.addCommand("Mx_Ucs", Mx_Ucs);
47174
+ }
47175
+ MxFun.on("init", function () {
47176
+ MxRegistCommand();
47177
+ });
47178
+
46764
47179
  function b64Encode(str) {
46765
47180
  return btoa(unescape(encodeURIComponent(str)));
46766
47181
  }
@@ -104353,6 +104768,7 @@ const mxcad = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
104353
104768
  drawEllipticalArc,
104354
104769
  Mx_Erase,
104355
104770
  drawRectang,
104771
+ MxRegistCommand,
104356
104772
  MxMap,
104357
104773
  MxMapAddRasterTileLayer,
104358
104774
  MxMapAddGoogleCnLayer,
@@ -104365,4 +104781,4 @@ globalThis.Buffer = buffer$1.Buffer;
104365
104781
  globalThis.Buffer.alloc = buffer$1.Buffer.alloc;
104366
104782
  globalThis.Buffer.from = buffer$1.Buffer.from;
104367
104783
 
104368
- export { ColorIndexType, ColorMethod, DxfCode, FetchAttributes, IMcDbDwgFiler, IsZero, MLineJustificationType, McAppType, McCmColor, McDb, McDb2LineAngularDimension, McDbAlignedDimension, McDbArc, McDbAttribute, McDbAttributeDefinition, McDbBackgroundEntity, McDbBlockReference, McDbBlockTable, McDbBlockTableRecord, McDbCircle, McDbCurve, McDbCustomEntity, McDbDatabase, McDbDiametricDimension, McDbDictionary, McDbDimStyleTable, McDbDimStyleTableRecord, McDbDimension, McDbEllipse, McDbEntity, McDbGroup, McDbHatch$1 as McDbHatch, McDbLayerTable, McDbLayerTableRecord, McDbLine, McDbLinetypeTable, McDbLinetypeTableRecord, McDbMLine, McDbMText, McDbMxRegion, McDbObject, McDbObjectArray, McDbPoint, McDbPolyline, McDbProxyEntity, McDbRadialDimension, McDbRasterImage, McDbRasterImageDef, McDbRay, McDbRotatedDimension, McDbSpatialFilter, McDbSpline, McDbText, McDbTextStyleTable, McDbTextStyleTableRecord, McDbViewport, McDbWipeout, McDbXline, McDbXlsxTable, McDbXrecord, McGeBound, McGeDoubleArray, McGeLongArray, McGeMatrix3d, McGePoint3d, McGePoint3dArray, McGeStringArray, McGeVector3d, McObject, McObjectId, McObjectIdType, McObjectTempDraw, McRxObject, MxCADBaseCustomElement, MxCADBaseCustomText, MxCADCloneType, MxCADMText, MxCADPluginBase, MxCADPluginMapDefaultData, MxCADPluginSampleCode, MxCADResbuf, MxCADSelectionSet, MxCADSelectionSetStatus, MxCADTempForbiddenIntelliSelect, MxCADUiPrAngle, MxCADUiPrBase, MxCADUiPrDist, MxCADUiPrEntity, MxCADUiPrInt, MxCADUiPrKeyWord, MxCADUiPrPoint, MxCADUiPrPointTransform, MxCADUiPrString, MxCADUtility, MxCADUtilityClass, MxCADWorldDraw, MxCADWorldDrawType, MxCanvas2Image, MxCheckTheBrowser, MxCompare, MxCooperate, MxCoordConvert, MxCoordConvertType, MxCpp, MxCppType, MxMap, MxMapAddGoogleCnLayer, MxMapAddRasterTileLayer, MxModifyColor, MxPropertiesWindowCustom, MxPropertiesWindowCustomValue, MxPropertiesWindowCustomValueType, MxTIFFLoader, MxTools, Mx_About, Mx_Erase, TableRenderDirection, _ML_String, b64Decode, b64Encode, copyMcDbEntityProperties, crateHexString, createCursor, createMcCmColor, createMdGeLongLongArrayFormAryId, createMxCad, mxcad as default, downloadFile, downloadFileFromUrl, drawArc, drawCircle, drawEllipticalArc, drawLine, drawMText, drawPolyLine, drawPolygon, drawRectang, drawText, getColorUtils, getFileFromUrl, getFilterImp, getJsonFromUrl, loadMxCADassembly, mx_gcj02_To_gps84, mx_gps84_To_gcj02, postEmscriptenIndexedDBFile, postMemoryFile, saveAsFileDialog, setMcCmColor };
104784
+ export { ColorIndexType, ColorMethod, DxfCode, FetchAttributes, IMcDbDwgFiler, IsZero, MLineJustificationType, McAppType, McCmColor, McDb, McDb2LineAngularDimension, McDbAlignedDimension, McDbArc, McDbAttribute, McDbAttributeDefinition, McDbBackgroundEntity, McDbBlockReference, McDbBlockTable, McDbBlockTableRecord, McDbCircle, McDbCurve, McDbCustomEntity, McDbDatabase, McDbDiametricDimension, McDbDictionary, McDbDimStyleTable, McDbDimStyleTableRecord, McDbDimension, McDbEllipse, McDbEntity, McDbGroup, McDbHatch$1 as McDbHatch, McDbLayerTable, McDbLayerTableRecord, McDbLine, McDbLinetypeTable, McDbLinetypeTableRecord, McDbMLine, McDbMText, McDbMxRegion, McDbObject, McDbObjectArray, McDbPoint, McDbPolyline, McDbProxyEntity, McDbRadialDimension, McDbRasterImage, McDbRasterImageDef, McDbRay, McDbRotatedDimension, McDbSpatialFilter, McDbSpline, McDbText, McDbTextStyleTable, McDbTextStyleTableRecord, McDbViewport, McDbWipeout, McDbXline, McDbXlsxTable, McDbXrecord, McGeBound, McGeDoubleArray, McGeLongArray, McGeMatrix3d, McGePoint3d, McGePoint3dArray, McGeStringArray, McGeVector3d, McObject, McObjectId, McObjectIdType, McObjectTempDraw, McRxObject, MxCADBaseCustomElement, MxCADBaseCustomText, MxCADCloneType, MxCADMText, MxCADPluginBase, MxCADPluginMapDefaultData, MxCADPluginSampleCode, MxCADResbuf, MxCADSelectionSet, MxCADSelectionSetStatus, MxCADTempForbiddenIntelliSelect, MxCADUiPrAngle, MxCADUiPrBase, MxCADUiPrDist, MxCADUiPrEntity, MxCADUiPrInt, MxCADUiPrKeyWord, MxCADUiPrPoint, MxCADUiPrPointTransform, MxCADUiPrString, MxCADUtility, MxCADUtilityClass, MxCADWorldDraw, MxCADWorldDrawType, MxCanvas2Image, MxCheckTheBrowser, MxCompare, MxCooperate, MxCoordConvert, MxCoordConvertType, MxCpp, MxCppType, MxMap, MxMapAddGoogleCnLayer, MxMapAddRasterTileLayer, MxModifyColor, MxPropertiesWindowCustom, MxPropertiesWindowCustomValue, MxPropertiesWindowCustomValueType, MxRegistCommand, MxTIFFLoader, MxTools, Mx_About, Mx_Erase, TableRenderDirection, _ML_String, b64Decode, b64Encode, copyMcDbEntityProperties, crateHexString, createCursor, createMcCmColor, createMdGeLongLongArrayFormAryId, createMxCad, mxcad as default, downloadFile, downloadFileFromUrl, drawArc, drawCircle, drawEllipticalArc, drawLine, drawMText, drawPolyLine, drawPolygon, drawRectang, drawText, getColorUtils, getFileFromUrl, getFilterImp, getJsonFromUrl, loadMxCADassembly, mx_gcj02_To_gps84, mx_gps84_To_gcj02, postEmscriptenIndexedDBFile, postMemoryFile, saveAsFileDialog, setMcCmColor };