AutoLISPノート-共通コードの断片
1、文字列は指定された区切り文字で区切られる
2、文字列は指定された区切り文字で区切られ、区切り文字は文字列であってもよく、ファイル名を取り、拡張子を区切り文字とする
3、取得日
4、取得日
5、指定点書き込み文字列
6、システム関連ソフトでファイルを開く
;;; :
;;;(split "1,,255280.791,3743764.732,2786.206" ",")
;;; :("1" "" "255280.791" "3743764.732" "2786.206")
(defun split (str delim / LST POS)
(while (setq pos (vl-string-search delim str))
(setq lst (append lst (list (substr str 1 pos))))
(setq str (substr str (+ 2 pos)))
)
(if (> (strlen str) 0)
(append lst (list str))
lst
)
)
2、文字列は指定された区切り文字で区切られ、区切り文字は文字列であってもよく、ファイル名を取り、拡張子を区切り文字とする
;;;(splitX "C:\\Users\\....25~K1+013.52;EL.2776.73~EL.2804.74).dat" ".dat")
;;; :(C:\\Users\\....25~K1+013.52;EL.2776.73~EL.2804.74))
(defun splitX (str delim / LST POS)
(while (setq pos (vl-string-search delim str))
(setq lst (append lst (list (substr str 1 pos))))
(setq str (substr str (+ (+ pos (strlen delim)) 1)))
)
(if (> (strlen str) 0)
(append lst (list str))
lst
)
)
3、取得日
;;; : , splitx , “20170511”
(defun date ()
(setq datetime (rtos (getvar "cdate") 2 6))
(car (splitx datetime "."))
)
4、取得日
;;; : , splitx , “110253”
(defun time ()
(setq datetime (rtos (getvar "cdate") 2 6))
(cadr (splitx datetime "."))
)
5、指定点書き込み文字列
; :
; :(_text (getpoint "Pick") "3333" 2 0)
(defun _text (point string height rotation / space text)
(setq acdoc (vla-get-activedocument (vlax-get-acad-object))
space (vlax-get-property
acdoc
(if (= 1 (getvar 'CVPORT))
'Paperspace
'Modelspace
)
)
)
(setq text (vla-addtext space string (vlax-3D-point point) height))
(vla-put-alignment text acalignmentmiddlecenter)
(vla-put-textalignmentpoint text (vlax-3D-point point))
(vla-put-rotation text rotation)
text
)
6、システム関連ソフトでファイルを開く
; :
;(setq fl (getfiled " " (cond ( *file* ) ( "" )) "txt;csv;xls" 1))
;...
;(_Open (findfile fl))
(defun _Open ( target / Shell result )
(if (setq Shell (vla-getInterfaceObject (vlax-get-acad-object) "Shell.Application"))
(progn
(setq result
(and (or (eq 'INT (type target)) (setq target (findfile target)))
(not
(vl-catch-all-error-p
(vl-catch-all-apply 'vlax-invoke (list Shell 'Open target))
)
)
)
)
(vlax-release-object Shell)
)
)
result
)