2007-08-09 13:56 UTC
So I've been working on a feasibility study for the last couple of weeks using Adobe Indesign CS3 - what a wonderful product. The software uses these really nice, minimal palettes: the text is small, the buttons are tiny, but it works really well. If you think about it, once you've learned what buttons do what, a form really doesn't need highly descriptive controls. Microsoft type forms, including AutoCAD really take up too much space: they really could be made more "minimal".
OK, so after working in CS3 I wanted to create a form for AutoCAD that used the same minimal approach. This is a quick little "LayerWalk" routine that uses a very minimal OpenDCL modeless form:

So copy the code into VLIDE and check it out:
OK, so after working in CS3 I wanted to create a form for AutoCAD that used the same minimal approach. This is a quick little "LayerWalk" routine that uses a very minimal OpenDCL modeless form:

So copy the code into VLIDE and check it out:
(vl-load-com)
(if (not (vl-bb-ref 'jbLwalk))
(vl-bb-set
'jbLwalk
(dcl_project_import
(strcat
"YWt6A8EpAADwQIP7BuKTJqMRZTtu4c2duhP9dG+uKDYeOt6fn9oNgmvZdtczP7wXFORqbizbDECR"
"pxDQQEvPpNQ8nHF+d4/8+nqBfpzdNgJBK0L76dQRA5/TbGzcYcLeXMCipY3QCcPtRMC4EPbH72Ib"
"AOCn5ePnoZLgub/tr5nwxAuMApIqVxfaS3HGTHhu3aEuG0zlsSZHTRGXZ00Tlxccm4ost1wErMiz"
"wic06TNFfbOYGrRONqDOEwNE5TGXlyrslofnDDAxMBnY8yJU4+NXs657uV6wqQCdXE4Hpv1/gP8v"
"2BXAgN/c4SuKdTyhGbOEj+FK8u27hB+pRBZLFBmzeFctveFquQ08oa2fhizDqNbnMJN83xgBVxCZ"
"ayP9dqE+uk5WzHhtzv8uzWH73dFRvHYpS3gzhoGHzLTeEXq6Y8G8rqmmjzV/g7/ewbttx50tXNam"
"9ZC0l1p72UQjg6wvsQmwOmcShrCdlRmq0wU34w0UqAzVbuFVZ4Iqr0EtijFqoxf504/O6U8KxGPK"
"CMWnEiyWRR+7TZIcuS1mBMU1s6OEWBRgF1vt1RH3OoG4HFCcnPBU9SK6G4J8iawwcoOuHMZyq7uk"
"HdHs68wnSVeCw/aceHUylLOjsocDgvY5+qsreMNS3llniuaBqel0/UBubqGqT59Gv95moL9zW0WB"
"nJKiuq7RvBWK3p1a9AAr0Z1eWOubEZ+EQlPeTP3wnBqzHbldfJzFJ74oexLLYVkA1I33E7DQF6LK"
"VRlTGeZHFUeJ9c3Cf8hXGQF4uicwQ/fNegSfEmp4uaem4p3Q7MAu6D1sG4dvpHG0DFZ+G9lcQh/2"
"zIzz2S9LsXNPFzmWgLzdaATfk2RepGT+FiX7IBa1sZY/rkgAotUXvArigbcfVcsNCvumn196g8VG"
"jDMQo7sPAu+mVRrL5N5RML0LaFe5sCCXpo+EBuYw40Z5Zc3CBrHUoqNPKVuojF+JAhB1sd2wXnzt"
"CgIfV88qW6DVsB/ZrFHYjE5b2IyhZFpwgHxlbPDRo+MOxfHF6/Q9wunL+uBWpIio4FxilJNqB3iR"
"Uk5zYekWppD4MExAzicMu2eqQQyTikARGAfrcL4EH6CJZ8yXE8DYOt6gGiEpinn7gPoquF3Lq/gp"
"O9H2Nbrn1eSLNNXwWZAAT2AdQH3nOwHML05c+Df6J2sPEbB0FmH9DMbXeQqTdkavIP/FMMppQuxX"
"fzQ98CU3PZBI/WD7I9SdSqASZEEv5PBCw1fCp3IgFa1NaoRMSgd9Nj3tsa8H4seQPe0lGw+ilaIj"
"jAa9o5mWkax8Sr0PaNV4RR4aj6TQiaDDgq45qZ4d5oGI5q2OvPZ8YiS2zCHEzYAc6sDT8XgFJSE6"
"f7fbLoBNLFZq/KR5DFcOdxRhSs4TWuonWhoogTsQ5WAllmCEEw6DAnGP+Vx1GyhLGiiBm37sc5PF"
"1qW8QK4A+SBWzVRfzQTrPhNd5XuTmnMjeBMBVx6CE83uKFPfssw9GItU/wRYVnO9/0EyDHk0gPnl"
""))))
(defun jb104:GetLayers ( / llist ret)
(vlax-for x(vla-get-layers(vla-get-ActiveDocument(vlax-get-acad-object)))
(setq llist(append llist(list(vla-get-name x)))))
(setq ret(ACAD_STRLSORT llist))
ret
)
(defun c:jb104_00_OnDocActivated ( /)
(dcl_ListBox_Clear jb104_00_ListBox)
(dcl_ListBox_AddList jb104_00_ListBox (jb104:GetLayers))
)
(defun c:jb104_00_OnInitialize ( /)
(dcl_ListBox_AddList jb104_00_ListBox (jb104:GetLayers))
)
(defun c:jb104_00_cl_OnClicked ( /)
(dcl_form_close jb104_00)
)
(defun c:jb104_00_thaw_OnClicked ( /)
(dcl_ListBox_SelItemRange jb104_00_ListBox 0 (dcl_ListBox_GetCount jb104_00_ListBox)0)
(command "-layer" "_thaw" "*" "")
)
(defun c:jb104_00_on_OnClicked ( /)
(dcl_ListBox_SelItemRange jb104_00_ListBox 0 (dcl_ListBox_GetCount jb104_00_ListBox)0)
(command "-layer" "_on" "*" "")
)
(defun c:jb104_00_CheckBox7_OnClicked (nValue /)
(c:jb104_00_OnDocActivated)
)
(defun c:jb104_00_ref_OnClicked ( /)
(c:jb104_00_OnDocActivated)
)
(defun c:jb104_00_ListBox_OnSelChanged (nSelection sSelText / rValue layers)
(Setq rValue (dcl_ListBox_GetSelectedItems jb104_00_ListBox)
layers(vla-get-layers(vla-get-ActiveDocument(vlax-get-acad-object)))
Value (dcl_Control_GetValue jb104_00_CheckBox7))
(if Value
(foreach x rValue
(vla-put-layeron(vla-item layers x):vlax-true))
(foreach x rValue
(vla-put-layeron(vla-item layers x):vlax-false)))
)
(defun c:jb104_00_CheckBox7_OnClicked (nValue /)
(dcl_ListBox_SelItemRange jb104_00_ListBox 0 (dcl_ListBox_GetCount jb104_00_ListBox)0)
)
;;; ;
;;; Command Interface ;
;;; ;
(defun c:jbLayerWalk (/ )
(defun EnsureProjectLoaded (project / project-path)
(if (not (setq project-path (dcl_Project_Load project)))
(progn
(alert (strcat "ODCL project \"" project "\" failed to load!"))
(exit)
)))
(EnsureProjectLoaded "jb104")
(if (not (dcl_Form_IsActive jb104_00))
(dcl_Form_Show jb104_00))
(princ))
;;; ;
;;; Floating Form ;
;;; Document Opened ;
;;; ;
(defun jb:Laywalk_IsFloating (/ )
(defun EnsureProjectLoaded (project / project-path)
(if (not (setq project-path (dcl_Project_Load project)))
(progn
(alert (strcat "ODCL project \"" project "\" failed to load!"))
(exit)
)))
(EnsureProjectLoaded "jb104")
(if (dcl_Form_IsActive jb104_00)
(c:jb104_00_OnDocActivated))
(princ))
(jb:Laywalk_IsFloating)