本帖最后由 foolishzy 于 2023-5-26 11:46 编辑
 - (defun c:tttt()
- (defun ZML-CLIP-SETSTRING (STR / HTML RESULT)
- (and (= (type STR) 'STR)
- (setq HTML (vlax-create-object "htmlfile"))
- (setq RESULT (vlax-invoke
- (vlax-get (vlax-get HTML 'PARENTWINDOW)
- 'CLIPBOARDDATA
- )
- 'SETDATA
- "Text"
- STR
- )
- )
- (vlax-release-object HTML)
- )
- )
- (defun regexp(s p / r L )
- (setq r (vlax-create-object "vbscript.regexp"))
- (vlax-put-property r 'Global 1)
- (vlax-put-property r 'Pattern p)
- (vlax-for x (vlax-invoke r 'Execute s)(setq L (cons (vla-get-value x) L)))
- (vlax-release-object r)
- (reverse L)
- )
- (defun count-fruits (fruit-list)
- (setq result (list))
- (foreach item fruit-list
- (setq fruit (car item))
- (setq quantity (cadr item))
- (if (assoc fruit result)
- (setq quantity (+ quantity (cdr (assoc fruit result))))
- )
- (setq result (cons (cons fruit quantity) (vl-remove (assoc fruit result) result)))
- )
- result
- )
- (defun pickset_to_enamelist(pickset / ss sslst )
- (setq ss pickset sslst '())
- (while (setq n (ssname ss 0))
- (progn
- (setq sslst (append sslst (list n)))
- (ssdel n ss)
- )
- )
- sslst
- )
- (defun p1(str)
- (vl-list->string (vl-remove 32 (vl-string->list str)))
- (setq num (last (regexp str "\\d+")))
- (setq head_str (vl-string-right-trim num str))
- (list head_str (atoi num))
- )
- (setq ss(ssget '((0 . "*ext"))))
- (setq lst (pickset_to_enamelist ss))
- (setq name-lst (list))
- (setq temp (list))
- (foreach l lst
- (setq temp (append temp (list (p1(Vlax-Get (Vlax-Ename->Vla-Object l) 'TextString )))))
- )
- (setq result (count-fruits temp))
- (setq str "")
- (mapcar (function (lambda (x)
- (setq str(strcat str (car x) (itoa (cdr x)) "\n")
- ))
- )
- result
- )
- (ZML-CLIP-SETSTRING str)
- (command "PASTECLIP" (getpoint "\n pick point : "))
- )
|