- 积分
- 5972
- 明经币
- 个
- 注册时间
- 2016-10-12
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 wang2006zhi 于 2025-2-14 12:05 编辑
 - /// <summary>
- /// 绘制方柱
- /// </summary>
- [CommandMethod("W_HZFZ")]
- public static void ColuDraw()
- {
- if (!Env.Editor.GetPoint(out Point3d point1, "选择方柱的第一个角点"))
- return;
- var pt1 = point1.Ucs2Wcs();
- using var tr = new DBTrans();
- var layerId = InfoDicLayer[ETypeName.砼柱].MakeLayer();
- var txtTypeId = MakeEntity.MakeTxtStyle();
- var pline = new Polyline();
- pline.SetDatabaseDefaults();
- pline.AddVertexAt(0, pt1.Point2d(), 0, 0, 0);
- pline.AddVertexAt(1, pt1.Point2d(), 0, 0, 0);
- pline.AddVertexAt(2, pt1.Point2d(), 0, 0, 0);
- pline.AddVertexAt(3, pt1.Point2d(), 0, 0, 0);
- pline.Closed = true;
- pline.ConstantWidth = 5;
- pline.LayerId = layerId;
- var dbtextTempX = new DBText();
- dbtextTempX.SetDatabaseDefaults();
- dbtextTempX.Height = AppX.InfoSysValue.基本字高 * AppX.InfoSysValue.制图系数 * 0.5;
- dbtextTempX.WidthFactor = 0.6;
- dbtextTempX.TextStyleId = txtTypeId;
- dbtextTempX.LayerId = layerId;
- var pt2 = new Point2d();
- using var jig1 = new JigEx((mpw, _) =>
- {
- var vec = mpw - pt1;
- var vecXn = vec.Convert2d().GetNormal();
- var length = vec.Length.ToRound(InfoSysValue.方柱模数);
- pt2 = pt1.Point2d() + length * vecXn;
- pline.SetPointAt(1, pt2);
- dbtextTempX.TextString = length.ToString("F3");
- dbtextTempX.Position = pt1 + 0.5 * vec;
- dbtextTempX.Rotation = vecXn.Angle.AngleFormat();
- });
- jig1.DatabaseEntityDraw(wd =>
- {
- wd.Geometry.Draw(pline);
- wd.Geometry.Draw(dbtextTempX);
- });
- jig1.SetOptions(pt1, msg: "\n 选择方柱的第二个点");
- var ppr1 = Env.Editor.Drag(jig1);
- if (ppr1.Status != PromptStatus.OK)
- return;
- var dbtextTempY = new DBText();
- dbtextTempY.SetDatabaseDefaults();
- dbtextTempY.Height = AppX.InfoSysValue.基本字高 * AppX.InfoSysValue.制图系数 * 0.5;
- dbtextTempY.WidthFactor = 0.6;
- dbtextTempY.TextStyleId = txtTypeId;
- dbtextTempY.LayerId = layerId;
- using var jig2 = new JigEx((mpw, _) =>
- {
- var ptFoot = mpw.GetFootPoint(pt1, pt2.Point3d());
- var vec = mpw - ptFoot;
- var vecYn = vec.Convert2d().GetNormal();
- var length = vec.Length.ToRound(InfoSysValue.方柱模数);
- pline.SetPointAt(2, pt2 + length * vecYn);
- pline.SetPointAt(3, pt1.Point2d() + length * vecYn);
- dbtextTempY.TextString = length.ToString("F3");
- dbtextTempY.Position = pt1 + 0.5 * vec;
- dbtextTempY.Rotation = vecYn.Angle.AngleFormat();
- });
- jig2.DatabaseEntityDraw(wd =>
- {
- wd.Geometry.Draw(pline);
- wd.Geometry.Draw(dbtextTempY);
- });
- jig2.SetOptions(pt2.Point3d(), msg: "\n 选择方柱的第三个点");
- var ppr2 = Env.Editor.Drag(jig2);
- if (ppr2.Status != PromptStatus.OK)
- return;
- tr.CurrentSpace.AddEntity(pline);
- }
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|