明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2594|回复: 8

选取直线裁剪

[复制链接]
发表于 2004-5-21 09:44:00 | 显示全部楼层 |阅读模式
有四条直线成井字放置


我现在先选取横放的两条直线放在objselectionset选择集里


在选取竖放的两条直线放在objselectionset1选择集里


请问这样选好了,怎么样得到四个相交的点,并把相交点之间的线段都剪切掉!


请写上求交,剪切代码,,或者哪里有相似的例子,谢谢

 楼主| 发表于 2004-5-22 12:39:00 | 显示全部楼层
为什么没有人发表一下啊!
发表于 2004-5-22 14:13:00 | 显示全部楼层
  1. Sub test()
  2.        Dim objselectionset As AcadSelectionSet
  3.        Set objselectionset = ThisDrawing.SelectionSets.Add("objselectionset")
  4.        Dim entobj(0) As AcadEntity
  5.        Set entobj(0) = ThisDrawing.ModelSpace(0)
  6.        objselectionset.AddItems entobj
  7.        Set entobj(0) = ThisDrawing.ModelSpace(1)
  8.        objselectionset.AddItems entobj
  9.        Dim objselectionset1 As AcadSelectionSet
  10.        Set objselectionset1 = ThisDrawing.SelectionSets.Add("objselectionset1")
  11.        Set entobj(0) = ThisDrawing.ModelSpace(2)
  12.        objselectionset1.AddItems entobj
  13.        Set entobj(0) = ThisDrawing.ModelSpace(3)
  14.        objselectionset1.AddItems entobj
  15.       
  16.        Dim entobj1 As AcadEntity
  17.        Dim entobj2 As AcadEntity
  18.        Dim pt As Variant
  19.        Dim lineobj As AcadLine
  20.        ' 处理水平的直线
  21.        For Each entobj1 In objselectionset
  22.                For Each entobj2 In objselectionset1
  23.                        Set lineobj = entobj1
  24.                        pt = entobj1.IntersectWith(entobj2, acExtendNone)
  25.                        If Sqr((pt(0) - lineobj.StartPoint(0)) ^ 2 + (pt(1) - lineobj.StartPoint(1)) ^ 2) _
  26.                            < Sqr((pt(0) - lineobj.EndPoint(0)) ^ 2 + (pt(1) - lineobj.EndPoint(1)) ^ 2) Then
  27.                                ThisDrawing.ModelSpace.AddLine lineobj.StartPoint, pt
  28.                        Else
  29.                                ThisDrawing.ModelSpace.AddLine pt, lineobj.EndPoint
  30.                        End If
  31.                Next
  32.        Next
  33.        ' 处理垂直的直线
  34.        For Each entobj1 In objselectionset1
  35.                For Each entobj2 In objselectionset
  36.                        Set lineobj = entobj1
  37.                        pt = entobj1.IntersectWith(entobj2, acExtendNone)
  38.                        If Sqr((pt(0) - lineobj.StartPoint(0)) ^ 2 + (pt(1) - lineobj.StartPoint(1)) ^ 2) _
  39.                            < Sqr((pt(0) - lineobj.EndPoint(0)) ^ 2 + (pt(1) - lineobj.EndPoint(1)) ^ 2) Then
  40.                                ThisDrawing.ModelSpace.AddLine lineobj.StartPoint, pt
  41.                        Else
  42.                                ThisDrawing.ModelSpace.AddLine pt, lineobj.EndPoint
  43.                        End If
  44.                Next
  45.        Next
  46.        ' 删除直线
  47.        For Each entobj1 In objselectionset
  48.                entobj1.Delete
  49.        Next
  50.        For Each entobj1 In objselectionset1
  51.                entobj1.Delete
  52.        Next
  53. End Sub
 楼主| 发表于 2004-5-22 18:04:00 | 显示全部楼层
谢谢
 楼主| 发表于 2004-5-23 10:51:00 | 显示全部楼层
谢谢斑竹,这个程序很好用!
在有一个简单的问题,就是怎么显示中文字 用thisdrawing.modelspace.addtecxt(text,ptinsert) text只能显示英文字符串,怎么才能显示中文

用这样的ThisDrawing.ActiveTextStyle.fontFile = _

" C:/Program Files/ACAD2000/Fonts/italic.shx"改吗?

还是用别的方法

发表于 2004-5-27 22:18:00 | 显示全部楼层
VBA]怎么用sendcommand来调用trim命令??


我要用sendcommand来调用trim命令来剪切圆角外的相交直线!怎么用!!在VB 中!!

本帖子中包含更多资源

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

x
发表于 2004-5-27 22:23:00 | 显示全部楼层
发表于 2004-5-27 22:42:00 | 显示全部楼层
"_.fillet" & vbCr & "r" & vbCr & "1" & vbCr & "( 是这个吗?发贴心情
Sub Test()
Dim ss As AcadSelectionSet
Set ss = ThisDrawing.ActiveSelectionSet
ss.Clear
ss.SelectOnScreen
ThisDrawing.SendCommand "_.fillet" & vbCr & "r" & vbCr & "1" & vbCr & "(handent " & Chr(34) & ss(0).Handle & Chr(34) & ")" & vbCr & "(handent " & Chr(34) & ss(1).Handle & Chr(34) & ")" & vbCr End Sub


"_.fillet" & vbCr & "r" & vbCr & "1" & vbCr & "这个中trim怎么用啊!我是不知道他的用法!有什么书可以参考!!!
发表于 2004-5-27 22:47:00 | 显示全部楼层
你敲个命令在命令行试试不就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-1 04:50 , Processed in 0.186300 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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