明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 838|回复: 10

根据现有打开图层画出相应图层的直线

[复制链接]
发表于 2018-6-6 10:59 | 显示全部楼层 |阅读模式
5明经币
根据现有打开图层,画出相应图层的直线。
直线间距、长度不限。只要一一列出来就行。

附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

Sub 测试() Dim objLayer As AcadLayer Dim i As Integer Dim objLine As AcadLine Dim strPt(0 To 2) As Double Dim endPt(0 To 2) As Double Dim basePt As Variant basePt = ThisDrawing.Utility.GetPoint(, "拾取点") For Each objLayer In ThisDrawing.Layers If objLayer.LayerOn = True Then ThisDrawing.ActiveLayer = objLayer i = i + 1 ...
发表于 2018-6-6 10:59 | 显示全部楼层
本帖最后由 elepeipei 于 2018-6-13 12:05 编辑


Sub 测试()
    Dim objLayer As AcadLayer
    Dim i As Integer
    Dim objLine As AcadLine
    Dim strPt(0 To 2) As Double
    Dim endPt(0 To 2) As Double
    Dim basePt As Variant
    basePt = ThisDrawing.Utility.GetPoint(, "拾取点")
    For Each objLayer In ThisDrawing.Layers
        If objLayer.LayerOn = True Then
            ThisDrawing.ActiveLayer = objLayer
            i = i + 1
            strPt(0) = basePt(0) + 50 * i: strPt(1) = basePt(1): strPt(2) = 0
            endPt(0) = strPt(0): endPt(1) = strPt(1) + 300: endPt(2) = 0
            Set objLine = ThisDrawing.ModelSpace.AddLine(strPt, endPt)
        End If

    Next
End Sub
回复

使用道具 举报

发表于 2018-6-12 14:34 | 显示全部楼层
这个解决了吗
回复

使用道具 举报

 楼主| 发表于 2018-6-12 14:38 | 显示全部楼层

没有。
期待高手出手。
回复

使用道具 举报

发表于 2018-6-12 15:37 | 显示全部楼层
Sub 测试()
    Dim objLayer As AcadLayer
    Dim i As Integer
    Dim objLine As AcadLine
   
    For Each objLayer In ThisDrawing.Layers
        ThisDrawing.ActiveLayer = objLayer
        i = i + 1
        Dim strPt(0 To 2) As Double
        Dim endPt(0 To 2) As Double
        strPt(0) = 50 * i: strPt(1) = 0: strPt(2) = 0
        endPt(0) = strPt(0): endPt(1) = 300: endPt(2) = 0
        Set objLine = ThisDrawing.ModelSpace.AddLine(strPt, endPt)
    Next

End Sub
回复

使用道具 举报

 楼主| 发表于 2018-6-13 08:50 | 显示全部楼层
本帖最后由 GamIng 于 2018-6-13 08:53 编辑
elepeipei 发表于 2018-6-12 15:37
Sub 测试()
    Dim objLayer As AcadLayer
    Dim i As Integer

多谢!问题1:已关闭图层依旧有画出直线;
问题2:放置位置可以自定么?

回复

使用道具 举报

发表于 2018-6-13 10:38 | 显示全部楼层
1,你可以加一个判断,关闭就不画
2,把起始点写成获取点
回复

使用道具 举报

 楼主| 发表于 2018-6-13 11:03 | 显示全部楼层
elepeipei 发表于 2018-6-13 10:38
1,你可以加一个判断,关闭就不画
2,把起始点写成获取点

我只会用lisp。
回复

使用道具 举报

 楼主| 发表于 2018-6-13 12:34 | 显示全部楼层
elepeipei 发表于 2018-6-13 11:44
Sub 测试()
    Dim objLayer As AcadLayer
    Dim i As Integer

多谢!
回复

使用道具 举报

发表于 2018-6-13 12:43 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 20:28 , Processed in 0.276399 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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