Below is some code I am attempting to translate to visual lisp. We have upgraded to 2010 and would like to get away from the VBA editor and I can see it will eventually just go away. What it does is takes some blocks on two specific layers and changes the arcs and/or splines and changes the lintype to continous. The blocks are all related to project numbers and have 100's of different names. I think I may be on the right track with the selection set but dont know what I need to do next.I have commented out the VBA code.
Code:
(defun c:fixhist () ;;; Sub ChBlockEntProp()
(vl-load-com);;;Dim objSSet As AcadSelectionSet
(vla-get-acad-object)
(SETQ SS1 (SSGET "x" '((0 . "insert")(-4 . "<or")(8 . "a-hist")(8 . "a-hist-2000")(-4 . "or>"))));;;filtertype(0) = 0
;;;filterdata(0) = "INSERT"
;;;filtertype(1) = -4
;;;filterdata(1) = "<or"
;;;filtertype(2) = 8
;;;filterdata(2) = "a-hist"
;;;filtertype(3) = 8
;;;filterdata(3) = "a-hist-2000"
;;;filtertype(4) = -4
;;;filterdata(4) = "or>"
;;;Set objSSet = ThisDrawing.SelectionSets.Add("BlkSet")
;;;objSSet.Select acSelectionSetAll, , , filtertype, filterdata
;;;Dim objBlock As AcadBlock
;;;Dim objBlkRef As AcadBlockReference
;;;Dim objCadEnt As AcadEntity
;;;For Each objBlkRef In objSSet
;;; For Each objBlock In ThisDrawing.Blocks
;;; If StrComp(objBlkRef.Name, objBlock.Name) = 0 Then
;;; For Each objCadEnt In objBlock
;;; With objCadEnt
;;; If .ObjectName = "AcDbArc" Or .ObjectName = "AcDbSpline" Then
;;; .Linetype = "continuous"
;;; End If
;;; End With
;;; Next
;;; End If
;;; Next
;;;Next
;;;Set objCadEnt = Nothing
;;;Set objBlkRef = Nothing
;;;Set objBlock = Nothing
;;;objSSet.Delete
;;;ThisDrawing.Regen acActiveViewport
;;;ThisDrawing.SendCommand "_vbaunload" & vbCr & "fixhist.dvb" & vbCr
;;;End Sub