找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 193|回复: 0

长度统计

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-3-29 22:40:22 | 显示全部楼层 |阅读模式
  1. ;;; ===================================================
  2. ;;; 《长度统计》选择已选则为取消该选择,结果复制到剪切板
  3. ;;; 作者:langjs
  4. ;;; ===================================================
  5. (defun c:cdtj (/ co html i len leng lst lwd n name obj result ss str)
  6.   (defun #err (s / n obj)              ; 出错处理子函数
  7.     (foreach n lst
  8.       (setq obj (vlax-ename->vla-object (car n)))
  9.       (vla-put-color obj (last n)) (vla-put-lineweight obj aclnwt000))
  10.     (setvar "LWDISPLAY" lwd) (setvar "nomutt" 0)
  11.     ((if command-s command-s  vl-cmdf ) ".UNDO" "E" )
  12.     (setq *error* $orr)) (vl-load-com)
  13.   (setvar "cmdecho" 0)  (setq lwd (getvar "LWDISPLAY"))
  14.   (vl-cmdf ".UNDO" "BE")  (setvar "nomutt" 1)
  15.   (setq $orr *error*   *error* #err  lst '() leng 0.0 )
  16.   (princ "\n  《长度统计》,选择已选则为取消该选择。")
  17.   (while (setq ss (setq ss (ssget ":S" '((0 . "LINE,CIRCLE,ARC,ELLIPSE,LWPOLYLINE,POLYLINE,SPLINE")))))
  18.     (setvar "LWDISPLAY" 1)
  19.     (repeat (setq i (sslength ss))
  20.       (setq name (ssname ss (setq i (1- i)))  obj (vlax-ename->vla-object name))
  21.       (if (setq n (assoc name lst))
  22.         (progn (setq lst (vl-remove n lst) leng (- leng (cadr n)))
  23.           (vla-put-color obj (last n)) (vla-put-lineweight obj aclnwt000))
  24.         (progn  (setq co (vla-get-color obj) len (vlax-curve-getdistatparam obj (vlax-curve-getendparam obj))
  25.                 leng (+ leng len) lst (cons (list name len co) lst))
  26.           (vla-put-color obj 60)  (vla-put-lineweight obj aclnwt060))))
  27.     (princ (strcat "\n  总长 = " (rtos leng) " mm"))
  28.     (setq str (rtos leng) html (vlax-create-object "htmlfile")
  29.           result (vlax-invoke (vlax-get (vlax-get html 'parentwindow) 'clipboarddata) 'setdata "Text" str))
  30.     (vlax-release-object html))
  31.   (foreach n lst
  32.     (setq obj (vlax-ename->vla-object (car n)))
  33.     (vla-put-color obj (last n))(vla-put-lineweight obj aclnwt000))
  34.   (setvar "LWDISPLAY" lwd)  (setvar "nomutt" 0)
  35.   (vl-cmdf ".UNDO" "E")  (setq *error* $orr)
  36.   (princ)
  37. )
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-28 17:37 , Processed in 0.187643 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表