办理建设银行卡网站/关键词seo排名优化

办理建设银行卡网站,关键词seo排名优化,不忘初心 继续前进网站怎么做,做一个网站维护多少钱public class Demo{[CommandMethod("xx")]public void Demo1(){using var tr1 new DBTrans();var doc Application.DocumentManager.MdiActiveDocument; var db doc.Database;var ed doc.Editor;var 圆心 new Point3d(0, 0, 0); var 半径 10.0;using (var tr …

 public class Demo{[CommandMethod("xx")]public void Demo1(){using var tr1 = new DBTrans();var doc = Application.DocumentManager.MdiActiveDocument; var db = doc.Database;var ed = doc.Editor;var 圆心 = new Point3d(0, 0, 0); var 半径 = 10.0;using (var tr = db.TransactionManager.StartTransaction()){var bt = tr.GetObject(db.BlockTableId, OpenMode.ForWrite) as BlockTable;var ms = tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;var btr = new BlockTableRecord();btr.Name = "MyBlock";if (bt.Has("MyBlock")) {var bid = bt["MyBlock"];bid.EraseBlock();}var bkid = bt.Add(btr); tr.AddNewlyCreatedDBObject(btr, true);Circle cir = new Circle(Point3d.Origin, Vector3d.ZAxis, 1);cir.ColorIndex = 1;var id = btr.AppendEntity(cir); tr.AddNewlyCreatedDBObject(cir, true);Hatch hat = new Hatch();hat.ColorIndex = 1;hat.SetHatchPattern(HatchPatternType.CustomDefined, "SOLID");hat.AppendLoop(HatchLoopTypes.Default, [id]);hat.EvaluateHatch(true); btr.AppendEntity(hat);tr.AddNewlyCreatedDBObject(hat, true);var br = new BlockReference(圆心,bkid);br.ScaleFactors = new Scale3d(半径);ms.AppendEntity(br);tr.AddNewlyCreatedDBObject(br, true);tr.Commit();}}public Polyline 多段线圆(Point3d pt ,double 半径, int colorindex){Polyline pl = new Polyline();var p1 = new Point2d(pt.X - 半径, pt.Y);var p2 = new Point2d(pt.X + 半径, pt.Y);pl.AddVertexAt(0, p1, Math.Tan(Math.PI/4), 0, 0);pl.AddVertexAt(1, p2, Math.Tan(Math.PI / 4), 0, 0);pl.Closed = true;pl.ColorIndex = colorindex;return pl;}}
 public static bool EraseBlock(this ObjectId objId){Database db = HostApplicationServices.WorkingDatabase;bool isErase = false;try{using (Transaction trans = db.TransactionManager.StartTransaction()){BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);if (bt.Has(objId)){BlockTableRecord bEra = (BlockTableRecord)objId.GetObject(OpenMode.ForWrite);bEra.Erase();}trans.Commit();isErase = true;}return isErase;}catch (Exception){return isErase;throw;}}

网上

public class Demo
{
    [CommandMethod("xx")]
    public void Demo1()
    {
        var doc = Application.DocumentManager.MdiActiveDocument;
        var db = doc.Database;
        var ed = doc.Editor;

        // 获取用户输入
        var insertPointResult = ed.GetPoint("\n请指定插入点: ");
        if (insertPointResult.Status != PromptStatus.OK) return;
        Point3d 插入点 = insertPointResult.Value;

        var elevationResult = ed.GetDouble("\n请输入高程值: ");
        if (elevationResult.Status != PromptStatus.OK) return;
        double 高程值 = elevationResult.Value;

        double 半径 = 10.0; // 可改为用户输入

        using (var tr = db.TransactionManager.StartTransaction()) // 使用单一事务
        {
            var bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForWrite);
            var ms = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);

            // 块定义处理
            string 块名 = "ElevationBlock";
            if (bt.Has(块名))
            {
                // 彻底清除旧块定义及其参照
                var oldBtr = (BlockTableRecord)tr.GetObject(bt[块名], OpenMode.ForWrite);
                oldBtr.PurgeAll(); // 清除所有关联实体
                oldBtr.Erase(true);
            }

            var btr = new BlockTableRecord { Name = 块名 };
            bt.Add(btr);
            tr.AddNewlyCreatedDBObject(btr, true);

            // 创建图形
            Circle cir = new Circle(Point3d.Origin, Vector3d.ZAxis, 1);
            cir.ColorIndex = 1;
            btr.AppendEntity(cir);
            tr.AddNewlyCreatedDBObject(cir, true);

            // 创建属性定义(动态计算位置)
            AttributeDefinition attDef = new AttributeDefinition
            {
                Position = new Point3d(1.5 * 半径, 0, 0), // 根据半径调整初始位置
                Prompt = "高程值",
                Tag = "ELEVATION",
                TextString = 高程值.ToString("0.00"),
                Height = 0.2 * 半径, // 文字高度与半径关联
                WidthFactor = 0.8,
                Justify = AttachmentPoint.MiddleLeft,
                ColorIndex = 1
            };
            btr.AppendEntity(attDef);
            tr.AddNewlyCreatedDBObject(attDef, true);

            // 创建块参照
            BlockReference br = new BlockReference(插入点, btr.ObjectId);
            br.ScaleFactors = new Scale3d(半径); // 缩放因子控制整体尺寸

            // 添加属性引用
            br.AttributeCollection.AppendAttribute(
                new AttributeReference {
                    TextString = 高程值.ToString("0.00"),
                    Position = attDef.Position.TransformBy(br.BlockTransform) // 应用变换
                });

            ms.AppendEntity(br);
            tr.AddNewlyCreatedDBObject(br, true);

            tr.Commit();
        }
    }

    // 移除未使用的多段线方法(根据需求决定是否保留)
}

