兰顿蚂蚁——CAD二次开发

效果如下:

cs 复制代码
    private static void OnTick(object sender, EventArgs e)
    {
        if (_currentStep >= _maxSteps)
        {
            Stop();
            return;
        }

        // 检查是否暂停
        if (_isPaused)
            return;

        Document doc = Application.DocumentManager.MdiActiveDocument;
        Database db = doc.Database;
        var ed = doc.Editor;

        using (doc.LockDocument())
        {
            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
                BlockTableRecord ms = (BlockTableRecord)tr.GetObject(
                    bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);

                // 第一步暂停逻辑:如果第一步还没完成且需要第一步暂停
                if (_pauseAtFirstStep && !_firstStepCompleted)
                {
                    // 只执行一步
                    StepAllAnts(tr, ms);
                    _currentStep++;
                    _firstStepCompleted = true;

                    // 立即暂停
                    _isPaused = true;

                    tr.Commit();
                    ed.UpdateScreen();

                    ed.WriteMessage("\n第一步完成,已暂停。按空格继续。");
                    return; // 直接返回,不再执行后面的代码
                }
                else
                {
                    // 正常执行多步
                    for (int i = 0; i < _stepsPerTick; i++)
                    {
                        if (_currentStep >= _maxSteps)
                            break;

                        StepAllAnts(tr, ms);
                        _currentStep++;
                    }

                    tr.Commit();
                }
            }
            ed.UpdateScreen();
        }
    }
相关推荐
cyforkk8 小时前
Spring AOP 进阶:揭秘 @annotation 参数绑定的底层逻辑
java·数据库·spring
2401_884970618 小时前
用Pygame开发你的第一个小游戏
jvm·数据库·python
麦聪聊数据8 小时前
快速将Oracle数据库发布为 API:使用 QuickAPI 实现 SQL2API
数据库·sql·低代码·oracle·restful
6+h8 小时前
【Redis】数据结构讲解
数据结构·数据库·redis
ID_180079054738 小时前
小红书笔记详情 API 接口系列 + 标准 JSON 返回参考(完整版)
数据库·笔记·json
wertyuytrewm8 小时前
用Python实现自动化的Web测试(Selenium)
jvm·数据库·python
我真会写代码9 小时前
Java事务核心原理与实战避坑指南
java·开发语言·数据库
Gauss松鼠会9 小时前
【GaussDB】GaussDB如何创建和管理序列、定时任务
数据库·性能优化·database·gaussdb
Forget_85509 小时前
RHEL——NoSQL集群技术
数据库·nosql
wertyuytrewm9 小时前
自动化与脚本
jvm·数据库·python