Initial commit

This commit is contained in:
2018-11-26 22:23:22 +01:00
parent 317403389d
commit 86753f6ca0
50 changed files with 4573 additions and 1 deletions

123
blockpres.lsp Normal file
View File

@@ -0,0 +1,123 @@
;;blockpres.lsp
;;
;;Routine for block presentation in a file. It sorts the selected blocks in alphabetical order, and align them to a nice grid.
;;
;; Created by Peter Gyetvai
;; gyetpet@gmail.com
;; gyetvai-peter.hu
(defun C:blockpres (/ i imax j jmax ss goodsel colnr il jl distance currSel currElem newElem currTyp currPos currName currColNr currRowNr nameList nameListOrder currOrder)
;variables:
(setq i 0);counter to zero
(setq imax 1);while variable
(setq j 0);counter to zero
(setq jmax 1);while variable
(setq currColNr 0)
(setq currRowNr 0)
(setq nameList ())
(setq goodsel (ssadd))
(vl-load-com)
(graphscr)
(prompt "\nSelect blocks: [All]")
(setq ss (ssget));asks for selection
(setq jl (sslength ss));length of selection
(setq distance (getdist "\nDistance between blocks? "))
(setq colnr (getint "\nNumber of columns? "))
;; gets the blocks name
(while jmax
(print )
(princ "Checking element ")
(princ (1+ j))
(princ "/")
(princ jl)
(setq currSel (ssname ss j))
(setq currElem (entget currSel))
(setq currName (cdr (assoc 2 currElem)))
(setq currTyp (cdr (assoc 0 currElem)))
(princ " - type: ")
(princ currTyp)
;; checks if it's a block
(cond
(
(= currTyp "INSERT");if block
(progn
(princ " - name: ")
(princ currName)
(setq nameList (append nameList (list (strcase currName))))
;; (print nameList)
(ssadd currSel goodsel)
)
)
(
(not (= currTyp "INSERT"));if not block
(progn
(princ ": This is not a block")
)
)
)
;while specific:
(setq j (1+ j));increments j
(if (= j jl) (setq jmax nil));finish function if j equals jl
)
;; sorts the block names
(setq nameListOrder (vl-sort-i nameList '<))
;; length of new selection set
(setq il (sslength goodsel))
(print )
;; Modify coordinates
(while imax
(print )
(princ "Moving element ")
(princ (1+ i))
(princ "/")
(princ il)
(setq currOrder (nth i nameListOrder))
(setq currElem (entget (ssname goodsel currOrder) ))
(setq currPos (assoc 10 currElem))
(princ " - block name: ")
(princ (cdr (assoc 2 currElem)))
(print )
(setq newPos (list 10 (* currColNr distance) (* currRowNr distance) 0))
(setq newElem (subst newPos currPos currElem))
(entmod newElem)
;; ATTSYNC
(command "._ATTSYNC" "N" (cdr (assoc 2 currElem)))
;; change col and row numbers
(setq currColNr (1+ currColNr))
(if (= currColNr colnr)
(progn
(setq currRowNr (1+ currRowNr))
(setq currColNr 0)
)
)
;while specific:
(setq i (1+ i));increments i
(if (= i il) (setq imax nil));finish function if i equals il
)
(setq ss nil)
(princ)
)