[野狼谷]笨鸟 15:15:23
啰嗦的程序
(command "style" "s0" "仿宋_GB2312" "2" "0.75" "0" "n" "n" "n" "") ;_ End_command
;;公司名称
(command "style" "s1" "" "" "" "" "" "" "")
(setq point_txt (Get_point_add p4 -155 -21))
(command "text" "j" "mc" point_txt 0 CompanyName "" "")
先拿这个用吧,
看到vlisp那长长的代码就晕菜
[pzweng][pzweng]路人 15:16:39
(if (= (pd_sty_shx (vla-get-name obj)) :vlax-true
[xzz007][xzz007]lisp编程 15:17:17
我这个是查找图中的定义的字型,如果我的机子上没有这个字型,则替换字型
[xzz007][xzz007]lisp编程 15:18:05
(vlax-for obj (vla-get-textstyles (vla-get-ActiveDocument (vlax-get-acad-object)) )
这句在2014下运行就有问题,
在2012下正常运行
[pzweng][pzweng]路人 15:19:31
你监视变量试试
[xzz007][xzz007]lisp编程 15:21:06
奇怪的是在2012下正常运行
[pzweng][pzweng]路人 15:21:47
监视变量
[xzz007][xzz007]lisp编程 15:23:53
obj 为空
奇怪
[xzz007][xzz007]lisp编程 15:26:44
(defun c:wzsty( / obj)
(vlax-for obj (vla-get-textstyles (vla-get-ActiveDocument (vlax-get-acad-object)) )
(if (= (pd_sty_shx (vla-get-name obj)) 1)
(progn
(vla-put-fontfile obj "simplex.shx")
(vla-put-bigfontfile obj "hztxt.shx")
(vla-put-Height obj 0)
(vla-put-width obj 0.8)
)
)
)
)
(defun pd_sty_shx(dimsty / aa bigshx mm shx txt1 txt2)
(setq aa(tblsearch "style" dimsty))
(setq shx(cdr(assoc 3 aa)) bigshx (cdr(assoc 4 aa)))
(if (and (/= shx "")(/= bigshx ""))
(progn
(if (null (wcmatch shx "*.shx"))(setq shx (strcat shx ".shx")))
(if (null (wcmatch bigshx "*.shx"))(setq bigshx (strcat bigshx ".shx")))
(if (null (findfile shx))(setq txt1 "simplex.shx" mm 1)(setq txt1 shx))
(if (null (findfile bigshx))(setq txt2 "hztxt.shx" mm 1)(setq txt2 bigshx))
)
)
(if (= mm 1)(princ (strcat "
已将" dimsty "字型的原有字体文件(" shx "," bigshx ")替换成了(" txt1 "," txt2 ")。")))
mm
)
这是完整的程序
[xzz007][xzz007]lisp编程 15:31:59
难道是vlax-for这个函数的原因?
Alber 15:39:05
感谢。
[野狼谷]笨鸟 15:40:10
欢迎共享代码
蔡 15:40:14
谢谢
[alber]alber 15:40:39
这里可以讨论 vb或者易语言的cad问题吗?
[野狼谷]笨鸟 15:44:42
建议 [xzz007]lisp编程 把字体替换改为封装结构,
调用一个表
(list ("被替换字体1” “替换字体1”)("被替换字体2” “替换字体2”)("被替换字体3” “替换字体3”))
[pzweng][pzweng]路人 15:44:48
[xzz007][xzz007]lisp编程 15:45:51
(vlax-for obj (vla-get-textstyles (vla-get-ActiveDocument (vlax-get-acad-object)) )
关键的是这一句就运行部下去了
在2014下
[野狼谷]笨鸟 15:46:50
如何用qq登陆mjtd论坛,避免qq广播把你登陆情况向所有qq好友进行广播,最近我都不敢上mjtd论坛发言了,因为所有同事都能看见:***在mjtd论坛恢复了***的帖子。
[mccad][MCCAD] 15:48:11
设置->QQ绑定->绑定设置中可以取消
[qqimg]201311/{4451735E-4D37-4D3F-40F2-BAFB41C3051B}.jpg[/qqimg]
[野狼谷]笨鸟 15:48:53
设置了,好像不好使
[mccad][MCCAD] 15:49:33
我查查,这确实是个比较讨厌的事情
[野狼谷]笨鸟 15:50:18
[野狼谷]笨鸟 15:51:30
明经论坛和社区不是一个服务器吧?好像社区速度快一点
[LC100]建筑设计 15:53:52
明显不是一个服务器的。
论坛不挂点广怎么维持生活呢。
[野狼谷]笨鸟 15:54:29
是啊, 我也很关心这个问题呢
[mccad][MCCAD] 15:54:42
论坛就是社区吧
[xiaomm250][lisp_](car (entsel)) 15:54:51
如何把字符串"aa23a5a"中的所有"a"换成"b"呢?
[mccad][MCCAD] 15:54:52
都是一个服务器
[qqimg]201311/{5851DA27-2BDB-2168-A727-FB08C207DF3F}.jpg[/qqimg]
[xiaomm250][lisp_](car (entsel)) 15:55:29
vl-string-subst只能替换第一个,如何把字符串"aa23a5a"中的所有"a"换成"b"呢?
[mccad][MCCAD] 15:56:02
运行多几次不就行了
[fsxm]飞诗 15:56:21
[qqimg]201311/{753748D1-CDF3-5149-69C1-7A01F0E7409E}.jpg[/qqimg]收藏后,去哪里了哈
[mccad][MCCAD] 15:56:57
快速导航里有收藏
[qqimg]201311/{960A131B-B76A-4F22-6116-75D4571A8684}.jpg[/qqimg]
[xiaomm250][lisp_](car (entsel)) 15:57:10
vl-string-subst只能替换第一个,如何把字符串"aa23a5a"中的所有"a"换成"bbb"呢?
[fsxm]飞诗 15:57:58
谢谢~
[fsxm]飞诗 15:58:38
一直在个人空间和资料里找, 没看快速导航
[alber]alber 15:59:01
咨询下 lisp返回的函数能调用到vb里面吗?
[328302216][328302216]小莫 16:05:39
我的程序[qqimg]201311/{2B133253-FDF7-7256-395C-D81D85F77DAA}.jpg[/qqimg]执行到这里
变量mj-lmdykbl-3都有值了aa1却没值,不知道是不是撞鬼了...
[328302216][328302216]小莫 16:07:19
[qqimg]201311/{0C4CCA4D-D5A0-F55E-56E9-1A7B431B9BB3}.jpg[/qqimg]
[xzz007][xzz007]lisp编程 16:16:30
谢谢各位了,找到原因了
[328302216][328302216]小莫 16:19:20
伤不起居然写成了((setq ……))多了一层括号[qqimg]201311/{B1AC14ED-DEF1-9DCA-5AC3-621B35A2B499}.gif[/qqimg]
[野狼谷]笨鸟 16:19:29
不怪你,怪系统不提示你
[328302216][328302216]小莫 16:20:23
弄得我以为是撞鬼了 |