|
Тема |
Re: Интересно ? [re: Miru] |
|
Автор | pesho_pv (Нерегистриран) | |
Публикувано | 16.02.06 17:04 |
|
|
Чакай малко, че не ми става ясно: от една страна говориш за "макроси", а от друга за "VBasic". Ти Visual Basic (т.нар. "standalone") с AutoCAD ли се опитваш да свържеш или VBA-то на AutoCAD-а се опитваш да използваш, за да начертаеш нещо? Защото и двата варианта са много добре докумeнтирани и не разбирам какво значи "няма нищо за командите и процедурите свързващи AUTOCAD i VBasic"?
Eдин елементарен пример: Искаш в AutoCAD да си начертаеш един триъгълник, върховете на който са с координати, примерно, (0,0), (4,0) и (4,3). Както си в AutoCAD-а, натискаш Alt+F11, даваш Insert -> Module и пишеш нещо от сорта:
Sub triangle
Dim pnt_1(0 to 2) as Double, pnt_2(0 to 2) as Double, _
pnt_3(0 to 2) as Double
Dim line as AcadLine
pnt_1(0)=0: pnt_1(1)=0: pnt_1(2)=0
pnt_2(0)=4: pnt_2(1)=0: pnt_2(2)=0
pnt_3(0)=4: pnt_3(1)=3: pnt_3(2)=0
Set line=ThisDrawing.ModelSpace.AddLine(pnt_1, pnt_2)
Set line=ThisDrawing.ModelSpace.AddLine(pnt_2, pnt_3)
Set line=ThisDrawing.ModelSpace.AddLine(pnt_3, pnt_1)
ZoomExtents
End Sub
Във Visual Basic ще е същото, но трябва да укажеш в References "Type Library"-то на версията на AutoCAD-а ти ("acad.tlb"). И да си създадеш AutoCAD-овски обект с метода "CreateObject". След това е абсолютно същото, като предишното. Ще изглежда примерно така:
Sub triangle
Dim acad_obj as AcadApplication
Set acad_obj=CreateObject("AutoCAD.Application")
acad_obj.Visible=True
Dim acad_ms as AcadModelSpace
Set acad_ms=acad_obj.ActiveDocument.ModelSpace
Dim pnt_1(0 to 2) as Double, pnt_2(0 to 2) as Double, _
pnt_3(0 to 2) as Double
Dim line as AcadLine
pnt_1(0)=0: pnt_1(1)=0: pnt_1(2)=0
pnt_2(0)=4: pnt_2(1)=0: pnt_2(2)=0
pnt_3(0)=4: pnt_3(1)=3: pnt_3(2)=0
Set line=acad_ms.AddLine(pnt_1, pnt_2)
Set line=acad_ms.AddLine(pnt_2, pnt_3)
Set line=acad_ms.AddLine(pnt_3, pnt_1)
acad_obj.ZoomExtents
End Sub
Документация, уверявам те, има. Стига да има някой да чете. И в Help-овете на AutoCAD-а (*.hlp, *.chm), и на инсталационното CD (*.pdf), а пък в Интернет...
|
| |
|
|
|