碰到一个问题,不解决不爽
2016-11-13 17:20
351 查看
问题的要素
随机生成一些长度、直径、位置、方向都不同的圆柱体;数据文件需要是solid model格式,以便能导入到Fluent/ANSYS/Abaqus之类的软件中进行网格化和有限元或有限体积分析。
当前状态
已经解决。解决了文件的生成和格式转换,但是要生成网格和进行分析,类似问题,从算法上的难度实际上仍然很大。可能需要巨大的内存和计算量。
两两不相交
进一步
把计算好的点放在TXT文件中用VBA读入,而后显示出来?http://www.vbaexpress.com/forum/showthread.php?18957-Solved-VBA-and-AutoCAD-reading-points-from-a-txt-file
Public Sub DrawPointsFromTextFile() Dim fd As Long Dim sline As String Dim ar As Variant fd = FreeFile Open "C:\Temp\Coordinates.txt" For Input Access Read Shared As fd Do Until EOF(fd) Line Input #fd, sline ar = Split(sline, ",") ReDim pt(UBound(ar)) As Double Dim i As Integer For i = 0 To UBound(ar) pt(i) = CDbl(ar(i)) Next i ThisDrawing.ModelSpace.AddPoint pt Loop Close fd End Sub
来自
http://www.vbaexpress.com/forum/showthread.php?2647-Solved-Text-file-to-drawing
Sub DrawFromTxt() Dim intFile As Integer Dim mPoints Dim HldPoints() As String Dim LinPlace() As String Dim MyString As String Dim OutArr As Variant Dim OutPt(0 To 2) As Double Dim OutPtA(0 To 2) As Double Dim Lend As Integer Dim LStart As Integerm Dim pointObj As AcadPoint Dim lineObj As AcadLine Dim I As Integer ReDim HldPoints(0) ReDim LinPlace(0) intFile = FreeFile Open "C:\Acad\file.txt" For Input As intFile While Not EOF(intFile) Line Input #intFile, MyString If InStr(1, MyString, " !Define key points ") > 0 Or _ InStr(1, MyString, "! Define Keypoints") > 0 Then Line Input #intFile, MyString While InStr(1, MyString, "Keypoints") = 0 If Left$(MyString, 1) = "K" Then ReDim Preserve HldPoints(UBound(HldPoints) + 1) HldPoints(UBound(HldPoints)) = Right(MyString, _ Len(MyString) - InStr(3, MyString, ",")) End If Line Input #intFile, MyString Wend End If If InStr(1, MyString, " !Define line ") > 0 Or InStr(1, _ MyString, "! Define Lines Linking") > 0 Then Line Input #intFile, MyString While InStr(1, MyString, "! element definition") = 0 And _ InStr(1, MyString, " !Element Definition") = 0 If Left$(MyString, 1) = "L" Then ReDim Preserve LinPlace(UBound(LinPlace) + 1) LinPlace(UBound(LinPlace)) = Right$(MyString, Len(MyString) - 2) End If If Not EOF(intFile) Then Line Input #intFile, MyString Else MyString = "! element definition" End If Wend End If Wend Close (intFile) 'i have the points For I = 1 To UBound(HldPoints) OutArr = Split(HldPoints(I), ",") OutPt(0) = Val(OutArr(0)) OutPt(1) = Val(OutArr(1)) OutPt(2) = 0 Set pointObj = ThisDrawing.ModelSpace.AddPoint(OutPt) pointObj.Color = acCyan ThisDrawing.Regen acActiveViewport Next For I = 1 To UBound(LinPlace) OutArr = Split(LinPlace(I), ",") LStart = Val(OutArr(0)) Lend = Val(OutArr(1)) OutArr = Split(HldPoints(LStart), ",") OutPt(0) = Val(OutArr(0)) OutPt(1) = Val(OutArr(1)) OutPt(2) = 0 OutArr = Split(HldPoints(Lend), ",") OutPtA(0) = Val(OutArr(0)) OutPtA(1) = Val(OutArr(1)) OutPtA(2) = 0 Set lineObj = ThisDrawing.ModelSpace.AddLine(OutPt, OutPtA) lineObj.Color = acCyan ThisDrawing.Regen acActiveViewport Next End Sub
相关文章推荐
- 知道了一个几年前就碰到没有解决的问题
- Client Copy中碰到的一个常见问题解决.
- Client Copy中碰到的一个常见问题解决.
- 安装flex碰到的一个问题及其解决方法(原创)
- 升级vs2010我碰到的一个问题,以及解决方法
- 最近碰到一个奇怪有不容易解决的问题,总算搞定!
- 从零开始实现一个电子商务网站----解决碰到的问题(六)
- 吐槽:解决一个奇葩问题--奇葩问题的苦谁碰到谁知道
- 升级vs2010我碰到的一个问题,以及解决方法
- 一直以来我(每个从事linux开发的人)深受“bug”的困扰,好像“bug”不足以描述这种被问题困扰的无奈。因为当在驱动或BSP的开发过程中,所碰到的问题比解决一个bug难得多。 Li
- KB956744补丁无法安装的解决办法[我只是碰到一个补丁无法安装, 问题并未解决]
- 使用CsV格式的CDR记录碰到的一个怪问题的解决
- 今天碰到一个强数据类型集的问题,不知道大家怎么解决呢????
- (转)升级vs2010我碰到的一个问题,以及解决方法
- 安装flex碰到的一个问题及其解决方法(二)(原创)
- 今天碰到一个poi解析excel文件的时候报错, 后来发现是这个excel文件单元格里面有公式。删除公式问题解决!
- 一个关于时间的故事(通过历史分析解决程序问题)
- 利用了相对坐标解决了商城项目开发中的一个问题。
- 一个设计上的问题,高手帮解决下
- 最近碰到的一个firefox下table标签和iframe标签问题