明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2534|回复: 18

[函数] 如何把明细表中英文(翻译部分)一次性删除

  [复制链接]
发表于 2011-5-24 10:20 | 显示全部楼层 |阅读模式
CAD中明细有中英文翻译,做明细表时只用中文的,所以要删除英文。
能否一次性选择判断出英文且把英文全删除。3qyou!
发表于 2011-5-24 11:28 | 显示全部楼层
本帖最后由 Gu_xl 于 2011-5-24 11:28 编辑

回复 kexiya123 的帖子

  1. (defun c:tt(/ ss en el str n)
  2.   (setq ss (ssget '((0 . "text"))))
  3.   (if ss
  4.     (progn
  5.       (setq n (sslength ss))
  6.       (repeat n
  7.         (setq en (ssname ss (setq n (1- n))))
  8.         (setq str (cdr (assoc 1 (setq el (entget en)))))
  9.         (setq str (VL-STRING->LIST str)
  10.               str (vl-remove-if '(lambda(x) (or (<= 65 x 90) (<= 97 x 122))) str) ;_ 移除西文
  11.               )
  12.         (setq str (VL-LIST->STRING str))
  13.         (setq el (subst (cons 1 str) (assoc 1 el) el))
  14.         (entmod el)
  15.         )
  16.       )
  17.     )
  18.   )
发表于 2011-5-24 12:50 | 显示全部楼层
谢谢分享!学习中
 楼主| 发表于 2011-5-24 13:09 | 显示全部楼层
回复 sy100 的帖子

如果明细表中如代号栏为:GB/T5783-2000,运用以上程序时可能就把这个删除掉了
发表于 2011-5-24 13:11 | 显示全部楼层
回复 kexiya123 的帖子

选择时过滤掉GB/T5783-2000
(setq ss (ssget '((0 . "text")(1 . "~*GB/T5783-2000*"))))
 楼主| 发表于 2011-5-24 13:41 | 显示全部楼层
我已把实例发至你邮箱,谢谢
发表于 2011-5-24 13:43 | 显示全部楼层
(setq ss (ssget '((0 . "text")(1 . "~*GB*"))))
 楼主| 发表于 2011-5-24 13:44 | 显示全部楼层
我也想过用ASCII码来处理,但是还是会出现很多状况
 楼主| 发表于 2011-5-24 13:52 | 显示全部楼层
如材料名称栏里有两行:
中文行  “O型圈112x3.5"
翻译行为"O ring 112x3.5"
运用上面程序就不可
还有如代号栏为所编图号:8K400.201
运用上面程序就非常不合适了
      
发表于 2011-5-24 13:57 | 显示全部楼层
本帖最后由 Gu_xl 于 2011-5-24 14:04 编辑

回复 snddd2000 的帖子

标题栏数据无规律,选择时不选即可!
修改后程序:
  1. (defun c:tt(/ ss en el str n flag)
  2.   (setq ss (ssget '((0 . "text" )(-4 . "<or") (1 . "*[a-z]*") (1 . "*[A-Z]*")(-4 . "or>"))))
  3.   (if ss
  4.     (progn
  5.       (setq n (sslength ss))
  6.       (repeat n
  7.         (setq en (ssname ss (setq n (1- n))) Flag nil)
  8.         (setq str (cdr (assoc 1 (setq el (entget en)))))
  9.         (setq str (VL-STRING->LIST str))
  10.         (vl-some (function (lambda (x) (if (> x 159) (setq flag t)))) str)
  11.         (if (not flag) (entdel en))
  12.         )
  13.       )
  14.     )
  15.   )

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-19 01:11 , Processed in 0.204190 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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