加入jig功能

public class Demo
{
    [CommandMethod("xx")]
    public void Demo1()
    {
        var doc = Application.DocumentManager.MdiActiveDocument;
        var db = doc.Database;
        var ed = doc.Editor;

        // 第一步:获取高程值
        var elevationResult = ed.GetDouble("\n请输入高程值: ");
        if (elevationResult.Status != PromptStatus.OK) return;
        double 高程值 = elevationResult.Value;

        // 第二步:创建块定义
        string 块名 = "ElevationBlock";
        ObjectId blockId;
        using (var tr = db.TransactionManager.StartTransaction())
        {
            var bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
            
            // 如果块不存在则创建
            if (!bt.Has(块名))
            {
                bt.UpgradeOpen();
                var btr = new BlockTableRecord { Name = 块名 };

                // 创建圆形(基准尺寸为1单位)
                var cir = new Circle(Point3d.Origin, Vector3d.ZAxis, 1);
                cir.ColorIndex = 1;
                btr.AppendEntity(cir);
                tr.AddNewlyCreatedDBObject(cir, true);

                // 创建属性定义
                var attDef = new AttributeDefinition
                {
                    Position = new Point3d(1.5, 0, 0),  // 相对位置
                    Tag = "ELEV",
                    Prompt = "高程值",
                    TextString = "0.00",
                    Height = 0.2,  // 基准文字高度
                    ColorIndex = 1,
                    Justify = AttachmentPoint.MiddleLeft
                };
                btr.AppendEntity(attDef);
                tr.AddNewlyCreatedDBObject(attDef, true);

                blockId = bt.Add(btr);
                tr.AddNewlyCreatedDBObject(btr, true);
            }
            else
            {
                blockId = bt[块名];
            }
            tr.Commit();
        }

        // 第三步:使用Jig交互式插入
        using (var tr = db.TransactionManager.StartTransaction())
        {
            var ms = (BlockTableRecord)tr.GetObject(
                SymbolUtilityServices.GetBlockModelSpaceId(db), 
                OpenMode.ForWrite);

            // 创建临时块参照
            var br = new BlockReference(Point3d.Origin, blockId)
            {
                ScaleFactors = new Scale3d(10) // 默认缩放因子
            };

            // 设置属性值
            var attCol = br.AttributeCollection;
            foreach (ObjectId attDefId in br.BlockTableRecord.GetObject<BlockTableRecord>())
            {
                if (attDefId.ObjectClass.DxfName == "ATTDEF")
                {
                    var attDef = tr.GetObject(attDefId, OpenMode.ForRead) as AttributeDefinition;
                    var attRef = new AttributeReference();
                    attRef.SetAttributeFromBlock(attDef, br.BlockTransform);
                    attRef.TextString = 高程值.ToString("0.00");
                    attCol.AppendAttribute(attRef);
                    tr.AddNewlyCreatedDBObject(attRef, true);
                }
            }

            // 启动拖动Jig
            var jig = new BlockJig(br, 高程值);
            var result = ed.Drag(jig);

            if (result.Status == PromptStatus.OK)
            {
                ms.AppendEntity(br);
                tr.AddNewlyCreatedDBObject(br, true);
                tr.Commit();
            }
            else
            {
                tr.Abort();
            }
        }
    }

