明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1208|回复: 7

发一些基本的用法。

[复制链接]
发表于 2012-12-5 18:32:47 | 显示全部楼层 |阅读模式
1、利用pline线绘制箭头
Sub Example_AddLightWeightPolyline()
Dim plineObj As AcadLWPolyline
Dim points(0 To5) As Double
points(0) =0: points(1) = 0
points(2) = 100: points(3) =0
points(4) = 120: points(5) = 0

Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
Call plineObj.SetWidth(0, 1, 1) 
 Call plineObj.SetWidth(1, 4, 0) 
End Sub

 楼主| 发表于 2012-12-5 18:53:33 | 显示全部楼层
2、绘制已知线段的对称线。
Dim FstPnt As Variant
Dim SndPnt As Variant
dim pt1(0 to 2)  as double
dim pt2(0 to2)  as double

FstPnt = ThisDrawing.Utility.GetPoint(, "选取矩形第一角点:")
SndPnt = ThisDrawing.Utility.GetCorner(FstPnt, "选取矩形对角点:")
'画对角线
Dim plineObj1 As AcadLine
    Set plineObj1 = ThisDrawing.ModelSpace.AddLine(FstPnt, SndPnt)
pt1(0) = FstPnt(0): pt1(1) = SndPnt(1): pt1(2) = 0
pt2(0) = SndPnt(0): pt2(1) = FstPnt(1): pt2(2) = 0
Dim plineObj2 As AcadLine
    Set plineObj2 = ThisDrawing.ModelSpace.AddLine(pt1, pt2)
 楼主| 发表于 2012-12-5 18:58:49 | 显示全部楼层
3、在图上拾取斜线段的两个端点,求以此斜线段为对角线的矩形的左下角点。
Dim FstPnt As Variant
Dim SndPnt As Variant
dim pt(0 to 1)  as double
FstPnt = ThisDrawing.Utility.GetPoint(, "选取矩形第一角点:")
SndPnt = ThisDrawing.Utility.GetCorner(FstPnt, "选取矩形对角点:")
If FstPnt(0) > SndPnt(0) Then
pt(0) = SndPnt(0)
Else
pt(0) = FstPnt(0)
End If

If FstPnt(1) > SndPnt(1) Then
pt(1) = SndPnt(1)
Else
pt(1) = FstPnt(1)
End If

end sub
发表于 2012-12-8 22:46:09 | 显示全部楼层
嘿嘿~继续,关注中
发表于 2012-12-9 21:39:50 | 显示全部楼层
学习学习了,谢谢分享










69sodu.com 大周皇族
发表于 2012-12-10 19:11:40 | 显示全部楼层
学习一下。。。
 楼主| 发表于 2013-1-1 18:55:26 | 显示全部楼层
本帖最后由 wjl1014 于 2013-1-1 18:55 编辑

选择最后绘制的图形,并进行填充:
(setq la (entlast))
(command "_bhatch" "p" "ANSI31" "50" "0" "s" la "" "")

点评

如果最后一个图形它是一个文字或者一根直线等等呢?  发表于 2013-11-16 17:16
 楼主| 发表于 2013-1-29 12:06:34 | 显示全部楼层
本帖最后由 wjl1014 于 2013-1-29 12:07 编辑

利用entmake制作箭头:


(defun C:tt (/ pt1 pt2 pt3  ang)
  (setvar "CMDECHO" 0)
  (setvar "TEXTEVAL" 1)
  (setq pt1 (getpoint "\n指定起点->"))
  (setq pt2 (getpoint pt1 "\n指定终点->"))
  (setq ang (angle pt1 pt2))
  (setq dis (distance pt1 pt2))
  (setq pt3 (polar pt1  ang (* 0.8 dis)))

  (setq x1 (car pt1))
  (setq y1 (cadr pt1))
  (setq x2 (car pt2))
  (setq y2 (cadr pt2))
  (setq x3 (car pt3))
  (setq y3 (cadr pt3))
  (setq width1 (/ dis 50))
  (setq width2 (/ dis 10))

  (entmake
    (list
      '(0 . "lwpolyLINE")

    '(100 . "AcDbEntity")
    '(67 . 0)
    '(410 . "Model")
    '(100
      .
      "AcDbPolyline"
     )
    '(90 . 3)
    '(70 . 0)
    '(38 . 0.0)
    '(39 . 0.0)
    (cons 10 (list x1 y1))
    (cons 40  width1)
    (cons 41 width1)
    '(42 . 0.0)
      
    (cons 10 (list x3 y3))
    (cons 40 width2)
  '(41 . 0.0)
    '(42 . 0.0)
    (cons 10 (list x2 y2))
    '(40 . 0.0)
    '(41 . 0.0)
    '(42 . 0.0)
    '(210 0.0 0.0 1.0)
  )
)

(setvar "CMDECHO" 1)
  )

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

本版积分规则

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

GMT+8, 2024-11-25 15:40 , Processed in 0.167865 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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