小记
文章平均质量分 72
哈市雪花
图形几何、数据处理、并行计算相关研究和研发,公众号:geometrylib,欢迎交流
展开
-
BIM轻量化技术发展介绍
作为建设行业数字化发展的核心技术,BIM技术对促进行业数字化水平提升和高质量发展具有重要意义。原创 2024-09-12 18:48:40 · 309 阅读 · 0 评论 -
从线段中搜寻提取闭合轮廓(三)
做底层和数据的调试问题也是个麻烦事,如果没有方便的可视化工具辅助,那将令人感到痛苦,借助可视化的工具可以让我们高效、省心,进而心情舒畅,重要的是可以提高调试效率。当然可视化工具也分不同层次的,大致分为手动操作为主的、自动为主的两种,手动操作为主的也要区分工具准确性、易用性,如果碰到难用的也是经常令人心情烦躁,甚至破口大骂;而易用性较好的会比较省心,但由于其手动操作为主的特点,需要耗时耗力,也难以心情很舒畅。(中间吐槽省略......)原创 2024-09-11 17:43:14 · 547 阅读 · 0 评论 -
DWG转PDF字体研究记录
最近需要对PDF中的符合业务规则的文字进行提取,发现有些文字不是文字信息形式存储,而是polyline形式表达,意味着仅仅有形体上的表达,丢失了原本的文字信息。经过沟通得知,这些PDF是AutoCAD软件导出的,拿到原始dwg文件进行了测试和研究。原创 2024-06-20 11:28:59 · 1157 阅读 · 0 评论 -
VUE格式探究记录
vue格式为鹰图Intergraph SP3D格式,是私有格式。博主对vue格式的直接解析可行性进行了初步的探究,记录如下。原创 2024-05-12 11:00:33 · 681 阅读 · 1 评论 -
记录rapidjson写出json时发生截断问题的处理
rapidjson性能非常棒,在处理大数据量的情况下性能要远优与cjson,是读写json的最佳选择库之一。该库也是腾讯开源的库,很多国外的库也在使用,如ODA等;在处理一个大文件,转出json时发生了json被截断的情况,也没有报错,真是一时不知从何下手,那就调试吧~原创 2024-04-22 18:18:28 · 409 阅读 · 0 评论 -
C++正则表达式笔记
(2)C++正则匹配实现提取两个指定字符串之间的字符串。最近翻了翻正则表达式的一些资料,做个记录。(3)替换两个字符串之间所有出现的字符。(1)正则匹配两个字符之间的字符串。(1)正则匹配两个字符之间的字符串。3、正则表达式基础语法大全。2、正则表达式语法简介。原创 2024-02-21 10:35:33 · 596 阅读 · 0 评论 -
关于三维布尔运算的几点思考
三维布尔运算根据三维实体数据结构表达分为CSG布尔运算、Brep布尔运算、三角网格布尔运算等类型。这几种类型算法在不同情境下有不同的优势,根据情况进行选择。但这也不能作为随意选择方案的借口,在不分析实际情况下。CSG和BRep布尔运算能够保留原始几何拓扑信息,适用于各类设计编辑场景,如建模设计软件中。而三角网格布尔运算也是常见和常用的,由于一些因素,当前实体的表达方式就是三角面网格方式,也需要对这些实体进行编辑,这时候三角网格布尔运算是最佳选择方案。原创 2023-05-28 10:23:32 · 2636 阅读 · 0 评论 -
我的创作纪念日-哈市雪花
文章总是有意义的,是分享传播知识,也是记录自己技术成长的点滴,帮助别人,也方便自己原创 2023-04-12 18:43:33 · 1506 阅读 · 0 评论 -
navisworks获取元素稳定唯一ID方法研究
1. 前言模型中的构件理论上来说都需要有一个唯一且稳定的ID,如revit中有elementId、uniqueId,IFC中有guid,dwg中有entityId......navisworks中的元素是不是也应该有这样的唯一ID?2. 研究2.1. navisworks apimodelItem.GetHashCode()modelItem.InstanceHashCodemodelItem.InstanceGuid可直接在官方社区搜索相关问题:Navisworks API -原创 2021-11-21 16:35:13 · 1975 阅读 · 7 评论 -
点合并算法的思考
1.写在前面去年因为某项目遇到模型卡顿问题,分析原因发现是模型中点没有进行合并,故而设计了点合并的技术方案,由于某些原因该方案未能实施,仅仅是方案,放在技术方案堆里,以一篇文档形式。平时的积累尤其重要,尝试更优,加之日积月累,会有比较大的进展和进步,技术如此,工作也一样。平时面试偶尔也会以该题目为背景问一下面试者,看看思路怎样,有想法还不错的,也有不知所措的...好了,闲扯到这里,开始吧。2.思路2.1.方案一ifcOpenShell是将点的hash作为key,建立map,map&l原创 2021-09-13 23:07:13 · 1466 阅读 · 0 评论 -
关于控制程序内存的几点思考
写在前面 控制系统内存是常见的一个话题,一般三维设计软件内存控制的普遍较好,当然一方面是开发时间较长,投入较多,当然另一方面也是相应的开发团队技术经验较丰富,有较好的系统架构和内存管理机制。当然也会有一些软件或产品内存控制的不好,用户使用体验较差。 博主混迹于CSDN已有数年,也有一些经验,适逢周末惬意,闲暇时光中进行一些总结记录以供自己和需要的人参考。思考系统逻辑较复杂,运行时内存占用较高且不稳定,该怎么办?博主认为所谓系统逻辑复杂本是个伪概念,一个系统确实有...原创 2021-08-22 17:21:57 · 917 阅读 · 0 评论 -
记录Camtasia剪辑视频操作
1. 写在前面由于实际需要,需要剪辑视频,真是得各种为了生计的技艺都得略知一二,想起前段时间还给破解重置了我那破旧的笔记本密码~真是一言难尽。不过说实话,初始不知工具便,熟知才知是真香。很方便,提高工作效率和质量。本文记录自己使用Camtasia软件来分隔剪辑视频的操作,供自己和有需要的人参考。2. 正文2.1. 准备待分隔剪辑视频(以.mp4格式为例)、Camtasia 2018。2.2. 开始比如博主选择视频的 2min 23s到7min 29s ..原创 2021-06-06 13:41:36 · 1122 阅读 · 2 评论 -
猜想:string的compare是非线程安全的
写在前面之前碰到过map.find死循环的情况:记录使用map遇到的很奇怪的问题,map find()陷入死循环现在是同样的程序,也发生了程序“停滞”(即内存占用没有变化,CPU占用高,程序实际像死锁一样)!哎还是绕不开string的compare,无论是string本身的还是strcmp,而多线程情况下使用都可能会“死循环” “假死锁”,展开猜测string的compare(包括strcmp)是非线程安全的其他关于C++ stl string的线程安全性问题http://原创 2021-05-24 18:33:36 · 852 阅读 · 1 评论 -
zlib解压缩zip/gzip使用总结
写在前面zlib库很好用,包括一些前端/ios库都集成了该库用于解压缩相关,本文根据作者实际使用做个简单的总结。正文使用zlibwrap库进行解压缩,该库对zlib做了封装,提供简洁的接口BOOL ZipCompress(LPCTSTR lpszSourceFiles, LPCTSTR lpszDestFile, bool bUtf8 = false);BOOL ZipCompress(std::vector<LPCTSTR> lpszSourceFiles, LPCTST原创 2021-05-22 14:03:34 · 1811 阅读 · 0 评论 -
C++字符串转为大写/小写
说在前面最近紧急处理bug时候,想进行C++的字符串大小写转换,发现好像之前没有用到过?!,顺带说一下C#的是真的方便~,其实并不是没有,而是之前真的没有用过,那么需要用了,就查查吧,实践测试一下,有多种方法。正文有多种方法,可以使用C语言标准库函数toupper,tolower 以及对应的unicode版本 twoupper,twolower 可以使用C++标准库中的_strlwr_s, _strupr_s 以及对应的unicode版本 _wcslwr_s, _wcsupr_s 可原创 2021-05-22 13:45:54 · 7974 阅读 · 1 评论 -
混淆后导致Revit2021不能正常加载插件
1.问题用.NET Reactor混淆dll后导致Revit插件不能正常加载,好吧,问题发生了,那就先分析下吧;用相同的混淆设置,Revit2020的插件可以加载,那么初步判断是混淆设置的原因,继续验证猜想~不混淆dll,发现Revit2021可以正常加载dll,看来是混淆设置的问题,而且这个问题在Revit2021中是存在的,那么怎么解决?2.解决过程此过程记录博主分析解决该问题的过程,会涉及到一些知识点,如果读者时间有限,可以跳到解决方案一章尝试,如果问题还不能解决,则可参考该过原创 2021-03-21 22:01:44 · 2225 阅读 · 0 评论 -
cmd方式获取进程启动命令行commandline
1.问题一些场景下需要获取进程的详细信息,如命令行commandline等,该怎么操作?2.方案使用wmic获取 服务显示名 为 "notepad.exe" 的caption、commandline信息,wmic process where caption="notepad.exe" get caption,commandline /value显示详细信息也可以这样,process where name="notepad.exe" list full大家可能有疑问了.原创 2021-02-11 09:12:48 · 2932 阅读 · 0 评论 -
image.fromstream 参数无效原因分析及解决
1.问题最近由于后端接口更改,请求验证码会抛异常,具体就是 image.fromstream(stream)函数里,using (var streamSub = new MemoryStream(imageStream)){ pictureBox_Captcha.Image = Image.FromStream(streamSub);}经调试,构造stream对象的字节流如下,"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQ原创 2020-12-22 23:35:35 · 10303 阅读 · 0 评论 -
windows切换窗口到不同屏幕的快捷键
偶然按错键了,发现当前窗口漂移到另外一个屏幕上了~~~由此引发按键探索~shift+windows+左/右键:将当前活动窗口漂移(闪现)到左/右边屏幕;场景:想快速的移动屏幕; 远程连接电脑时快速的将另外一个屏幕上的窗口移动到当前看到的屏幕; shift+windows+上/下键:自己探索试试吧~;可以最小化当前窗口场景:最小化当前窗口;windows+左/右键:将当前窗口满布到左/右半屏;场景:需要左右对比效果时候; 需要左右平铺窗口,方便对对比效.原创 2020-12-19 22:33:22 · 39121 阅读 · 2 评论 -
c++读取文件字节数和源文件大小不一致情况分析及解决
1.问题最近在帮别人调试了一个问题:使用此方式获取文件大小,struct _stat info; _stat(filepath, &info); int size = info.st_size; 使用fopen方式获取文件内容, 最后发现获取的字节数和第一步取得的字节数不一致,相对要小一些!这是为什么呢?2.分析首先用软件打开源文件,发现是80个字节,和第一步获取的文件字节数一致,而第二步获取文件内容得到的字节数要少一些,记得是72个字节;那么问题应该出在了原创 2020-12-06 12:29:01 · 2255 阅读 · 0 评论 -
技能树总结
先简单总结下,后续整理。确定有很多东西可以开始做了,微信公众号,开源库;OCC 性能分析 props文件研究(已完成) GTest/GMock IFC Engine IFC Openshell .net wrapper(CLR/CLI) webassembly topopolygon算法 Delaunay三角剖分 布尔运算 点与轮廓关系 求面积 求法向 计算hash sqlite语法及优化 射线与包围盒交点 矩阵存储优化 尾递归 哈希表 概要设计怎么写 任务分解原创 2020-10-25 21:02:59 · 274 阅读 · 0 评论 -
error LNK2028: unresolved token (0A000570) 原因之一及解决方案
很久没有维护的一个库在重新编译时竟然release环境编译不过了,而debug环境可以编译过,对比了两个环境的差异,一开始没有发现什么异常的地方,抓耳挠腮之后,终于发现还是有不一样的地方的。更正之后解决。...原创 2020-09-08 11:17:10 · 1078 阅读 · 0 评论 -
Critical error detected 内存异常的一种原因
最近在探索应用webassembly技术,将之前项目的Typescript写的一个模块改为c/c++实现,编译为wasm使用,这个过程出现了很多坑,其中一个是 实现c/c++该模块时单元测试跑不过,抛异常:Critical error detected ****,将其他干扰因素筛除后,在单纯的环境中调试发现是由于在一个函数中同时使用了malloc和new导致的问题,将new改为malloc方式就可以了,具体为什么会这样,查了资料也没查到什么,如果你知道可以告诉我。...原创 2020-08-28 11:24:35 · 1632 阅读 · 0 评论 -
git常用命令整理(持续更新)
使用过SVN、sourceTree,sourceTree很好用。而现在又在用git bash,不得不说,命令行方式还是很舒服,将用的过程中整理记录的命令再次整理一篇博客,方便需要的人。常规操作:git init ----初始化仓库git remote add origin [远端仓库地址] ----绑定远端仓库git status ----查看状态git diff ----查看差异git add . ----更新改动内容git checkout -b [新分支名] ---...原创 2020-07-27 21:05:21 · 534 阅读 · 0 评论 -
Archicad二次开发-模型数据导出
最近在做AC轻量化导出的事情,可以说开始是焦头烂额,因为相关资料很少,怎么获取当前视图?啥玩意,这么成熟的产品肯定有接口啊?经常出现类似的场景~结合网上搜到的一些资料和自己探索的情况,简要总结下一、在哪里查找资料(1)安装完SDK后,在SDK安装路径下有Examples目录,里面有各种示例代码,很丰富,并且还有html文档,有接口的详细说明;自己开发过程中大部分的API都是直接或间接在实例中找到的;(2)bing搜索,说实话 对于AC二次开发相关知识,是难以搜到准确且丰富的内容的;(3).原创 2020-06-20 15:14:31 · 1399 阅读 · 0 评论 -
c++编译出现error LINK2019的原因之一
项目---》配置属性---》C/C++---》Language--》Treat WChar_t As Built in Type,改为是原创 2020-06-20 14:36:23 · 699 阅读 · 0 评论 -
[计算几何题目集锦]
其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中。之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码一片混...转载 2019-03-09 21:06:56 · 395 阅读 · 0 评论 -
【快速排序】快速排序与数学归纳法
public delegate bool CompareDelegate(HPoint2d point0, HPoint2d point1); public void QuikSort(List<HPoint2d> lstPoint, int indexS, int indexE, CompareDelegate compare) ...原创 2019-03-09 17:53:21 · 497 阅读 · 0 评论 -
[C#]重载了euqals()和getHashCode(),为什么作为dictionary的key时,containsKey()返回的是false
前两天遇到了一个问题,场景重现如下:当一个类作为key时,需重载Equals()和GetHashCode(),且尽量不要做更改其hashcode的操作,这样会导致dictionary找不到key。参考,https://stackoverflow.com/questions/17711195/what-can-cause-dictionary-containskeydiction...原创 2019-02-25 19:18:20 · 540 阅读 · 0 评论 -
WPF实现简单笑脸旋转动画
看到微博有人讨论用什么软件实现一个旋转笑脸动画,闲来无事,用WPF做了一下~1.在XAML中创建左眼、右眼、嘴三个路径元素注意:1)每个Path元素需设置RenderTransform和Data两个属性,RenderTransform方便在后台设置RotateTransform的Angle属性和动画关联,以达到旋转动画效果;Data属性控制Path元素的外观表现。2)XAML语法层级关系明确,创建...原创 2018-04-13 22:15:03 · 1259 阅读 · 0 评论