明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 642|回复: 8

你好各位大神帮我修改一下这个代码我要在CAD2025上运行谢谢

[复制链接]
发表于 2024-8-5 08:40:02 | 显示全部楼层 |阅读模式
你好各位大神帮我修改一下这个代码我要在CAD2025上运行谢谢


你好各位大神帮我修改一下这个代码正常我在画多段线输入50多段线上就出现个50标注,现在是输入50他出现359.0197801584798麻烦各位大神帮帮忙修改输入多少数字就出现多少数字好比输入50就出现50。
(defun c:tg(/  p1 p2 p3 p4 pt dd)                       
    (command ".undo" "be")
  (setq p1(getpoint "\n指定点"))
  (command ".CIRCLE" "non" p1 3)
(while
  (setq p2(getpoint p1 "\n指定点")
        p3(polar p1 (angle p1 p2) 3)
        p4(polar p2 (angle p2 p1) 3)
        )
  (command ".line" "non" p3 "non" p4 "")
  (setq dd (distance p1 p2)
        pt (polar p2 (angle p2 p1) (+ (* dd 0.55) 1.5)))
    (command ".CIRCLE" "non" p2 3)
     (command ".text" "non" pt 6 (/ (* (angle p1 p2) 180.0) pi) (rtos dd 2 2)  "")
  (setq p1 p2)
)
  (command ".undo" "e")
  (princ)
)


这是第二个代码也是这种情况麻烦也帮我修改一下谢谢:

(defun c:t2t ( /  p1 p2 p3 p4 pt dd)                       
(command ".undo" "be")
(setq rad (getdist  "\n指定半径: "))
(setq p1 (getpoint "\n指定圆心: "))
(while
  (setq p2 (getpoint p1 "\n指定点") )
  (command ".line" "non" p1 "non" p2 "")
  (setq dd (distance p1 p2)
          pt (polar p2 (angle p2 p1)  (* dd 0.5)))
  (setq p3 (polar pt (atan (/ (* (angle p1 p2) 180.0) pi)) 0.6))
      (LM:CircularWipeout p1 rad)
     (command ".text" "j" "c" "non" p3 6 (/ (* (angle p1 p2) 180.0) pi) (rtos dd 2 2)  "")
  (setq p1 p2)
)
  (command ".undo" "e")
  (princ)
)
(defun LM:CircularWipeout ( cen rad / ang inc lst )
(setq acc 50 inc (/ pi acc 0.5) ang 0.0)
(repeat acc(setq lst (cons (list 14 (* 0.5 (cos ang)) (* 0.5 (sin ang))) lst)ang (+ ang inc)))
(entmakex(append(list '(000 . "WIPEOUT")'(100 . "AcDbEntity")'(100 . "AcDbWipeout")
(cons 10 (trans (mapcar '- cen (list rad rad)) 1 0))(cons 11 (trans (list (+ rad rad) 0.0) 1 0 t))
(cons 12 (trans (list 0.0 (+ rad rad)) 1 0 t))'(280 . 1)'(071 . 2))(cons (last lst) lst))))
(princ)
在CAD2024上好用在CAD2025上就不好用麻烦各位大神谢谢

本帖子中包含更多资源

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

x
发表于 2024-8-5 09:04:58 | 显示全部楼层
2025可能是重新了有些命令的参数,我这也是有几个LSP文件在2020-2024可以正常使用,但是2025就不行了。不知道具体是什么原因,坐等大佬们给个解决方案
发表于 2024-8-5 14:26:19 | 显示全部楼层
  1. (defun entmakecircle(pt rad)(entmakex (list '(0 . "circle") (cons 10 pt) (cons 40 rad))))
  2. (defun entmakeline(p1 p2)(entmakex (list '(0 . "line") (cons 10 p1) (cons 11 p2))))
  3. (defun entmaketext(pt str h ang)(entmakex (list '(0 . "TEXT") (cons 10 pt)(cons 11 pt)(cons 73 0)(cons 72 1) (cons 1 str) (cons 40 h)(cons 50 ang))))
  4. (vl-load-com)
  5. (defun c:tg(/ p1 p2 p3 p4 pt dd ang)  
  6.   (if(setq p1(getpoint "\n指定起点: "))
  7.     (progn
  8.       (vla-startundomark(vla-get-activedocument(vlax-get-acad-object)))
  9.       (entmakecircle p1 3)
  10.       (while(setq p2(getpoint p1 "\n指定下一点(空格退出): "))
  11.         (setq p3(polar p1 (angle p1 p2) 3)
  12.               p4(polar p2 (angle p2 p1) 3)
  13.               )
  14.         ;;文字中点
  15.         (setq pt(mapcar '(lambda(x y)(*(+ x y) 0.5)) p1 p2))       
  16.         (setq dd(distance p1 p2))
  17.         (entmakeline p3 p4)
  18.         (entmakecircle p2 3)
  19.         (setq ang (angle p1 p2))
  20.         ;;文字正向
  21.         (if(and (> ang (* pi 0.5)) (< ang  (* pi 1.5)))(setq ang (angle p2 p1)))
  22.         ;;文字偏移
  23.         (setq pt (polar pt (+ ang (* 0.5 pi)) 0.625))
  24.         ;;生成文字
  25.         (entmaketext pt (rtos dd 2 2) 6 ang)
  26.         (setq p1 p2)
  27.         )
  28.       (vla-endundomark(vla-get-activedocument(vlax-get-acad-object)))
  29.       )
  30.     )
  31.   (princ)
  32.   )
发表于 2024-8-5 14:59:17 | 显示全部楼层

赞一个,确实比command要beautiful
 楼主| 发表于 2024-8-5 16:19:29 | 显示全部楼层
本帖最后由 万事如意 于 2024-8-5 16:32 编辑

你好大神我在CAD2025里以前图纸里用输入米数就出问题我在CAD里新建一个空间就好了你好大神我是不是CAD哪个地方设置不对你帮我看一下我的这个图纸在麻烦大神能把数字离开多段线1mm距离谢谢你。

本帖子中包含更多资源

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

x
发表于 2024-8-5 17:16:55 | 显示全部楼层
万事如意 发表于 2024-8-5 16:19
你好大神我在CAD2025里以前图纸里用输入米数就出问题我在CAD里新建一个空间就好了你好大神我是不是CAD哪 ...

复现不了你的问题. 文字偏移改0.625为 1 即可 (setq pt (polar pt (+ ang (* 0.5 pi)) 1))
发表于 2024-8-5 18:29:18 | 显示全部楼层
2025还没有用啊。
 楼主| 发表于 2024-8-6 08:14:50 | 显示全部楼层
edata 发表于 2024-8-5 17:16
复现不了你的问题. 文字偏移改0.625为 1 即可 (setq pt (polar pt (+ ang (* 0.5 pi)) 1))

你好大神能把标注数字离开多段线1-2mm距离谢谢你。
我用你这个改了文字偏移改0.625为 1 即可 (setq pt (polar pt (+ ang (* 0.5 pi)) 1))标注的文字还紧贴多段线。http://bbs.mjtd.com/forum.php?mo ... 3D&noupdate=yes
发表于 2024-8-6 13:39:13 | 显示全部楼层
还是无法复现你的问题.

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-25 03:31 , Processed in 0.165479 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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