明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6935|回复: 119

【DZ】文字增减_v1.9——支持词组匹配+钢筋符号+罗马数字

    [复制链接]
发表于 2023-5-29 21:35 | 显示全部楼层 |阅读模式
本帖最后由 kucha007 于 2024-3-21 21:43 编辑

源程序出处:http://bbs.mjtd.com/forum.php?mo ... 794&fromuid=7329538

用了很久,非常好用。但也有一些小问题,就做了一些调整。

1-程序使用逻辑不变:目前支持单行文字+属性文字(源程序不支持)+块内属性文字。
2-汉字匹配方式做了调整,方便后面增加一些常用字符,有需要也可以自己改。
3-如果文字位于锁定的图层则无法编辑,这里做了判断,会弹窗提示。
主要会出现在块内属性文字和块外不随层的情况。
4-程序会临时关闭捕捉,避免选字时出错
5-支持四级钢筋符号,扩充特殊符号列表,避免文字分解错误。
6-支持词组匹配
7-支持单行且不带格式的多行属性文字


  1. (setq Defined
  2.     (List
  3.       "%%130" "%%131" "%%132" "%%133" "%%134" ;1~4级钢筋符号+特殊钢筋
  4.       "%%135" "%%136" "%%137" "%%138" ;L型钢+H型钢+槽型钢+工字钢
  5.       "%%150" "%%151" "%%152" "%%153" "%%154" "%%155" "%%156" "%%157" "%%158" "%%159" ;罗马数字
  6.       "%%177" "%%p" "%%P" ;正负号
  7.       "%%c" "%%C" "%%D" "%%d" "%%%";直径符号+度数符号+%
  8.       '("%%140" "%%141") '("%%142" "%%143") ;上下标开关
  9.       '("%%200" "%%201") '("%%202" "%%203") '("%%204" "%%205") ;圆圈数字
  10.     )
  11. )


  1. ;单字符列表:相同的字符不能重复出现,否则容易匹配错误
  2. (setq OneSTRLst
  3.   (list
  4.     '("零" "壹" "贰" "叁" "肆" "伍" "陆" "柒" "捌" "玖" "拾" "佰" "仟" "萬" "億")
  5.     '("一" "二" "三" "四" "五" "六" "七" "八" "九" "十")
  6.     '("甲" "乙" "丙" "丁" "戊" "己" "庚" "辛" "壬" "癸")
  7.     '("㈠" "㈡" "㈢" "㈣" "㈤" "㈥" "㈦" "㈧" "㈨" "㈩") ;括号汉字
  8.     '("⑴" "⑵" "⑶" "⑷" "⑸" "⑹" "⑺" "⑻" "⑼" "⑽") ;括号数字
  9.     '("①" "②" "③" "④" "⑤" "⑥" "⑦" "⑧" "⑨" "⑩") ;圆圈数字
  10.     '("Ⅰ" "Ⅱ" "Ⅲ" "Ⅳ" "Ⅴ" "Ⅵ" "Ⅶ" "Ⅷ" "Ⅸ" "Ⅹ" "Ⅺ" "Ⅻ") ;罗马数字1-12大写
  11.     '("ⅰ" "ⅱ" "ⅲ" "ⅳ" "ⅴ" "ⅵ" "ⅶ" "ⅷ" "ⅸ" "ⅹ") ;罗马数字1-10小写
  12.     '("%%130" "%%131" "%%132" "%%133") ;钢筋符号
  13.     '("红" "橙" "黄" "绿" "青" "蓝" "紫")
  14.     '("前" "后" "左" "右" "上" "下")
  15.     '("东" "西" "南" "北" "中")
  16.     '("酸" "甜" "苦" "辣" "咸")

  17.     '("春" "夏" "秋" "冬")
  18.     '("加" "减" "乘" "除")
  19.     '("喜" "怒" "哀" "乐")
  20.     '("爱" "恨" "情" "愁")
  21.     '("江" "河" "湖" "海")
  22.     '("琴" "棋" "书" "画")
  23.     '("大" "小" "多" "少")

  24.     '("天" "地" "人")
  25.     '("日" "月" "年")
  26.     '("时" "分" "秒")
  27.     '("黑" "白" "灰")
  28.     '("平" "立" "剖")
  29.     '("正" "背" "侧")

  30.     '("-" ".")
  31.     '(":" ":")
  32.     '("," ",")
  33.     '("(" "(" "[")
  34.     '(")" ")" "]")
  35.     '("主" "次")
  36.     '("给" "排")
  37.     '("梁" "板")
  38.     '("水" "电")
  39.     '("雨" "污")
  40.     '("男" "女")
  41.     '("开" "关")
  42.     '("进" "出")
  43.     '("新" "旧")
  44.     '("美" "丑")
  45.     '("好" "坏")
  46.     '("动" "静")
  47.     '("冷" "热")
  48.     '("强" "弱")
  49.     '("明" "暗")
  50.     '("善" "恶")
  51.     '("真" "假")
  52.     '("高" "矮")
  53.     '("胖" "瘦")
  54.     '("长" "短")
  55.     '("宽" "窄")
  56.     '("快" "慢")
  57.     '("远" "近")
  58.     '("软" "硬")
  59.     '("轻" "重")
  60.     '("清" "浊")
  61.     '("昼" "夜")
  62.     '("香" "臭")
  63.     '("深" "浅")
  64.     '("胜" "败")
  65.     '("干" "湿")
  66.     '("顺" "逆")
  67.     '("推" "拉")
  68.     '("伸" "缩")
  69.     '("升" "降")
  70.     '("单" "双")
  71.     '("奇" "偶")
  72.     '("阴" "阳")
  73.     '("顶" "底")
  74.     '("粗" "细")
  75.   )
  76. )


  1. ;多字符列表:字符串包含在另一个串字符中时,较长的写在前面
  2. (setq MoreSTRLst
  3.   (list
  4.     '("亚光面" "光面" "烧面" "烧洗面" "荔枝面" "自然面")
  5.     '("详图" "平面图" "立面图" "剖面图" "大样图" "意向图")
  6.     '("园建" "给排水" "电气" "水电" "结构")
  7.     '("索引及物料" "索引" "物料" "尺寸及竖向" "尺寸定位" "竖向设计" "坐标定位" "网格放样")
  8.     '("尺寸" "尺寸定位")
  9.     '("竖向" "竖向设计")
  10.     '("置石分布" "小品设施分布" "超荷载换填")
  11.     '("置石" "置石分布")
  12.     '("小品" "小品设施分布")
  13.     '("镀锌" "热镀锌" "不锈钢")
  14.     '("方通" "圆通" "扁通")
  15.     '("竹木" "塑木" "防腐木")
  16.   )
  17. )











