664571221 发表于 2018-7-9 14:34:56

664571221 发表于 2018-7-9 14:32
可以了大侠,两个有啥不同呀,非常感谢

大侠可以加你QQ吗

bluefcc1 发表于 2018-7-9 15:48:57

剪贴版函式来自
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=100515&highlight=%D7%A2%B2%E1

bluefcc1 发表于 2018-7-9 15:50:06

664571221 发表于 2018-7-9 14:34
大侠可以加你QQ吗

不好意思!我沒有QQ

664571221 发表于 2018-7-9 15:58:11

bluefcc1 发表于 2018-7-9 15:50
不好意思!我沒有QQ


大侠看下这段程序最后生成的文字如何复制到粘贴板
(defun c:ss( / ss osmode i name ent size size_new size_all bak_cecolor)
(setvar "cmdecho" 0)
;(setq osmode (getvar "osmode"))
   
(setq i 0)
(princ "\n选择尺寸")
(if(setq ss(ssget '((0 . "DIMENSION"))))
    (progn
      (setq bak_dimzin(getvar 'dimzin))
      (setvar 'dimzin 8)
      (while (setq name (ssname ss 0))
        (setq i (1+ i))
        (setq ent (entget name))
        (setq size (cdr (assoc 42 ent)))
        (if (= i 1)
          (setq num_all size)
          (setq num_all (+ num_all size))
          )
        (setq size_new (rtos(* size 0.001) 2 3))
        (if (= i 1)
          (setq size_all size_new)
          (setq size_all (strcat size_all "+" size_new ))
          )
        (setq ss(ssdel name ss))
        )      
      (setq bak_cecolor(getvar 'cecolor))
      (setvar 'cecolor "1")
      (setq size_all(strcat "(" size_all ")"))
      (vl-cmdf "_.text" "j" "mc" (getpoint "\n文本放置点") "250" "0" size_all)
      (and bak_cecolor (setvar 'cecolor bak_cecolor))
      (and bak_dimzin (setvar 'dimzin bak_dimzin))
      )
    )
;(setvar "osmode" osmode)
(setvar "cmdecho" 1)
(princ)

)

bluefcc1 发表于 2018-7-9 16:09:42

(defun c:ss( / ss osmode i name ent size size_new size_all bak_cecolor)
   (setvar "cmdecho" 0)
   ;(setq osmode (getvar "osmode"))
   
   (setq i 0)
   (princ "\n選擇尺寸")
   (if(setq ss(ssget '((0 . "DIMENSION"))))
   (progn
       (setq bak_dimzin(getvar 'dimzin))
       (setvar 'dimzin 8)
       (while (setq name (ssname ss 0))
         (setq i (1+ i))
         (setq ent (entget name))
         (setq size (cdr (assoc 42 ent)))
         (if (= i 1)
         (setq num_all size)
         (setq num_all (+ num_all size))
         )
         (setq size_new (rtos(* size 0.001) 2 3))
         (if (= i 1)
         (setq size_all size_new)
         (setq size_all (strcat size_all "+" size_new ))
         )
         (setq ss(ssdel name ss))
         )      
       (setq bak_cecolor(getvar 'cecolor))
       (set-clip-string size_all);複製到剪貼簿 (不含括號)
       (setvar 'cecolor "1")
       (setq size_all(strcat "(" size_all ")"))
       (vl-cmdf "_.text" "j" "mc" (getpoint "\n文本放置點") "250" "0" size_all)
       (and bak_cecolor (setvar 'cecolor bak_cecolor))
       (and bak_dimzin (setvar 'dimzin bak_dimzin))
       )
   )
   ;(setvar "osmode" osmode)
   (setvar "cmdecho" 1)
   (princ)

   )

;;剪貼簿函數
(defun set-clip-string (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)
)
)

664571221 发表于 2018-7-10 09:15:23

bluefcc1 发表于 2018-7-9 16:09
(defun c:ss( / ss osmode i name ent size size_new size_all bak_cecolor)
   (setvar "cmdecho" 0)
   ...

谢谢大侠,非常感谢.

cabinsummer 发表于 2018-7-11 15:05:09

无需编程,CAD命令行的FIND就实现了

evayleung 发表于 2018-7-11 20:43:32

直接用CAD的FIND命令不好么?一样的好用啊。

ghgh0130 发表于 2018-7-15 20:05:12

(vl-string-translate " X" ",*" "我好 你好X他好")

664571221 发表于 2018-7-15 20:27:19

ghgh0130 发表于 2018-7-15 20:05
(vl-string-translate " X" ",*" "我好 你好X他好")

我只是举例,不是指针对这个
页: 1 [2] 3
查看完整版本: 求把一串文字中的空格替换为逗号,把乘号x替换为*