    // Jig实现类
    public class BlockJig : EntityJig
    {
        private double _elevation;
        private Point3d _insertPoint;

        public BlockJig(BlockReference br, double elevation) : base(br)
        {
            _elevation = elevation;
            _insertPoint = br.Position;
        }

        protected override SamplerStatus Sampler(JigPrompts prompts)
        {
            var opts = new JigPromptPointOptions("\n指定插入点: ");
            opts.UserInputControls = UserInputControls.NullResponseAccepted;
            var res = prompts.AcquirePoint(opts);

            if (res.Status == PromptStatus.OK)
            {
                if (_insertPoint.DistanceTo(res.Value) < Tolerance.Global.EqualPoint)
                    return SamplerStatus.NoChange;
                
                _insertPoint = res.Value;
                return SamplerStatus.OK;
            }
            return SamplerStatus.Cancel;
        }

        protected override bool Update()
        {
            ((BlockReference)Entity).Position = _insertPoint;
            
            // 更新属性位置
            var tr = Entity.Database.TransactionManager.TopTransaction;
            foreach (ObjectId attId in ((BlockReference)Entity).AttributeCollection)
            {
                var attRef = tr.GetObject(attId, OpenMode.ForWrite) as AttributeReference;
                attRef.Position = attRef.Position.TransformBy(
                    Matrix3d.Displacement(_insertPoint - Point3d.Origin));
            }
            return true;
        }
    }
}

封装jig

using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.GraphicsInterface;
using System.Collections.Generic;

public static class EntityJigger
{
    /// <summary>
    /// 交互式拖动插入多个实体
    /// </summary>
    /// <param name="entities">要插入的实体列表(建议使用未添加到数据库的副本)</param>
    /// <param name="basePoint">实体组合的基准点</param>
    /// <returns>最终的插入点(如果取消返回null)</returns>
    public static Point3d? DragEntities(List<Entity> entities, Point3d basePoint)
    {
        var doc = Application.DocumentManager.MdiActiveDocument;
        var db = doc.Database;
        var ed = doc.Editor;

        using (var tr = db.TransactionManager.StartTransaction())
        {
            try
            {
                // 创建临时实体副本
                var tempEntities = new List<Entity>();
                foreach (var ent in entities)
                {
                    var clone = ent.Clone() as Entity;
                    clone.TransformBy(Matrix3d.Displacement(basePoint.GetVectorTo(Point3d.Origin)));
                    tempEntities.Add(clone);
                }

                // 创建Jig实例
                var jig = new MultiEntityJig(tempEntities, basePoint);
                var result = ed.Drag(jig);

                if (result.Status == PromptStatus.OK)
                {
                    // 正式添加实体到模型空间
                    var ms = (BlockTableRecord)tr.GetObject(
                        SymbolUtilityServices.GetBlockModelSpaceId(db),
                        OpenMode.ForWrite);

                    foreach (var ent in tempEntities)
                    {
                        ms.AppendEntity(ent);
                        tr.AddNewlyCreatedDBObject(ent, true);
                    }

                    tr.Commit();
                    return jig.InsertPoint;
                }
                tr.Abort();
                return null;
            }
            catch
            {
                tr.Abort();
                throw;
            }
        }
    }

    /// <summary>
    /// 多实体拖动Jig实现
    /// </summary>
    private class MultiEntityJig : DrawJig
    {
        private readonly List<Entity> _entities;
        private Point3d _basePoint;
        private Point3d _insertPoint;

        public Point3d InsertPoint => _insertPoint;

        public MultiEntityJig(List<Entity> entities, Point3d basePoint)
        {
            _entities = entities;
            _basePoint = basePoint;
            _insertPoint = basePoint;
        }

        protected override SamplerStatus Sampler(JigPrompts prompts)
        {
            var opts = new JigPromptPointOptions("\n指定插入点: ")
            {
                UserInputControls = UserInputControls.Accept3dCoordinates |
                                  UserInputControls.NoZeroResponse |
                                  UserInputControls.NoNegativeResponse
            };

            var result = prompts.AcquirePoint(opts);
            if (result.Value.DistanceTo(_insertPoint) < Tolerance.Global.EqualPoint)
                return SamplerStatus.NoChange;

            _insertPoint = result.Value;
            return SamplerStatus.OK;
        }

