明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: lee50310

[源码] <<<*** 雙線切割+切割字型功能 ***>>

    [复制链接]
发表于 2025-3-4 18:26:34 | 显示全部楼层
本帖最后由 水仙的错 于 2025-3-4 19:00 编辑

这个插件很好用
回复 支持 反对

使用道具 举报

发表于 2025-3-4 18:54:27 | 显示全部楼层
本帖最后由 水仙的错 于 2025-3-4 19:01 编辑

楼主能否分享没有文字版的源码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-5 17:00:10 | 显示全部楼层
本帖最后由 lee50310 于 2025-3-5 22:00 编辑
水仙的错 发表于 2025-3-4 18:54
楼主能否分享没有文字版的源码

不含文字切割版 自行修改方式
請下載最新版 dd9d_chs.lsp 由此版 修改
用文字編輯器 編輯 dd9d_chs.lsp

刪除 程式中步驟1,2,3 這些函數及代碼
1.

  1. ;;
  2. ;;http://bbs.mjtd.com/thread-171466-1-1.html
  3. ;;分解文字 程式 作者:荒野孤行
  4. ;;
  5. ;;;<<< *** 分解文字 程式開始 ***>>>
  6. (defun break_downTXT (ss2 / PtList)
  7.   (command "undo" "be")
  8.   (setvar "mirrtext" 1)
  9. .
  10. .
  11. .
  12.   (setvar "mirrtext" 0)
  13.   (command "undo" "e")

  14. )
  15. ;;;*****分解文字 程式結束*****


2.

  1. (initget "Y y Yes N n No")
  2. (setq key (getkword "nEnter 是否要切割文字? [Y/N]<N>: "))
  3. (if(= key nil)(setq key "N"))



3.
  1.       (if(/= sstxt nil)
  2.            (progn
  3.                (if(or (= key "Yes")(= key "YES")(= key "yes")(= key "Y")(= key "y"))  ;切割文字
  4.               (progn
  5.                         (change_layer  sstxt "msk" )               ;將物體搬到msk層
  6.                           (Active_Layer  "msk")                      ;設msk層為當前
  7.                  
  8.                   (princ "\n文字處理中......")
  9.                           (break_downTXT sstxt)                      ;分解文字
  10.                         (setq sse (ssget "_X" '((8 . "msk"))) )
  11.                           (edit_jj_pline sse)                        ;將文字接合為多段線
  12.                 (setq sse (ssget "_X" '((8 . "msk"))) )
  13.                   (Master_slave "msk")                      ;在指定層 "msk" 找出物體主從關係
  14.                           (sub_Masterslave wel )                     ;物體主從關係先做差集,若物體有包裹2層 則第一層主物 與 第二層所有物體 做差集         
  15.                 (setq sse (ssget "_X" '((8 . "msk"))) )            
  16.                 (change_layer  sse "tst" )                 ;將物體搬到tst層   
  17.                         
  18.                   (setq sstxt nil pn 1)     
  19.                     );end_progn
  20.               
  21.                 );end_if         
  22.         );end_progn
  23.                       (setq pn 0)   
  24.        );end_if

然後另存新檔 (檔名請自設) 即可


回复 支持 反对

使用道具 举报

发表于 2025-3-5 18:42:14 | 显示全部楼层
收到!,感谢楼主!
回复 支持 反对

使用道具 举报

发表于 2025-7-7 12:28:01 来自手机 | 显示全部楼层
不是封闭图形不能用,那位大神能帮修改下,不是封闭图形也能达到楼主那效果
回复 支持 反对

使用道具 举报

发表于 2025-7-7 12:51:19 来自手机 | 显示全部楼层
楼主能修改下,不是封闭图形中也能达到您那效果吧
回复 支持 反对

使用道具 举报

发表于 2025-7-7 15:18:53 | 显示全部楼层
有好多地方需要优化
  1. (foreach lay (list "msk" "tst")
  2.                 (if (not (tblsearch "layer" lay))
  3.                         (make_layer lay 2 "continuous")
  4.                 )
  5.         )

创建图层前判断下,图层存不存在,不存在再创建
initget在中望2014CAD里面,这么写(initget "Y Yes N No")就足够了,AutoCAD中,自行测试
(setq key (if key (strcase key) "N"))
(if (or (= key "YES") (= key "Y"))
在不需要返回的子函数或主函数中,最好在最后面增加上(prin1)防止输出或重复打印
所有的子函数中建议将变量设为局部变量,然后将所有的子函数抢嵌套在主函数里面,子函数名作为主函数的局部变量,具体参考http://bbs.mjtd.com/thread-192021-1-1.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-7-7 15:29:03 | 显示全部楼层
jianxiucai 发表于 2025-7-7 12:51
楼主能修改下,不是封闭图形中也能达到您那效果吧

很抱歉! 這個沒辦法做到
因為此程式要達到切割效果使用cad 面域指令: REGION
讓兩封閉的線物體先面域後再做差集
而要做面域線物體必須是封閉狀態才可,否則無法成功
回复 支持 反对

使用道具 举报

发表于 前天 09:13 | 显示全部楼层
程序对于常规多段线的封闭图形,和spl封闭图形,均能很好适用,非常棒!感谢!

同时,对于样条曲线和直线混杂的封闭图形,无效,例图,如附件;  如果这种情况,也能适配,功能将更加完美;可以广泛适用于广告喷绘雕刻行业的图形处理;

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 前天 19:30 | 显示全部楼层
本帖最后由 lee50310 于 2025-8-10 23:37 编辑
lengxiaxi 发表于 2025-8-10 09:13
程序对于常规多段线的封闭图形,和spl封闭图形,均能很好适用,非常棒!感谢!

同时,对于样条曲线和直 ...

spline 轉 pline 程式 將下面樓主的程式複製至文字編輯器 存成s2p.lsp
http://bbs.mjtd.com/forum.php?mo ... 59&highlight=spline
(ps:原本作者 段數設 (setq num 1000)  你可修改增加段數值 看看是否會更接近原圖)
s2p.lsp
1.執行 s2p指令  將圖中的 spline 轉換為 pline
2.再執行 切割程式 即可切割

因複雜的spline 線(封閉)有時無法完美轉換 為 pline(封閉)
會產稱一些誤差 這是我在論壇上找到轉換後的pline線物體 最近似原本的 spline線物體
若這些誤差 是你可容許的範圍 ,便可用切割程式來做切割



本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 04:31 , Processed in 0.160305 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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