兰顿蚂蚁——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();
        }
    }
相关推荐
有味道的男人39 分钟前
对接亚马逊平台接口,商品全量信息一键抓取
数据库
Web极客码1 小时前
2026年Linux VPS安全加固清单:SSH、防火墙与审计就绪配置
运维·服务器·数据库
逻辑驱动的ken2 小时前
Java高频面试考点18
java·开发语言·数据库·算法·面试·职场和发展·哈希算法
qq_392690662 小时前
Redis怎样应对Redis集群整体宕机带来的雪崩
jvm·数据库·python
快乐非自愿3 小时前
Redis--SDS字符串与集合的底层实现原理
数据库·redis·缓存
这儿有一堆花3 小时前
住宅代理(Residential Proxy)技术指南
开发语言·数据库·php
茉莉玫瑰花茶4 小时前
LangChain 核心组件 [ 2 ]
java·数据库·langchain
存在的五月雨5 小时前
Mysql 索引的一些
数据库·mysql
黄俊懿5 小时前
MySQL主从复制:从“异步“到“GTID“,数据同步的进化之路
数据库·sql·mysql·oracle·架构·dba·db
看海的四叔6 小时前
【SQL】SQL-管好你的字符串
大数据·数据库·hive·sql·数据分析·字符串