明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1383|回复: 0

面域的三维旋转必须用lisp语句

[复制链接]
发表于 2008-12-17 13:46:00 | 显示全部楼层 |阅读模式
在用VBA时,使用以给定的面域绕轴创建旋转实体的Addrevolvesolid语句时,旋转成三维。
AxisPoint
Variant[变体] (三元素双精度数组); 仅用于输入
指定旋转轴起点的三维WCS坐标。  
AxisDir  (理角不透,旋转成形后,三维旋转体成变形)
Variant[变体] (三元素双精度数组); 仅用于输入
指定旋转轴方向的三维矢量。
解决这个问题只能lisp语句才能实现,原因何在
    gg = "(command ""Revolve"" qq """" ""o"" qqq """" )"
    ThisDrawing.SendCommand gg & vbCr
程序如下
  1. Sub Example_AddRevolvedSolid()
  2.     ' 该示例通过面域沿一个轴旋转以创建实体。
  3.     ' 面域是由一个弧和一根直线创建的。
  4.     Dim curves(0 To 1) As AcadEntity
  5.     ' 定义圆弧
  6.     Dim centerPoint(0 To 2) As Double
  7.     Dim radius As Double
  8.     Dim startAngle As Double
  9.     Dim endAngle As Double
  10.     centerPoint(0) = 5#: centerPoint(1) = 3#: centerPoint(2) = 0#
  11.     radius = 2#
  12.     startAngle = 0
  13.     endAngle = 3.141592
  14.     ' 定义旋转轴
  15.     Dim axisPt(0 To 2) As Double
  16.     Dim axisDir(0 To 2) As Double
  17.     Dim angle As Double
  18.    
  19.     Set curves(0) = ThisDrawing.ModelSpace.AddArc(centerPoint, radius, startAngle, endAngle)
  20.    
  21.     ' 定义直线
  22.     Set curves(1) = ThisDrawing.ModelSpace.AddLine(curves(0).StartPoint, curves(0).EndPoint)
  23.       
  24.     pp = curves(0).StartPoint
  25.     For ii = 0 To 0
  26.     axisPt(ii) = pp(ii)
  27.     Next ii
  28.     ppp = curves(0).EndPoint
  29.    
  30.    
  31.     ' 创建面域
  32.     Dim regionObj As Variant
  33.     regionObj = ThisDrawing.ModelSpace.AddRegion(curves)
  34.     tt = "(setq qq (handent """ & regionObj(0).Handle & """))"
  35.     ThisDrawing.SendCommand tt & vbCr
  36.    
  37.    
  38.     axisPt(0) = centerPoint(0): axisPt(1) = 0: axisPt(2) = 0
  39.    
  40.     axisDir(0) = centerPoint(0) + 2: axisDir(1) = 0: axisDir(2) = 0
  41.     Set objLine = ThisDrawing.ModelSpace.AddLine(axisPt, axisDir)
  42.     ttt = "(setq qqq (handent """ & objLine.Handle & """))"
  43.     ThisDrawing.SendCommand ttt & vbCr
  44.     objLine.color = 3
  45.     angle = 6.28
  46.         
  47.     ' 创建实体
  48.     gg = "(command ""Revolve"" qq """" ""o"" qqq """" )"
  49.     ThisDrawing.SendCommand gg & vbCr
  50. End Sub
  51. Sub lll()
  52.   tt = "(setq qq (handent ""ba""))"
  53.   ThisDrawing.SendCommand tt
  54.   
  55. End Sub


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

本版积分规则

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

GMT+8, 2024-11-26 05:28 , Processed in 0.163769 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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