VBA代码

- Sub wl()
- On Error Resume Next
- Dim ss As AcadSelectionSet
- Dim ft(0) As Integer, fd(0)
- Dim pfCount As Integer
- Dim i As AcadLine
- Dim str As String
- pfCount = ThisDrawing.PickfirstSelectionSet.Count
- ThisDrawing.SelectionSets("tlstest").Delete
- Set ss = ThisDrawing.SelectionSets.Add("tlstest")
- ft(0) = 0: fd(0) = "Line"
- If pfCount = 0 Then
- ss.SelectOnScreen ft, fd
- Else
- ss.Select acSelectionSetPrevious, , , ft, fd
- End If
- Open "c:\1.txt" For Binary As #1
- str = ""
- For Each i In ss
- str = str & i.StartPoint(0) & "," & i.StartPoint(1) & "," & i.StartPoint(2)
- str = str & "@"
- str = str & i.EndPoint(0) & "," & i.EndPoint(1) & "," & i.EndPoint(2)
- str = str & "@"
- str = str & CStr(i.length)
- str = str & vbCrLf
- Next i
- Debug.Print str
- Put #1, , str
- Close #1
- End Sub
Lisp代码

- (defun tls-sub2cmd(filename subname cmdname)
- (eval
- (list 'defun
- (read (strcat "c:" cmdname))
- nil
- (list 'vla-RunMacro '(vlax-get-acad-object) (strcat filename "!" subname))
- (princ)
- )
- )
- (vlax-add-cmd cmdname (strcat "C:" cmdname))
- '(princ)
- )
- (tls-sub2cmd "tlscad.dvb" "wl" "wl")
|