明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3131|回复: 5

[求助]关于批量打印图框排序问题

[复制链接]
发表于 2008-4-16 00:51:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2008-4-18 21:24:40 编辑

想做个能根据图框然后可以自动排序从上到下从左到右或从下到上从右到左进行批量打印的程序,下面是写到了读完各图框打印区坐标(LBpt(i)-RTpt(i))后如何进行二维排序的问题,不知各位高手门有没有什么好的方法对LBpt()根据X、Y值进行从左到右或从下到上从右到左进行排序的好方法呢?

Private Type pt
    X As Double
    Y As Double
End Type

Private Type pt
    X As Double
    Y As Double
End Type

Dim LBpt(),RTpt() As pt
Dim LBpttmp,RTpttmp As Variant
Dim Sset As AcadSelectionSet
Dim FilterType(5) As Integer
Dim FilterData(5) As Variant
Dim AcadEntity As AcadEntity
Dim num As Integer

FilterType(0) = -4
FilterData(0) = "<or"
FilterType(1) = 0
FilterData(1) = "Insert"
FilterType(2) = 0
FilterData(2) = "LWPOLYLINE"
FilterType(3) = 0
FilterData(3) = "POLYLINE"
FilterType(4) = -4
FilterData(4) = "or>"
FilterType(5) = 8
FilterData(5) = "图框"

Set Sset = ThisDrawing.SelectionSets.Add("sse1")
       
ThisDrawing.Utility.Prompt (vbCrLf & "请选择要打印的图框(要求图框为块或者多段线):")
       
Sset.SelectOnScreen FilterType, FilterData

For Each AcadEntity In Sset
     AcadEntity.GetBoundingBox LBpttmp, RTpttmp
 Num = Num + 1
 ReDim Preserve MinPoints(1 To Num)
 ReDim Preserve MaxPoints(1 To Num)
 LBpt(Num).X = LBpttmp(0)
 LBpt(Num).Y = LBpttmp(1)
 RTpt(Num).X = RTpttmp(0)
 RTpt(Num).Y = RTpttmp(1)   
Next

发表于 2008-4-17 10:39:00 | 显示全部楼层
这个还要什么好不好的方法的吗?自己编一段代码就能排出来吧?
 楼主| 发表于 2008-4-18 19:32:00 | 显示全部楼层

二楼的高手,就是因为不懂编这个排序的程度所以才说的啊,会编的话就不会在这里求助了啊

发表于 2008-4-18 21:46:00 | 显示全部楼层

考虑到坐标的误差,排序上还是要仔细想的。

但是多想就出来了,不过是x,y坐标的数字排序而已。

发表于 2008-4-24 17:17:00 | 显示全部楼层

最简单的冒泡法啊,分别对XY坐标排序就好了,比如先行后列的话,把每个图框的中点 没有脱离前后半个图框的作为一行处理就可以了。楼主的这个程序我都写好了,但是有一个问题无法解决,就是图幅问题——单位有两台打印机,要打A3的图纸的时候,他经常给用A4打印出来,用acaddoc.ActiveLayout.CanonicalMediaName ="A3"解决不了,好像是AutoCAD的bug,怎么设置都没有用,时而按A3打,时而按A4打,郁闷死了,怎么都找不到问题的症结所在!也希望高手指点一二。

发表于 2008-8-19 14:52:00 | 显示全部楼层
打印的这个问题,一般还是看图幅的,图幅如果超界的话,他肯定要按比他大的图幅来打
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 06:49 , Processed in 0.144785 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表