civil3d开发使用鼠标滚轮控制缩放时出现仅调用两次的假象

工具简介

为了充分利用多屏,并且实现不绘制横断即可查看修改等功能,开发了civil3d道路模型修改工具。

问题描述及原因分析

其中,为实现使用滚轮缩放纵断,对纵断chart添加了MouseWheel事件。

在实现的过程中遇到个问题:轻轻滚动滚轮,MouseWheel事件调用一次,符合预期;滚轮滚动幅度大的情况下,只要超出了第一种情况的幅度,无论幅度多大,MouseWheel事件仅调用两次。

分析之后,原因是:由于MouseWheel事件中要从文档重新获取数据并重绘纵断,耗时较长,导致了重绘过程捕捉不到鼠标滚动事件,因此滚动幅度大的情况下,只能捕捉到始末两次。

 

解决办法

因为civil3d仍然是单线程(我对多线程也不熟),将耗时较小的用户缩放操作仍然放在MouseWheel事件,而将耗时较大的重绘操作放到MouseHover事件,取得了较为理想的效果

Civil 3D 是由 Autodesk 开发的一款面向土木工程和土地规划的软件。它提供了一系列功能强大的工具,用于设计、分析和文档化土地和基础设施项目。 要进行 Civil 3D 的二次开发,您可以使用 Autodesk 提供的开发环境和 API。具体来说,您可以使用以下方法来扩展和定制 Civil 3D 的功能: 1. .NET API:Civil 3D 提供了面向对象的 .NET API,可以使用 C# 或 VB.NET 等编程语言进行开发。您可以使用这些 API 访问和操作 Civil 3D 中的对象、属性和方法。 2. AutoLISP 和 Visual LISP:这些是针对 AutoCAD 平台的脚本语言,可以通过加载 LISP 文件来扩展 Civil 3D 的功能。您可以使用 AutoLISP 或 Visual LISP 脚本来自动执行特定的任务或创建自定义命令。 3. Dynamo:Dynamo 是一个开源的可视化编程工具,可以与 Civil 3D 集成。您可以使用 Dynamo 的节点和工作流来创建自定义脚本,以实现复杂的设计和分析操作。 4. 数据连接:Civil 3D 支持与外部数据源(如数据库、Web 服务等)进行连接和交互。您可以使用这些功能来集成其他系统或数据源,并在 Civil 3D 中进行数据交换和同步。 通过以上方法,您可以根据具体需求进行二次开发,例如创建自定义命令、自动化任务、数据导入导出、报表生成等。Autodesk 提供了大量的文档、示例代码和开发者社区,可以帮助您入门和解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值