本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 3明经币 +3 收起 理由
菜鸟初来乍到 + 1 赞一个!
lee50310 + 1 很给力!
1028695446 + 1 很给力!

查看全部评分

 楼主| 发表于 2023-6-2 16:09 | 显示全部楼层
qazxswk 发表于 2023-6-2 15:31
阅读权限设置太高,这就如视频网站看视频前的广告,没钱人因为没有钱充会员,看了广告却买不起广告里的商品 ...

那我不管。反正有fas可以用,想下源码就混论坛。
会不会写关我屁事,我只是不想自己花时间完善的程序被不懂的人乱改,然后疯狂问我为什么改了不行?
有这个权限的人哪怕不知道怎么改,也应该知道问没意义的问题不如多反馈bug一起完善程序。或者直接贴代码出来一起学习

评分

参与人数 2明经币 +2 收起 理由
Aries + 1 赞一个!
xj6019 + 1 赞一个!

查看全部评分

回复 支持 4 反对 0

使用道具 举报

 楼主| 发表于 2023-5-30 08:30 | 显示全部楼层
e719 发表于 2023-5-30 08:24
阅读权限: 50
......

非要下源码?
我定的权限和我现在的一样,这样能下源码的基本上就能看懂怎么回事,知道怎么改。
不会改的,直接用fas的就好
回复 支持 0 反对 1

