NanoCAD 5.0 มาแล้ว
ในที่สุดเราสามารถพัฒนา Application บน NanoCAD ได้แล้ว แถมเลือกได้หลายวิธีอีกด้วยDownload มาใช้งานกันเถอะ
Dowload NanoCADต่อไปเราจะทดสอบการพัฒนา Application บน NanoCAD
- Lisp
- VBScript
- Java Script
Lisp
NanoCAD รองรับ Lisp ที่เราเขียนไว้เดิมได้ทันที และรองรับ vl-lisp ที่ใช้ประจำอีกด้วย แต่กำลังทดสอบอยู่VBScript
ของใหม่ ใช้ง่ายสำหรับท่านที่ใช้ VBA มาก่อนLoad ไฟล์ตัวอย่าง ด้านล่างสุดของหน้าเว็บ ไฟล์ demoscript.zip
หรือที่ demoscript.zip
Unzip ไฟล์ จะได้ VBScript ชื่อ demoscript.vbs
มาดู code กัน
Dim ms
Dim ut
Dim oLyrCone
Dim oLyrLine1
Dim LyrLine2
Dim SquareSize
Dim MaxX
Dim MaxY
Dim h
Dim x0
Dim y0
Dim Px
Dim Py
SquareSize = 25600
MaxX = 64000
MaxY = 48000
ThisDrawing.Utility.Prompt("Demonstration VBS-script, created by the example of LISP-program:")
ThisDrawing.Utility.Prompt("VBS-script was written 18.04.2012, by Nanosoft (www.nanocad.com)")
ThisDrawing.Utility.Prompt(" ")
Do
count = ThisDrawing.Utility.GetInteger("Specify a positive number (>=1)")
Loop While count <= 0
h = SquareSize \ 4 ' integer division
x0 = MaxX \ 2 ' integer division
y0 = h + MaxY \ 2 ' integer division
Set oLyrCone = ThisDrawing.Layers.Add("Cone")
Set oLyrLine1 = ThisDrawing.Layers.Add("Connections")
Set oLyrLine2 = ThisDrawing.Layers.Add("Rectangles")
Dim oCone
Set oCone = ThisDrawing.ModelSpace.AddCone(CStr(x0)+","+CStr(y0-h)+","+CStr(SquareSize\2 - h\4), CStr(h), CStr(SquareSize))
oCone.Layer = oLyrCone.Name
for i = 1 to count
ThisDrawing.Utility.Prompt("Iteration น" + CStr(i))
x0 = x0 - h
h = h \ 2
y0 = y0 + h
Px = x0
Py = y0
A(i)
Line 1, h
B(i)
Line 3, h
C(i)
Line 5, h
D(i)
Line 7, h
next
' A(), B(), C() ่ D() are the recursive functions which draw the connection parts between "rectangles"
Sub A(k)
if k > 0 then
A(k-1)
Line 1, h
B(k-1)
Line 0, 2 * h
D(k-1)
Line 7, h
A(k-1)
end if
End Sub
Sub B(k)
if k > 0 then
B(k-1)
Line 3, h
C(k-1)
Line 2, 2 * h
A(k-1)
Line 1, h
B(k-1)
end if
End Sub
Sub C(k)
if k > 0 then
C(k-1)
Line 5, h
D(k-1)
Line 4, 2 * h
B(k-1)
Line 3, h
C(k-1)
end if
End Sub
Sub D(k)
if k > 0 then
D(k-1)
Line 7, h
A(k-1)
Line 6, 2 * h
C(k-1)
Line 5, h
D(k-1)
end if
End Sub
' lines rendering in the model space of the current drawing
' Direction - rendering direction
' Size - "rectangle" size
Sub Line(Direction, Size)
Dim oLine
Dim oLyr
x = Px
y = Py
Select Case Direction
case 0:
x = x + Size
Set oLyr = oLyrLine2
case 1:
x = x + Size
y = y - Size
Set oLyr = oLyrLine1
case 2:
y = y - Size
Set oLyr = oLyrLine2
case 3:
x = x - Size
y = y - Size
Set oLyr = oLyrLine1
case 4:
x = x - Size
Set oLyr = oLyrLine2
case 5:
x = x - Size
y = y + Size
Set oLyr = oLyrLine1
case 6:
y = y + Size
Set oLyr = oLyrLine2
case 7:
x = x + Size
y = y + Size
Set oLyr = oLyrLine1
End Select
Set oLine = ThisDrawing.ModelSpace.AddLine(CStr(Px)+","+CStr(Py)+","+CStr(Py), CStr(x)+","+CStr(y)+","+CStr(y))
oLine.Layer = oLyr.Name
Px = x
Py = y
End Sub


