vue2-tunnel-lining
Version:
A Vue2 component for tunnel lining design with MxCAD integration
118 lines (106 loc) • 3.82 kB
text/typescript
import { McGePoint3d, McObjectId } from "mxcad";
import { CxwDraw } from "../../TunnelCADFns/CxwDraw";
import { LinData } from "./LinData";
import { Setting } from "../../Setting/Setting";
import { MxFun } from "mxdraw";
import { Cad } from "./Cad"
export class LinDrawFzx {
/**
* 绘制辅助线:内轨顶面,线路中线、断面中线
*/
public static async DrawFzx_Dx(set: Setting) {
try {
console.log("Creating Fzx_dx with the following parameters:", set)
const IdCol: McObjectId[] = [];
const lts = 1;
console.log("🚀 开始绘制倒三角形辅助线 DrawFzx_Dx");
IdCol.push(await Cad.addTriangle(new McGePoint3d(0, 0, 0), 2));
IdCol.push(await CxwDraw.addText6P(new McGePoint3d(2, 0, 0), "内轨顶面", 3.5, 0, 0.7, 0));
IdCol.push(await CxwDraw.addLine3P(
new McGePoint3d(-LinData.b1_z, 0, 0),
new McGePoint3d(LinData.b1_y, 0, 0),
7
));
IdCol.push(await CxwDraw.addLine(
new McGePoint3d(0, -30, 0),
new McGePoint3d(0, LinData.H_ngToO1 + LinData.RadiusFourth1 + 3, 0),
7,
"CENTER",
5 / lts
));
if (LinData.b1_y !== LinData.b1_z) {
const midX = (LinData.b1_y - LinData.b1_z) / 2;
IdCol.push(await CxwDraw.addLine(
new McGePoint3d(midX, -30, 0),
new McGePoint3d(midX, LinData.H_ngToO1 + LinData.RadiusFourth1 + 3, 0),
7,
"CENTER",
5 / lts
));
}
if (LinData.b1_y > LinData.b1_z) {
IdCol.push(await CxwDraw.addMtext(
new McGePoint3d(LinData.O1.x - 3.5, LinData.O1.y + 35, 0),
"断 面 中 线",
3.5,
0.7,
1
));
IdCol.push(await CxwDraw.addMtext(
new McGePoint3d(LinData.O1.x + 1.0 + (LinData.b1_y - LinData.b1_z) / 2, LinData.O1.y + 35, 0),
"线 路 中 线",
3.5,
0.7,
1
));
} else {
IdCol.push(await CxwDraw.addMtext(
new McGePoint3d(LinData.O1.x + 1, LinData.O1.y + 35, 0),
"断 面 中 线",
3.5,
0.7,
1
));
IdCol.push(await CxwDraw.addMtext(
new McGePoint3d(LinData.O1.x - 3.5 + (LinData.b1_y - LinData.b1_z) / 2, LinData.O1.y + 35, 0),
"线 路 中 线",
3.5,
0.7,
1
));
}
set.ChenQi.LT.DicIdCol.set("FzxId", IdCol);
console.log("Creating successfully")
} catch (err) {
console.error("错误代码 1104 - DrawFzx_Dx 出错", err);
}
}
/**
* 坑道辅助线
*/
public static async DrawFzx_Fzkd(set: Setting) {
try {
const IdCol: McObjectId[] = [];
const lts = 1;
IdCol.push(await Cad.addTriangle(new McGePoint3d(0, 0, 0), 2));
IdCol.push(await CxwDraw.addText6P(new McGePoint3d(2, 0, 0), "坑底面", 3.5, 0, 0.7, 0));
IdCol.push(await CxwDraw.addLine(
new McGePoint3d(0, -30, 0),
new McGePoint3d(0, LinData.H_ngToO1 + LinData.RadiusFourth1 + 3, 0),
7,
"CENTER",
5 / lts
));
IdCol.push(await CxwDraw.addMtext(
new McGePoint3d(LinData.O1.x - 3.5, LinData.O1.y, 0),
"断 面 中 线",
3.5,
0.7,
1
));
set.ChenQi.LT.DicIdCol.set("FzxId", IdCol);
} catch (err) {
console.error("错误代码 1104 - DrawFzx_Fzkd 出错", err);
}
}
}