zhb236623
发表于 2011-12-6 15:18:01
Andyhon 发表于 2011-12-6 15:15 static/image/common/back.gif
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=31776
看了这篇,问题解决。等会上传结果。。。谢谢ANDYHON关注。。。
zhb236623
发表于 2011-12-6 15:21:13
Andyhon 发表于 2011-12-5 17:39 static/image/common/back.gif
(defun c:c1 ()
(vl-load-com)
(princ "\n字串一: ")
;;程序中的字符串哪里来的?我有个从cad中复制到剪切板的。
;;;=================================================================*
;;;功能:向系统剪贴板写入文字 *
(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 c:c3 ()
(vl-load-com)
(setq ss (ssget '((0 . "*TEXT"))))
(setq i 0)
(setq last_stri_str "")
(repeat (sslength ss)
(setq txtcon (cdr (assoc 1 (entget (ssname ss i)))))
(setq txtcon_kuohao (strcat "(" txtcon ")"))
(setq last_stri (vl-prin1-to-string txtcon_kuohao))
(setq last_stri_str (strcat last_stri_str last_stri))
(setq i (1+ i))
)
(setq str0 (getvar "DwgName") ;"宗地图.dwg"
str0 (substr str0 1 )
) ;"宗地图"
(setq str1 (vl-string-translate "/" "-" last_stri_str))
(setq str2 (vl-string-translate "\"" " " str1))
(while (> (strlen str2) (strlen (setq str2 (vl-string-subst "" " " str2))))) ;;加了这句就可以了。
(setq str0 (vl-string-subst "" ".dwg"str0)) 。
(setq str3 (strcat str0 str2))
(ZML-CLIP-SETSTRING str3)
(princ "\n文字已复制到剪切板,可以直接粘贴了!")
(princ)
)
;;(while (> (strlen str) (strlen (setq str (vl-string-subst "" " " str)))))
zhb236623
发表于 2011-12-6 15:22:35
Andyhon 发表于 2011-12-5 17:39 static/image/common/back.gif
(defun c:c1 ()
(vl-load-com)
(princ "\n字串一: ")
ANDYHON我这个不管地号有几行,都可以直接全选,不用选再次,程序可以达到要求。。
zhb236623
发表于 2011-12-6 15:26:06
Andyhon 发表于 2011-12-5 17:39 static/image/common/back.gif
(defun c:c1 ()
(vl-load-com)
(princ "\n字串一: ")
楼主的比较精简,不过我的程序能够达到自己的要求,用起来比较顺手。。。。还是要感谢您的指点。。。
Andyhon
发表于 2011-12-6 15:31:32
...不管地号有几行,都可以直接全选...
没有先后次序的问题?
zhb236623
发表于 2011-12-6 15:32:17
本帖最后由 zhb236623 于 2011-12-6 15:33 编辑
Andyhon 发表于 2011-12-6 15:15 http://bbs.mjtd.com/static/image/common/back.gif
str0 (substr str0 1 (- (strlen str0) 4))楼主这句也有点问题,有时候电脑设置成没有后缀(没有扩展名),这样就错了。
还是有的我说的不够 详细。。。。
Andyhon
发表于 2011-12-6 15:41:34
...没有后缀...
只要能掌握运用函数,都可以给自己量身订制所需的程序底
程序通常都是依使用后所遇到的状况逐步补强滴
也惟有自己最清楚所能掌控的资讯.....
zhb236623
发表于 2011-12-6 17:24:30
本帖最后由 zhb236623 于 2011-12-6 17:27 编辑
Andyhon 发表于 2011-12-6 15:41 http://bbs.mjtd.com/static/image/common/back.gif
...没有后缀...
只要能掌握运用函数,都可以给自己量身订制所需的程序底
说的极是。。。就是没有后缀名 .dwg的时候。。。
zhb236623
发表于 2011-12-6 17:26:29
本帖最后由 zhb236623 于 2011-12-6 17:30 编辑
Andyhon 发表于 2011-12-6 15:31 http://bbs.mjtd.com/static/image/common/back.gif
...不管地号有几行,都可以直接全选...
没有先后次序的问题?
恩,是的,不需要先后,只是加上新老地号到时候找图纸方便。
新地号全部比老地号长,所以如果要先后顺序的话只要加个长度判断,然后就可以了。
another2121
发表于 2011-12-14 12:38:04
zhb236623 发表于 2011-12-5 14:33 static/image/common/back.gif
修改完的程序。
非常好。。。很强大。。。。