乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 83|回复: 5

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

[复制链接]

13

主题

20

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
72
发表于 2008-4-16 00:51:00 | 显示全部楼层 |阅读模式
想做个能根据图框然后可以自动排序从上到下从左到右或从下到上从右到左进行批量打印的程序,下面是写到了读完各图框打印区坐标(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) = ""
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
回复

使用道具 举报

11

主题

326

帖子

9

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

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

使用道具 举报

13

主题

20

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
72
发表于 2008-4-18 19:32:00 | 显示全部楼层
二楼的高手,就是因为不懂编这个排序的程度所以才说的啊,会编的话就不会在这里求助了啊
回复

使用道具 举报

20

主题

105

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2008-4-18 21:46:00 | 显示全部楼层
考虑到坐标的误差,排序上还是要仔细想的。
但是多想就出来了,不过是x,y坐标的数字排序而已。
回复

使用道具 举报

18

主题

34

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

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

使用道具 举报

0

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
2
发表于 2008-8-19 14:52:00 | 显示全部楼层
打印的这个问题,一般还是看图幅的,图幅如果超界的话,他肯定要按比他大的图幅来打
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 01:07 , Processed in 1.711020 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表