明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1399|回复: 5

[经验] 图幅变换

[复制链接]
发表于 2013-9-17 19:36 | 显示全部楼层 |阅读模式
请高手帮个忙如何让字符串为A2x3
变成1.5A1字符串
A2x2.5  =》1.25A1
A3x4    =>2A2
等等谢谢啦
发表于 2013-9-17 20:02 | 显示全部楼层
FIND查找替换
发表于 2013-9-17 20:33 | 显示全部楼层
本帖最后由 namezg 于 2013-9-17 20:46 编辑

(mapcar 'test '("A2x3" "A2x2.5" "A3x4"))
返回值:'("1.5A1" "1.25A1" "2A2")
  1. (defun test (str / i j k newstr)
  2.         (setq i (substr str 2 1))
  3.         (setq j (substr str (+ (vl-string-search "x" str) 2)))
  4.         (setq k (/ (read j) 2.0))
  5.         (if (= (- (float k) (fix k)) 0)
  6.                 (setq k (fix k))
  7.                 (setq k (float k))
  8.         )
  9.         (setq newstr (strcat (vl-princ-to-string k) "A" (itoa (1- (atoi i)))))
  10. )
发表于 2013-9-17 20:52 | 显示全部楼层
现来个简单点的
  1. ;(mapcar 'test '("A2x3" "A2x2.5" "A3x4"))
  2. ;返回值:'("1.5A1" "1.25A1" "2A2")
  3. (defun test (str / i j k newstr)
  4.         (setq i (substr str 2 1))
  5.         (setq j (substr str (+ (vl-string-search "x" str) 2)))
  6.         (setq k (/ (read j) 2.0))
  7.         (setvar "dimzin" 8)
  8.         (setq newstr (strcat (rtos k 2 4) "A" (itoa (1- (atoi i)))))
  9. )

 楼主| 发表于 2013-9-17 21:14 | 显示全部楼层
namezg 发表于 2013-9-17 20:52
现来个简单点的

好谢谢namezg
我看到了思路明天去公司试试
我在结合特定的程序看看谢谢啦
 楼主| 发表于 2013-9-18 20:25 | 显示全部楼层
本帖最后由 流_星 于 2013-10-11 19:18 编辑

;这里谢谢namezg,给我的帮助
(setq s nil s (ssget "X" (list (cons 2 "tzmu"))))
(if s (Progn
    (setq ss (entget (ssname s 0)))  
    (SETQ SQ NIL)
    (WHILE (/= SQ "SEQEND")
           (SETQ SS (ENTGET (ENTNEXT (CDR (ASSOC '-1 SS)))));(PRINC  SS)
           (SETQ SQ (CDR (ASSOC '0 SS)))
           (if (= "图幅"   (cdr (assoc '2 ss)))(setq tf (cdr (assoc '1 ss))))
         
    ) ;WHILE SQ
(if (= (strlen tf) 2)(setq ntf tf))
(if (> (strlen tf) 2)(progn
        (setq i (substr tf 2 1))
        (setq j (substr tf (+ (vl-string-search "x" tf) 2)))
        (setq k (/ (read j) 2.0))
        (setq ntf (strcat (rtos k 2 4) "A" (itoa (1- (atoi i)))))
))
    ))
    现在就是变不了不知道啥原因请高手修改一下谢谢
如tf=“A3x2.5”那么应该结果ntf应该是1.25A2等等
tf=”A2x3“那么tf应该是1.5A1
谢谢高手啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 06:13 , Processed in 0.199584 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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