第一个图框块GetBoundingBox获得的坐标
803289.999954268--541273.365925417
832693.999954268--561712.731753247
第一个图框块为打印窗口后GetWindowToPlot获取坐标
654021.295610093--361267.136916942
683425.295610093--381706.502744772
第二个图框块GetBoundingBox获得的坐标
832693.999954268--541273.365925417
862097.999954267--561712.731753247
第二个图框块为打印窗口后GetWindowToPlot获取坐标
683425.295610093--361267.136916942
712910.295610093--381706.502744772
第三个图框块GetBoundingBox获得的坐标
862095.684084867--541273.365925417
891504.315823679--583575.467145161
第三个图框块为打印窗口后GetWindowToPlot获取坐标
712826.979740693--361268.746855386
742486.611479505--403567.628198242
第四个图框块GetBoundingBox获得的坐标
803289.999954268--494623.000097587
832693.999954268--515062.365925417
第四个图框块为打印窗口后GetWindowToPlot获取坐标
654021.295610093--314616.771215901
683427.611479613--335056.136916942
第五个图框块GetBoundingBox获得的坐标
832691.684084867--494623.000097587
862100.315823679--536925.101317331
第五个图框块为打印窗口后GetWindowToPlot获取坐标
683422.979740693--314618.381027555
712831.611479505--356917.262370412
数据分析的情况:
比例是一致的,1:1,只是原点不一致,具体如下:
X坐标 Y坐标 长(X2-X1) 高(Y2-Y1) 原点差值(XB-XP) 原点差值(YB-YP)
第一个图框块GetBoundingBox获得的坐标 左下角 803290 541273 29404 20439 149269 180006
右上角 832694 561713
第一个图框块为打印窗口后GetWindowToPlot获取坐标 左下角 654021 361267 29404 20439
右上角 683425 381707
第二个图框块GetBoundingBox获得的坐标 左下角 832694 541273 29404 20439 149269 180006
右上角 862098 561713
第二个图框块为打印窗口后GetWindowToPlot获取坐标 左下角 683425 361267 29485 20439
右上角 712910 381707
第三个图框块GetBoundingBox获得的坐标 左下角 862096 541273 29409 42302 149269 180005
右上角 891504 583575
第三个图框块为打印窗口后GetWindowToPlot获取坐标 左下角 712827 361269 29660 42299
右上角 742487 403568
第四个图框块GetBoundingBox获得的坐标 左下角 803290 494623 29404 20439 149269 180006
右上角 832694 515062
第四个图框块为打印窗口后GetWindowToPlot获取坐标 左下角 654021 314617 29406 20439
右上角 683428 335056
第五个图框块GetBoundingBox获得的坐标 左下角 832692 494623 29409 42302 149269 180005
右上角 862100 536925
第五个图框块为打印窗口后GetWindowToPlot获取坐标 左下角 683423 314618 29409 42299
右上角 712832 356917
X坐标Y坐标长(X2-X1)高(Y2-Y1)原点差值(XB-XP)原点差值(YB-YP)
第一个图框块GetBoundingBox获得的坐标左下角8032905412732940420439149269180006
右上角832694561713
第一个图框块为打印窗口后GetWindowToPlot获取坐标左下角6540213612672940420439
右上角683425381707
第二个图框块GetBoundingBox获得的坐标左下角8326945412732940420439149269180006
右上角862098561713
第二个图框块为打印窗口后GetWindowToPlot获取坐标左下角6834253612672948520439
右上角712910381707
第三个图框块GetBoundingBox获得的坐标左下角8620965412732940942302149269180005
右上角891504583575
第三个图框块为打印窗口后GetWindowToPlot获取坐标左下角7128273612692966042299
右上角742487403568
第四个图框块GetBoundingBox获得的坐标左下角8032904946232940420439149269180006
右上角832694515062
第四个图框块为打印窗口后GetWindowToPlot获取坐标左下角6540213146172940620439
右上角683428335056
第五个图框块GetBoundingBox获得的坐标左下角8326924946232940942302149269180005
右上角862100536925
第五个图框块为打印窗口后GetWindowToPlot获取坐标左下角6834233146182940942299
右上角712832356917
现在来看,很可能是CAD里面有2套坐标系导致的,或者是不同空间模式导致的。
搞定了 :lol
Dim Target As Variant
Target = cadDoc.GetVariable("target")
楼主厉害,谢谢分享 楚河 发表于 2022-11-11 16:44
我大概找到原因了,程序执行是正确的,错误的是块的左下角坐标和右上角坐标,不是模型空间的坐标,这是怎么 ...
图框的块确定是在模型空间吗?另外获得的坐标一般是相对UCS坐标系的,打印设置的坐标系是针对WCS坐标系的,需要一个转换代码,所以你这程序代码问题不大,但是有可能出现某些图纸文件用了ucs,图框的坐标不是wcs对应的。 chixun99 发表于 2022-11-12 19:46
图框的块确定是在模型空间吗?另外获得的坐标一般是相对UCS坐标系的,打印设置的坐标系是针对WCS坐标系的 ...
在模型空间,其他情况没遇到,暂时没考虑。 自己平时也用点vba,不过感觉楼主这个挺高深的
页:
1
[2]