乐筑天下

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

如何实现交互式绘图

[复制链接]

2

主题

8

帖子

1

银币

初来乍到

Rank: 1

铜币
16
发表于 2006-5-15 15:19:00 | 显示全部楼层 |阅读模式
有两个问题,麻烦给以解释:
1。用vb控制出好的图,怎样用鼠标在cad中修改控制点后,其坐标实时反映到数据的变化里,有没可能在拖动直线的控制点之后,放松鼠标的同时,跳出对话框,进行值的输入,基本程序怎样实现?
2。如果图过长(比如公路走线图)而又不分幅,外图框怎样跟着加长,正好将线路图完全包裹在矩形框内,我分析有两个办法:1。我记得有个外包线的功能,可是不知怎样用程序实现;2。图框的横向x值用路线终点的值代替,而不是A3图幅的420,可是完全动态程序看起来会很麻烦
谢谢指导!
回复

使用道具 举报

1

主题

157

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
161
发表于 2006-5-15 16:13:00 | 显示全部楼层
1,你的说功能完全没有问题,做法如下:
    创建一个类模块(名称"Class1"),然后在声明段添加下面语句
   Public WithEvents Line As AcadLine
    然后在同一类模块中加入下面过程作为Modified事件触发器:
    Private Sub line_modified(ByVal pObject As AutoCAD.AcadObject)
         UserForm1.Show  '加载你自定义的窗体
    End Sub
    创建一个模块,写入下面的代码:
    Dim eventobj As New Class1
    Sub main()
    Dim line1 As AcadLine
    Dim startPoint(2) As Double, endPoint(2) As Double
    startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0
    endPoint(0) = 50: endPoint(1) = 50: endPoint(2) = 0
    Set line1 = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
    Set eventobj.Line = line1
    End Sub
代码写完了,末尾别忘了加上一个userform,运行一下就得到你的效果了

2,有了上面的程序,相信这个问题也好解决了吧
回复

使用道具 举报

2

主题

8

帖子

1

银币

初来乍到

Rank: 1

铜币
16
发表于 2006-5-20 01:49:00 | 显示全部楼层
说实话,不是太明白,因为一般CAD使用不都是对话框里做个拾取点,拾取实体,然后在返回对话框的过程么?您给我的这个类模块我试过了,可以跳出窗体,可是怎么显示那种人工拉线的功能呢?对于类模块的使用我还不是太熟悉,您多费心,给我解释下哈。
回复

使用道具 举报

1

主题

157

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
161
发表于 2006-5-20 08:27:00 | 显示全部楼层
To dynacy:
    你说的人工拉线的功能是指什么?我看你最开始发的帖子里没有说啊。。。
回复

使用道具 举报

2

主题

8

帖子

1

银币

初来乍到

Rank: 1

铜币
16
发表于 2006-5-23 10:46:00 | 显示全部楼层
其实我要实现的人工拉坡功能在CAD中就是在CAD中用线段连续画若干条,当点选线段的端控制点时,随着鼠标左键的释放,该端控制点移到新位置,同时它两边的线段也同时移到新位置,我画了个简图也许更容易明白,请您参阅。另外,线段的端点的坐标是通过vb程序读取access数据库得到的,有没有可能当鼠标拖动控制点到新位置时,该点的坐标在数据库的数值也在变(x表示公路里程,y表示公路高程),这个功能可能不太容易用语言写到通用,您看能不能给我个思路?当然您是高手,或许还真能写到通用程序呢

04defohbd1g.bmp

04defohbd1g.bmp
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 14:59 , Processed in 0.541560 second(s), 65 queries .

© 2020-2025 乐筑天下

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