使用道具 举报

发表于 2023-9-23 09:23 | 显示全部楼层
本帖最后由 小毛草 于 2023-9-23 09:53 编辑
kucha007 发表于 2023-9-22 20:36
修复了,再试试看

确实已经修复,谢谢!兄弟,能让以下代码支持属性块吗?
  1. ;_仿sketchup动态复制程序
  2. (defun   c:ddc (/ #error $orr p1 p2 s e cn a1 d1 ns cnn)
  3. ;___
  4. (defun #error (s)
  5.     (command ".UNDO" "E")
  6.     (setvar "osmode" snap)
  7.     (setq *error* $orr)
  8.   )
  9.   (setq snap (getvar "osmode"))
  10.   (setvar "cmdecho" 0)
  11.   (setq $orr *error*
  12.         *error* #errormike
  13.   )_______________
  14.   (defun ttt (ss n / m)
  15.     (setq ee e
  16.       ns (ssadd)
  17.     )
  18.     (while (setq ee (entnext ee))
  19.       (setq ns (ssadd ee ns))
  20.     )
  21.     (command "erase" ns "")
  22.     (command "copy" ss "" "m" "non" p1)
  23.     (if (member (substr n (strlen n)) '("/" "*"))      
  24.       (progn
  25.   (setq m 0)
  26.   (repeat  (atoi n)
  27.     (setq m (1+ m))
  28.     (cond
  29.       ((= "/" (substr n (strlen n)))
  30.        (command "non"(mapcar '(lambda (x y) (+ x (* m (/ (- y x) (atof n))))) p1 p2))
  31.       )
  32.       ((= "*" (substr n (strlen n)))
  33.        (command "non"(mapcar '(lambda (x y) (+ x (* m (- y x)))) p1 p2))
  34.       )
  35.     )
  36.   )
  37.       )
  38.       (command "non" (setq p2 (polar p1 a1 (atof n))))
  39.     )
  40.     (command)
  41.   )
  42. ;__________________
  43.   (princ "\n动态复制程序")
  44.   (princ "\n选择要复制的物体:")
  45.   (setq s (ssget))
  46.   (setq p1 (getpoint "\n复制的起点:"))
  47.   (command "undo" "be" "line" p1 p1 "" )
  48.   (setq e (entlast) )
  49.   (command "copy" s "" "non" p1 pause)
  50.   (setq  p2 (getvar "lastpoint")
  51.   a1 (angle p1 p2)
  52.   d1 (distance p1 p2)
  53.   )
  54.   (setq cn "1*")
  55.   (while cn
  56.     (ttt s cn)
  57.     (initget 128)
  58.     (princ "\n输入坐标=复制终点                         输入数值=修改间距 ")
  59.     (princ "\n输入数值n并以 / 结束=间距内等分n次复制    输入数值n并以 * 结束=按间距复制n次 ")
  60.     (setq cnn (getpoint "\n请按提示输入<退出>:"))
  61.     (if  (= 'LIST (type cnn))
  62.       (setq p2 cnn
  63.       a1 (angle p1 p2)
  64.       d1 (distance p1 p2)
  65.       )
  66.       (setq cn cnn)
  67.     )
  68.   )
  69.   (entdel e)
  70.   (command "undo" "e")
  71.   (princ)
  72. )

  73. ________________________________________________
  74. ;_仿sketchup动态旋转程序
  75. (defun c:ddr(/ p1 p2 p3 a1 cn cnn tmp e s)
  76.   ;_____________________________
  77.   (defun rc (os / ns ne)
  78.     (setq ne (entlast)
  79.     ns (ssadd)
  80.     )
  81.     (command "copy" os ""  "0,0"   "0,0")
  82.     (while (setq ne (entnext ne))
  83.       (setq ns (ssadd ne ns))
  84.     )
  85.     ns
  86.   )
  87.   (defun ttt (ss n / m ee ns sn )
  88.     (setq ee e
  89.       ns (ssadd)
  90.     )
  91.     (while (setq ee (entnext ee))
  92.       (setq ns (ssadd ee ns))
  93.     )
  94.     (command "erase" ns "")   
  95.     (if (member (substr n (strlen n)) '("/" "*"))      
  96.       (progn
  97.   (setq m 0)
  98.   (repeat  (atoi n)
  99.     (setq m (1+ m))
  100.     (setq sn(rc ss))
  101.     (cond
  102.       ((= "/" (substr n (strlen n)))
  103.        (command  "rotate" sn "" p1 (* m (/ a1 (atof n))))
  104.       )
  105.       ((= "*" (substr n (strlen n)))
  106.        (command  "rotate" sn "" p1 (* m a1))
  107.       )
  108.     )
  109.   )
  110.       )
  111.       (progn
  112.   (setq sn(rc ss))
  113.       (command  "rotate" sn "" p1 (setq a1 (atof n)))
  114.       )
  115.     )
  116.   )
  117.   ;_____________________________
  118.   (princ "\n动态旋转程序")
  119.   (princ "\n选择要旋转的物体:")  
  120.   (setq s (ssget))
  121.   (setq p1 (getpoint "\n旋转基点"))
  122.   (setq p2 (getpoint p1 "\n旋转起点"))
  123.   (command "undo" "be" "line"  p1  p2 "")
  124.   (setq e (entlast))
  125.   (setq p3 (getpoint p1 "\n旋转终点"))
  126.   (setq tmp (rc s) )
  127.   (command  "rotate" tmp ""  p1 "r"  p1  p2  p3)
  128.   (setq cn "1*" a1 (* 180 (/ (-(angle p1 p3)(angle p1 p2))pi)))  
  129.   (while cn   
  130.     (ttt s cn)
  131.     (initget 128)
  132.     (princ "\n输入坐标=旋转终点                         输入数值=旋转角度 ")
  133.     (princ "\n输入数值n并以 / 结束=角度内等分n次复制    输入数值n并以 * 结束=按角度复制n次 ")
  134.     (setq cnn (getpoint "\n请按提示输入<退出>:"))
  135.     (if  (= 'LIST (type cnn))
  136.       (setq p3 cnn
  137.       a1 (* 180 (/ (-(angle p1 p3)(angle p1 p2))pi))
  138.       )
  139.       (setq cn cnn)
  140.     )
  141.   )
  142.   (entdel e)
  143.   (command "undo" "e")
  144.   (princ)
  145. )

发表于 2023-5-30 08:24 | 显示全部楼层
阅读权限: 50
......
发表于 2023-5-30 08:38 | 显示全部楼层
虽然不会大改,但源码可以按照自己的需求小改。
发表于 2023-5-30 08:40 | 显示全部楼层
最最最常改的是快捷键,每个人的使用习惯不同,就会按自己的习惯来改2
 楼主| 发表于 2023-5-30 08:41 | 显示全部楼层
e719 发表于 2023-5-30 08:40
最最最常改的是快捷键,每个人的使用习惯不同,就会按自己的习惯来改2

那就下链接里的源程序
发表于 2023-5-30 08:42 | 显示全部楼层
kucha007 发表于 2023-5-30 08:41
那就下链接里的源程序

嗯嗯,还差点权限
抱歉,只有特定用户可以下载本站附件
 楼主| 发表于 2023-5-30 08:46 | 显示全部楼层
e719 发表于 2023-5-30 08:42
嗯嗯,还差点权限
抱歉,只有特定用户可以下载本站附件

降到40了,你可以下
发表于 2023-5-30 09:06 | 显示全部楼层
谢谢分享,可以改快捷键了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 19:06 , Processed in 0.251942 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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