·
编程学习 ·
112728
弯管技术广泛应用于锅炉及压力容器,空调制造,汽车,航空航天等多种行业。管型的形状复杂多变
弯管工艺人员通常依据图纸输入关键点的坐标(XYZ坐标),然后生成可以由弯管机设备直接直接完成的
加工指令YBC数据
由于传统的二维显示界面很难在加工管型之前显示管材的逼真形状。为此,我开发出基于OPENGL的YBC管型预览控件BendPreviewCtrl.ocx,可以将YBC弯管指令直接预览出最后加工成型的弯子的3D
几何形状。
主要技术指标跟性能:
1. 由于架构是ActiveX控件所以很容易集成进VB,VC等开发环境中去;
2. 直接导入YBC文本文件,方便简单;
3. 采用3D特殊的显示效果,使三维管子非常逼真;
4. 可以用鼠标点中管子的任何部分,并返回选中的管子的信息;
5. 直管弯管用不同的颜色显示,一目了然;
6. 支持视图的平移旋转缩放等操作,可以从任何方位观察管子形状;
具体细节如下:
●逼真的3D渲染
使用自主3D显示算法,使管子3D成型效果非常逼真。
直管,弯管,以及余下的直管用不同颜色标识一目了然。
●支持管子的选中并返回选中的管子的信息
下图是用鼠标选中的管子用红色标识。
●YBC数据输入方便简单
下图BendPreviewCtrl.ocx导入的YBC文件,以文本内容做为交互:
:
●基于ActiveX的构架可以更容易集成
以下是在VB编程环境中的集成:
最稳妥方式是用os.path.getmtime()获取文件修改时间戳,与time.time()比较判断是否超7天;遍历需过滤子目录、隐藏文件及非日志后缀;删除前启用dry-run预览,捕获PermissionError和FileNotFoundError异常,逐个安全删除。 用os.path.get...
本文介绍如何在Polars中根据另一列的UTC偏移值(如-4、-5),为字符串日期时间列动态添加时区偏移,生成统一UTC时区的datetime列,全程使用原生表达式链,避免map_elements或逐行迭代。 本文介绍如何在polars中根据另一列的utc偏移值(如-4、-5),为字符串日期时间列动...
time.time_ns()返回自Unix纪元起的纳秒整数,转毫秒需用//1_000_000截断;它比time.time()更精确、无浮点误差,适用于高精度时间戳场景。 time.time_ns()返回的是纳秒,不是毫秒 直接调用time.time_ns()得到的是自Unix纪元以来的纳秒数(int...
必须先用pd.to_datetime()将时间列转为datetime64类型才能相减,否则报TypeError;结果为timedelta64[ns],需用.dt.days等accessor提取数值,注意空值和时区处理。 直接用pd.to_datetime()转再相减,别用字符串硬算 时间列是字符串时...
本文介绍在pywinauto(uia后端)中,当多个combobox缺乏唯一标识(如title、automationid)时,如何通过索引定位并验证目标下拉框,避免elementambiguouserror。 本文介绍在pywinauto(uia后端)中,当多个combobox缺乏唯一标识(如tit...
asyncio+ProtocolBuffers是最稳的起点:复用protoc序列化,专注异步通信层;需手动处理长度头防粘包,禁用time.sleep(),gRPC必须用grpc.aio模块并显式设超时。 asyncio+ProtocolBuffers是最稳的起点 直接用asyncio搭配protob...
Flask路由默认只响应GET,因@app.route()不指定methods参数时仅注册GET方法;若用POST等其他方法访问会返回405错误,需显式声明methods=['GET','POST']或使用@app.post()等专用装饰器。 为什么Flask路由默认只响应GET Flask的@ap...
带过期缓存应使用两个平行字典:_cache存值、_expires存过期时间戳;get()时先判键存在再比对时间,过期则删除并返回None,避免解包开销和逻辑耦合。 用dict+time.time()实现带过期的缓存,核心就一条:写入时记时间,读取时比时间 直接上手就能用,不需要额外依赖。关键不是“怎...