        protected override bool WorldDraw(WorldDraw draw)
        {
            // 计算位移矩阵
            var vector = _basePoint.GetVectorTo(_insertPoint);
            var matrix = Matrix3d.Displacement(vector);

            // 绘制所有临时实体
            foreach (var ent in _entities)
            {
                draw.Geometry.Draw(ent);
                ent.TransformBy(matrix);
            }
            return true;
        }
    }
}

 

[CommandMethod("testJig")]

public void TestJigCommand()

{

    var doc = Application.DocumentManager.MdiActiveDocument;

    var db = doc.Database;

    var ed = doc.Editor;

 

    // 创建要插入的实体集合

    var entities = new List<Entity>();

    

    // 创建圆形(基准位置在原点)

    var circle = new Circle(Point3d.Origin, Vector3d.ZAxis, 5);

    circle.ColorIndex = 1;

    entities.Add(circle);

 

    // 创建单行文字

    var text = new DBText

    {

        Position = new Point3d(8, 0, 0),

        TextString = "高程值",

        Height = 2,

        ColorIndex = 2,

        Justify = AttachmentPoint.MiddleLeft

    };

    entities.Add(text);

 

    // 设置基准点(通常取组合的中心点)

    var basePoint = new Point3d(0, 0, 0);

 

    // 调用Jig进行拖动插入

    var resultPoint = EntityJigger.DragEntities(entities, basePoint);

 

    if (resultPoint.HasValue)

    {

        ed.WriteMessage($"\n插入点坐标:{resultPoint.Value}");

    }

}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

04 单目标定实战示例

看文本文,您将获得以下技能: 1:使用opencv进行相机单目标定实战 2:标定结果参数含义和数值分析 3:Python绘制各标定板姿态,查看图像采集多样性 4:如果相机画幅旋转90,标定输入参数该如何设置? 5:图像尺寸缩放,标定结果输出有何影响? 6:单目标定结果应用类别…

DevEco Studio编辑器的使用-代码code Linter检查

Code Linter代码检查 Code Linter针对ArkTS/TS代码进行最佳实践/编程规范方面的检查。检查规则支持配置&#xff0c;配置方式请参考配置代码检查规则。 开发者可根据扫描结果中告警提示手工修复代码缺陷&#xff0c;或者执行一键式自动修复&#xff0c;在代码开发阶段&#x…

wokwi arduino mega 2560 - 模数与数模转换AD和DA

截图&#xff1a; 20.53 黄灯灭 不报警 205.77 黄灯亮 报警 链接&#xff1a; https://wokwi.com/projects/415345595312267265 代码&#xff1a; 详细注释版&#xff1a;AD和I2C仿真实验案例程序 cpp #include <LiquidCrystal_I2C.h>// 定义I2C地址和LCD的行列数 #de…

虚拟机(一):Java 篇

虚拟机&#xff08;一&#xff09;&#xff1a;Java 篇 虚拟机&#xff08;二&#xff09;&#xff1a;Android 篇 架构 运行时数据区&#xff1a; 栈&#xff1a; 堆&#xff1a; 堆&#xff1a;通过new创建的对象都在堆中分配。OutOfMemoryError TLAB(Thread Local All…

硬件基础--14_电功率

电功率 电功率:指电流在单位时间内做的功(表示用电器消耗电能快慢的一个物理量)。 单位:瓦特(W)&#xff0c;简称瓦。 公式:PUI(U为电压&#xff0c;单位为V&#xff0c;i为电流&#xff0c;单位为A&#xff0c;P为电功率&#xff0c;单位为W)。 单位换算:进位为1000&#xff…

更高的效率——MyBatis-plus

一、什么是MyBatis-plus&#xff1f; MyBatis-plus是MyBatis的增强工具&#xff0c;在MyBatis基础上只做增强不做改变&#xff0c;可以简化基础的CRUD操作&#xff08;通过继承 BaseMapper 接口可直接使用预定义的增删改查方法&#xff09; 二、MyBatis-plus快速入门 2.1 准备…

【算法基础】递归与递推

目录 递归实现指数型枚举 题目 算法解析 递归实现排列型枚举 题目 算法解析 费解的开关 题目 算法解析 递归实现组合型枚举 题目 算法解析 带分数 题目 算法解析 飞行员兄弟 题目 算法解析 翻硬币 题目 算法解析 递归实现指数型枚举 题目 算法…

