乐筑天下

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

[求助]求助这样的功能用 VBA 怎么实现

[复制链接]

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-5-27 19:46:00 | 显示全部楼层 |阅读模式
这样的功能用 VBA 怎么实现
(defun c:as (/ ss ss1 ss2)
         (command "_.LINE" "0,0" "0,10" "")        ;画第一条线
         (setq ss (ssget "l"))                        ;取得最后一个对象
         (command "_.LINE" "0,10" "10,10" "")        ;画第二条线
         (setq ss1 (ssget "l"))                ;取得最后一个对象
         (command "_.LINE" "10,10" "0,0" "")        ;画第三条线
         (setq ss2 (ssget "l"))                ;取得最后一个对象
         (command "_.PEDIT" ss "Y" "J" ss ss1 ss2 "" "") ;串接
)
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-5-27 19:53:00 | 显示全部楼层
由顶点列表创建优化多段线。
参阅 | 示例
语法
RetVal = object.AddLightweightPolyline(VerticesList)
Object
ModelSpace 集合, PaperSpace 集合, Block
使用该方法的对象。
VerticesList
Variant[变体] (双精度数组)
指定多段线顶点的二维 OCS 坐标数组。至少需要两点(四个元素)以构成优化多段线。数组大小必须为2的倍数。
RetVal
LightweightPolyline 对象
新创建的 LightweightPolyline 对象。
说明
顶点是生成多段线的线段端点。要添加弧段,首先创建全部为直线段的多段线,然后为个别需要变为弧段的线段添加凸度。要为线段添加凸度值,可使用 SetBulge 方法。
多段线的标高将被设置为布局的当前标高。使用 ElevationModelspaceElevationPaperspace 属性可确定多段线的标高。
坐标可使用 TranslateCoordinates 方法在OCS坐标与其它坐标系统相互转换。
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-5-27 21:05:00 | 显示全部楼层
可是我对 VBA 一点都不懂,我现在需要一个这样的 VBA 程序,可以帮忙写一个吗
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-5-27 21:09:00 | 显示全部楼层
&ltRE class=Code>Sub Example_AddLightWeightPolyline()
    ' This example creates a lightweight polyline in model space.
   
    Dim plineObj As AcadLWPolyline
    Dim points(0 To 9) As Double
   
    ' Define the 2D polyline points
    points(0) = 1: points(1) = 1
    points(2) = 1: points(3) = 2
    points(4) = 2: points(5) = 2
    points(6) = 3: points(7) = 2
    points(8) = 4: points(9) = 4
        
    ' Create a lightweight Polyline object in model space
    Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
    ZoomAll
   
End Sub
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-5-27 21:46:00 | 显示全部楼层
谢谢!!!我看了一下,你的程序是用多义线画的吗?
我要用 pedit 串接起来的
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-5-27 21:51:00 | 显示全部楼层
有什么区别么?
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-5-27 22:45:00 | 显示全部楼层
有区别
我的思路是这样的,每画好一根线将线的实体名保存在一个变量里。供以后的程序调用,除了 PEDIT 外还有起它的
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-5-27 22:51:00 | 显示全部楼层
但是你的直线已经被串接了,还有保存的必要么?
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-5-27 23:02:00 | 显示全部楼层
我在串接之前可以用啊
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-5-27 23:19:00 | 显示全部楼层
Sub Test()
                         Dim pnt(2) As Double, dot(2) As Double
                         Dim pobj(2) As AcadLine
                         Dim CmdStr As String
                         dot(1) = 10
                         Set pobj(0) = ThisDrawing.ModelSpace.AddLine(pnt, dot)
                         pnt(0) = 10: pnt(1) = 10
                         Set pobj(1) = ThisDrawing.ModelSpace.AddLine(dot, pnt)
                         dot(1) = 0
                         Set pobj(2) = ThisDrawing.ModelSpace.AddLine(pnt, dot)
                         CmdStr = _
                                                                                         "_.Pedit" & vbCr & _
                                                                                         "(handent " & Chr(34) & pobj(0).Handle & Chr(34) & ")" & vbCr & _
                                                                                         "Y" & vbCr & "J" & vbCr & _
                                                                                         "(handent " & Chr(34) & pobj(0).Handle & Chr(34) & ")" & vbCr & _
                                                                                         "(handent " & Chr(34) & pobj(1).Handle & Chr(34) & ")" & vbCr & _
                                                                                         "(handent " & Chr(34) & pobj(2).Handle & Chr(34) & ")" & vbCr & _
                                                                                         vbCr & vbCr
                                                                                         
                         ThisDrawing.SendCommand CmdStr
End Sub
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 17:24 , Processed in 1.889737 second(s), 73 queries .

© 2020-2025 乐筑天下

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