类似主题的建筑师喜欢在手绘平面图上显示tic,在手绘平面图上,他们用较粗的笔在原始铅笔草图上绘制,因此这会在线条的末端添加记号。Ps该代码创建于1994年!
- ; draw architectural tic marker
- ;pick layer required
- (setvar "cmdecho" 0)
- (setq exlay (getvar "clayer"))
- (setq obj nil)
- (while (= obj nil)
- (setq obj (entsel "\n Pick any object on the required layer :"))
- )
- (setq tic_len (getreal "\nEnter tick size mm <2> "))
- (if (= tic_len nil)
- (setq tic_len (* 2 setsc))
- (setq tic_len (* tic_len setsc))
- )
- (setq player (cdr (assoc 8 (entget (car obj)))))
- (princ "\n Object is on the layer: ")
- (princ player)
- (princ "\n ")
- ; Selection set to measure
- (while (not (setq ss (ssget))))
- ;; For each entity in the selection set, check if it is an entity that can
- ;; be used.
- ;now pick multiple lines etc
- (setvar "clayer" tics)
- (while (setq en (ssname ss 0))
- ; Entity type
- (setq entyp (cdr (assoc 0 (entget en))))
- ;layer type
- (setq aclayer (cdr (assoc 8 (entget en))))
- (if (and (= entyp "LINE") (= player aclayer))
- (progn
- (setq p1 (cdr (assoc 10 (entget en))))
- (setq p2 (cdr (assoc 11 (entget en))))
- (setq ang (angle p1 p2))
- (setq p3 (polar p1 (- ang pi) tic_len))
- (setq p4 (polar p2 ang tic_len))
- (command "line" p1 p3 "")
- (command "line" p2 p4 "")
- )
- )
- ; Delete each measured entity from set
- (ssdel en ss)
- ;end while
- )
- (setq p1 nil
- p2 nil
- p3 nil
- p4 nil
- tic_len nil
- ss nil
- en nil
- )
- (setvar "clayer" exlay)
- (princ)
|