明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 61186|回复: 237

[源码] 小笨词库DCL版 v2.0.10 (2024-8-3更新)

    [复制链接]
发表于 2012-8-30 23:10:01 | 显示全部楼层 |阅读模式
本帖最后由 jh1005 于 2024-8-3 10:24 编辑


2024-08-03更新:
  1.支持中望,浩辰

  2.修复对象引线的一些问题。
(注意:把词库目录加入CAD搜索目录,或把词库文件cclib.ini放到CAD搜索目录)


2024-07-24更新:
  1.取消注册表和词典保存设置,
设置保存到cc.ini文件里。

(旧版的注册表项:HKEY_CURRENT_USER\SOFTWARE\fyCAD不再使用,可自行删除

2024-07-14更新:
  1.新增:写出文字加下划线、词条按顺序写出。
  2.取消黑板空间变量,改用注册表保存对话框的值(位置:HKEY_CURRENT_USER\SOFTWARE\fyCAD\cc_keylst)
  3.修正当删除最后一个词类时不能保存的问题。


2024-05-21更新:
  修复使用注释性标注与全局比例冲突导致出错的问题。(感谢ninja37)
(注意:把词库目录加入CAD搜索目录,或把词库文件cclib.ini放到CAD搜索目录)



2024-05-09更新:

  1.增加图层,样式,箭头拾取(支持块内)。
  2.变量保存到词典,方便下次打开还原。
  3.修复下行文字为空白时,切换到写出文字闪退的bug。
  4.修正F8正交时十字光标不在引线上的问题,正交开关提示。
(感谢tigcat


2024-04-30更新:
  1.引线按【F8】键正交切换。
  2.自定义引线下方文字。
  3.跨文档记忆变量(重开CAD失效)。
  4.引线颜色和文字颜色独立设置。
  5.修复UCS的Z坐标不为0的Bug
(感谢tigcatlaorenhao999




2024-04-13更新:
  1.优化对象引线动态时的箭头方向的判定。
  2.引线下方时间文字修改为线下。


2024-04-09更新:
  修复写出文字时按Tab无法返回和查找会找到词类的bug(感谢sandyvs指出bug


2024-04-07更新:
  增加引线文字下加时间的开关。


2024-04-03更新:
  1.为了通用性,重写代码,改用DCL,不用安装OpenDCL。
  2.词类改用列表,不再局限于4类。
  3.增加“查找--定位词语”
  4.多行词条(使用分隔符\n)
  5.支持块内文字修改。
  6.只使用1个ini文件(旧版的4个ini文件,请自行合并)
  7.写出文字时,按[+]字体增大,按[-]字体缩小,按[<]逆时针旋转90度,按[>]顺针旋转90度。
  8.其余看帮助。








↓↓↓↓↓↓↓以下旧版需OpenDcl支持↓↓↓↓↓↓

新手写的一个词库,需OpenDcl支持,附源码,希望有人用得着。

2019-12-26更新
更新高版本支持




2012-9-18更新(感谢xotoo提出问题和建议):
1.文字写入后可按Tab键返回程序界面。
2.修改文字宽度比例、倾斜角度按所选的文字样式设置。


2012-9-17更新(感谢daidong013提出问题和建议):
1.修复全局标注比例的bug。
2.增加选词入库。
3.增加删除和调整顺序功能,调整顺序:选中一个,按住鼠标左键不放,可以随意拖动,从一栏拖放到另一栏也可以,调整好顺序后,记得按一下“保存词库”。
4.修复点引线按右键出错的Bug。
5.之前的写出文字/引线只能写一次又要重新打开对话框,现在修改为可以连续写出。


2012-9-8更新,修正空心箭头的bug,其它问题有时间再弄,感谢daidong013帮忙测试。












本帖子中包含更多资源

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

x

点评

小笨,偶像啊,这么多年过去了还在更新!真的不易!  发表于 2024-7-26 08:37
太给力了,有更新了。  发表于 2024-4-30 17:50
2012 x64运行命令无效  发表于 2012-9-15 13:54
更新及时!赞一个!  发表于 2012-8-31 21:34

评分

参与人数 17明经币 +17 金钱 +60 收起 理由
tanshun_ysjkd + 1 很给力!
lucas_3333 + 1 神马都是浮云
叮咚 + 1 赞一个!
love1030312 + 1 赞一个!
jltx123456 + 1 + 5 很给力!
fangmin723 + 1 + 50 很给力!
飞雪神光 + 1 很给力!
tigcat + 1 + 5 很给力!
菜鸟初来乍到 + 1
xj6019 + 1 很给力!

查看全部评分

"觉得好,就打赏"
    共2人打赏

本帖被以下淘专辑推荐:

  • · 收集|主题: 58, 订阅: 4
  • · excel|主题: 80, 订阅: 3
  • · 经典|主题: 27, 订阅: 2
发表于 2024-7-11 09:17:52 | 显示全部楼层
用了一下非常不错,但文字大小,箭头大小不能固定一个值,新开CAD后,又要重新设置,这个还是比较麻烦的,建议调整一下,可以保存设置好的参数,重启CAD后参数不要重新设置!

点评

2.0.8增加下划线,部分值改为存注册表,重启有记忆。(有些值只保存在当前文件词典里,并不是每个图档都有相同的值,比如:图层,文字样式,有些图没有这个图层或文字样式就没必要还原这个项了)  发表于 2024-7-14 18:07
回复 支持 1 反对 0

使用道具 举报

发表于 2012-8-31 19:50:24 | 显示全部楼层
确实不喜欢opendcl的版本,可否修改一下呢,该为dcl的
回复 支持 1 反对 0

使用道具 举报

发表于 2025-3-19 15:30:11 | 显示全部楼层
peter1991 发表于 2025-3-18 21:46
要是支持天正对象就更好了

  • 更改下面程序后支持部分天正对象,小白借用DEEPSEEk编写
  • (defun cc_text_edit                        ;文字替换、前缀、后缀
  •     (str m / ss ent sslen t1 nnn obt obj blockname block_n)
  •     (cond
  •         ((= m 1) (princ "\n文字替换,请选择文字、标注、块(用点选):"))    ;替换
  •         ((= m 2) (princ "\n文字加前缀,请选择文字、标注、块(用点选):"))  ;前缀
  •         ((= m 3) (princ "\n文字加后缀,请选择文字、标注、块(用点选):"))  ;后缀
  •     )
  •     (while (setq ss (ssget ":S" '((0 . "*TEXT,DIMENSION,INSERT,TCH_DRAWINGNAME,TCH_MULTILEADER"))))
  •         (fy_ErrorInit '("cmdecho" 0) 1 nil)
  •         (setq sslen (sslength ss))
  •         (foreach ent (fy_enlst ss)
  •             (if (= (cdr (assoc 0 (entget ent))) "INSERT")
  •                 (progn
  •                     (setq obt ent)  ;块图元名,用于后面修改后更新显示
  •                     (setq nnn (fy_ssnamex ss ent))    ;找出图元的选取方式
  •                     (cond
  •                         ((and nnn (= (car nnn) 1))  ;拾取 nnn = (1 <图元名: 2584e0cb3a0> 0 (0 (30.4132 6.54994 0.0)))
  •                             (setq ent (car (nentselp (last (last nnn)))))  ;块内子图元名
  •                         )
  •                         ((/= nnn 1)
  •                             (setq sslen (1- sslen))  ;不是拾取
  •                             (princ "\n块内文字请使用点选!")
  •                         )
  •                     )
  •                 )
  •             )
  •             (setq t1 (cdr (assoc 1 (entget ent))))
  •             (if (and (= (cdr (assoc 0 (entget ent))) "DIMENSION") (= t1 "")) (setq t1 "<>"))
  •             (if (and (vl-string-search "\\n" str) (or (= (cdr (assoc 0 (entget ent))) "DIMENSION") (= (cdr (assoc 0 (entget ent))) "MTEXT")))
  •                 (setq str (fy_Replace str "\\n" "\n"))  ;换行符
  •             )
  •             (if t1
  •                 (cond
  •                     ((= m 1)  ;替换
  •                         (if (/= t1 str)
  •                             (progn
  •                                 ;; 新增天正对象支持
  •                                 (cond
  •                                     ((wcmatch (cdr (assoc 0 (entget ent))) "TCH_*")  ;天正对象
  •                                         (setq obj (vlax-ename->vla-object ent))
  •                                         (cond
  •                                             ((= (cdr (assoc 0 (entget ent))) "TCH_TEXT")
  •                                                 (vlax-put-property obj 'Text str))
  •                                             ((= (cdr (assoc 0 (entget ent))) "TCH_DRAWINGNAME")
  •                                                 (vlax-put-property obj 'NameText str))
  •                                             ((= (cdr (assoc 0 (entget ent))) "TCH_MULTILEADER")
  •                                                 (vlax-put-property obj 'UpText str))
  •                                             (t  ;默认处理
  •                                                 (fy_PutDxf ent 1 str)
  •                                             )
  •                                         )
  •                                         (entupd ent)
  •                                     )
  •                                     (t  ;普通对象
  •                                         (fy_PutDxf ent 1 str)
  •                                         (if obt
  •                                             (mapcar 'entupd (fy_enlst (ssget "x" (list '(0 . "INSERT")))))
  •                                             (mapcar '(lambda(x) (entupd (cdr x))) (vl-remove-if-not '(lambda (x) (= (type (cdr x)) 'ENAME)) (entget ent))) ;更新关联图元
  •                                         )
  •                                     )
  •                                 )
  •                             )
  •                             (progn
  •                                 (setq sslen (1- sslen))
  •                                 (princ "\n选择对象已有该文字!")
  •                             )
  •                         )
  •                     )
  •                     ((= m 2)  ;前缀
  •                         (if (or (< (strlen t1) (strlen str)) (not (wcmatch t1 (strcat str "*"))))
  •                             (progn
  •                               (cond
  •                                     ((wcmatch (cdr (assoc 0 (entget ent))) "TCH_*")  ;天正对象
  •                                         (setq obj (vlax-ename->vla-object ent))
  •                                         (cond
  •                                             ((= (cdr (assoc 0 (entget ent))) "TCH_TEXT")
  •                                                 (vlax-put-property obj 'Text (strcat str t1)))
  •                                             ((= (cdr (assoc 0 (entget ent))) "TCH_DRAWINGNAME")
  •                                                 (vlax-put-property obj 'NameText (strcat str t1)))
  •                                             ((= (cdr (assoc 0 (entget ent))) "TCH_MULTILEADER")
  •                                                 (vlax-put-property obj 'UpText (strcat str t1)))
  •                                             (t  ;默认处理
  •                                                 (fy_PutDxf ent 1 (strcat str t1))
  •                                             )
  •                                         )
  •                                         (entupd ent)
  •                                     )
  •                                     (t  ;普通对象
  •                                         (fy_PutDxf ent 1 (strcat str t1))
  •                                         (if obt
  •                                             (mapcar 'entupd (fy_enlst (ssget "x" (list '(0 . "INSERT")))))
  •                                             (mapcar '(lambda(x) (entupd (cdr x))) (vl-remove-if-not '(lambda (x) (= (type (cdr x)) 'ENAME)) (entget ent))) ;更新关联图元
  •                                         )
  •                                     )
  •                                 )
  •                                 ;(fy_PutDxf ent 1 (strcat str t1))
  •                                 ;; 天正对象处理同上
  •                                 (entupd ent)
  •                             )
  •                             (progn
  •                                 (setq sslen (1- sslen))
  •                                 (princ "\n选择对象已有该前缀!")
  •                             )
  •                         )
  •                     )
  •                     ((= m 3)  ;后缀
  •                         (if (or (< (strlen t1) (strlen str)) (not (wcmatch t1 (strcat "*" str))))
  •                             (progn
  •                               (cond
  •                                     ((wcmatch (cdr (assoc 0 (entget ent))) "TCH_*")  ;天正对象
  •                                         (setq obj (vlax-ename->vla-object ent))
  •                                         (cond
  •                                             ((= (cdr (assoc 0 (entget ent))) "TCH_TEXT")
  •                                                 (vlax-put-property obj 'Text (strcat t1 str)))
  •                                             ((= (cdr (assoc 0 (entget ent))) "TCH_DRAWINGNAME")
  •                                                 (vlax-put-property obj 'NameText (strcat t1 str)))
  •                                             ((= (cdr (assoc 0 (entget ent))) "TCH_MULTILEADER")
  •                                                 (vlax-put-property obj 'UpText (strcat t1 str)))
  •                                             (t  ;默认处理
  •                                                 (fy_PutDxf ent 1 (strcat t1 str))
  •                                             )
  •                                         )
  •                                         (entupd ent)
  •                                     )
  •                                     (t  ;普通对象
  •                                         (fy_PutDxf ent 1 (strcat t1 str))
  •                                         (if obt
  •                                             (mapcar 'entupd (fy_enlst (ssget "x" (list '(0 . "INSERT")))))
  •                                             (mapcar '(lambda(x) (entupd (cdr x))) (vl-remove-if-not '(lambda (x) (= (type (cdr x)) 'ENAME)) (entget ent))) ;更新关联图元
  •                                         )
  •                                     )
  •                                 )
  •                                 ;(fy_PutDxf ent 1 (strcat t1 str))
  •                                 ;; 天正对象处理同上
  •                                 (entupd ent)
  •                             )
  •                             (progn
  •                                 (setq sslen (1- sslen))
  •                                 (princ "\n选择对象已有该后缀!")
  •                             )
  •                         )
  •                     )
  •                 )
  •             )
  •         )
  •         (fy_ErrorEnd)
  •     )
  •     (cond
  •         ((= m 1) (princ (strcat "\n共有" (itoa sslen) "个对象被替换为:" str)))
  •         ((= m 2) (princ (strcat "\n共有" (itoa sslen) "个对象前缀加上:" str)))
  •         ((= m 3) (princ (strcat "\n共有" (itoa sslen) "个对象后缀加上:" str)))
  •     )
  •     (princ)
  • )

回复 支持 反对

使用道具 举报

发表于 2012-8-31 06:25:15 | 显示全部楼层
no function definition: DCL_PROJECT_IMPORT
出现错误
发表于 2012-8-31 08:25:42 | 显示全部楼层
支持一下,opendcl没有啊,还是不能用哦!
 楼主| 发表于 2012-8-31 11:43:42 来自手机 | 显示全部楼层
feitianyiliu 发表于 2012-8-31 06:25 no function definition: DCL_PROJECT_IMPORT 出现错误

请安装opendcl,论坛置顶帖子有。
 楼主| 发表于 2012-8-31 11:45:41 来自手机 | 显示全部楼层
xyz2009xyz 发表于 2012-8-31 08:25 支持一下,opendcl没有啊,还是不能用哦!

论坛有下载,找找。需opendcl支持,谢谢使用。
发表于 2012-8-31 12:28:34 | 显示全部楼层
为什么我使用过程中缺少记忆功能!~~每次如果选点引线,下一次又到后缀上去了,又要去点一下,还有字高,图层,样式什么的!~~
发表于 2012-8-31 12:48:18 | 显示全部楼层
感觉不错,学习一下
发表于 2012-8-31 14:30:00 | 显示全部楼层
感觉不错,学习一下
 楼主| 发表于 2012-8-31 18:53:45 | 显示全部楼层
daidong013 发表于 2012-8-31 12:28
为什么我使用过程中缺少记忆功能!~~每次如果选点引线,下一次又到后缀上去了,又要去点一下,还有字高,图 ...

已更新,增加记忆功能,请重新下载,谢谢你的意见。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-4-2 06:26 , Processed in 0.215963 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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