Java 大视界 -- Java 大数据在智慧矿山设备故障预测与预防性维护中的技术实现(163)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

综合实验一

实验拓扑图&#xff1a; 实验要求&#xff1a; 1,内网IP地址使用172.16.0.0/16分配 2,SW1和SW2之间互为备份 3,VRRP/STP/VLAN/Eth-trunk均使用 4,所有PC均通过DHCP获取IP地址 5,ISP只能配置IP地址 6,所有电脑可以正常访问ISP路由器环回 实验步骤&#xff1a; 步骤1&…

snort检测端口扫描工具

前面两篇文章介绍了snort3相关知识和Ubuntu上的安装配置Ubuntu22.04上Snort3的安装与基本配置 -CSDN博客 和Snort规则定义并进行的简单的测试Snort规则定义与测试 -CSDN博客&#xff0c;接下来我将介绍如何编写一个简单的检测端口扫描的规则进行检测 一、实验环境 攻击机&…

【行测】资料分析

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;读不在三更五鼓&#xff0c;功只怕一曝十寒。 > 目标&#xff1a;掌握 资料分析 基本题型&#xff0c;并能运用到例题中。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! …

工地扬尘监测仪:守护蓝天白云的重要工具

在城市化进程加速推进的背景下&#xff0c;建筑工地数量呈现持续增长态势&#xff0c;扬尘污染问题亦愈发显著。扬尘不仅对空气质量造成负面影响&#xff0c;更对周边居民的健康状况及生活质量构成威胁。在此情形下&#xff0c;工地扬尘监测仪作为建筑工地环境管理中不可或缺的…

Windows10 下QT社区版的安装记录

0. 介绍 踩了一些坑&#xff0c;记录一下&#xff0c;主要是镜像源的问题。 1. 安装 首先你先要在qt官网上有一个自己的账号。 然后点右上角的下载 打开后&#xff0c;我们需要选择社区版本&#xff1b;如果选择直接下载的话&#xff0c;出来的就是商业版本。 点开后&…

VS Code C/C++项目设置launch.json中的environment参数解决支持库路径问题

问题描述 Windows 11 VS Code C/C 开发环境搭建分别写了c和cpp两个示例代码&#xff0c;在运行过程中c代码没有发现问题&#xff08;可能简单&#xff0c;没有用到太多支持&#xff09;&#xff0c;但使用了stl的cpp代码并没有运行出来&#xff0c;如下图&#xff1a; 出问题…

随机2级域名引导页HTML源码

源码介绍 随机2级域名引导页HTML源码,每次点进去都随机一个域名前缀。 修改跳转域名在 350 行代码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行 效果预览 源码免费获取 随机2级域名引导页…

Nginx — nginx.pid打开失败及失效的解决方案

1、场景一&#xff1a;nginx.pid文件或者目录不存在 1.1、报错详情 [rootmaster conf]# ../sbin/nginx -s reload nginx: [error] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory) #nginx.pid文件或目录不存在。 原因&#xff1a; 1、文件…

AireOS WLC安装License报错

1.概述 本文主要记录在AireOS的WLC上安装License错误的情况。License的类型也是传统的License&#xff0c;因为设备的型号已经EOL&#xff0c;相关的资料应该较少&#xff0c;这里进行可能问题的记录。 2.适用场景 型号&#xff1a;WLC2500&#xff0c;WLC5508 License类型…

利用 Excel 函数随机抽取(附示例)

RANDARRAY 是 Excel 365 和 Excel 2021 引入的一个函数&#xff0c;用于生成一个随机数数组。它的语法如下&#xff1a; RANDARRAY([rows], [columns], [min], [max], [whole_number])参数详解 rows&#xff08;可选&#xff09; 要生成的行数&#xff08;默认值为 1&#xff…

Python:爬虫概念与分类

网络请求&#xff1a; https://www.baidu.com url——统一资源定位符 请求过程&#xff1a; 客户端&#xff0c;指web浏览器向服务器发送请求 请求&#xff1a;请求网址(request url)&#xff1b;请求方法(request methods)&#xff1b;请求头(request header)&…

HO与OH差异之Navigation三

在上一篇内容中我们介绍了HO与OH差异之Navigator&#xff0c;我们也了解了Navigator的基本概念和大致了解了一下他的基础用法&#xff0c;既然谈到差异肯定就不止这两种差异&#xff0c;今天就让我们来了解第三种差异NavRouter&#xff0c;其中在HO中我们并没有这种路由方式但是…