明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 万事如意

绘制多段线自动在多段线各个端点添加直径1.5圆,删除圆内其它线段

[复制链接]
发表于 2024-1-21 00:08:45 来自手机 | 显示全部楼层
hao3ren 发表于 2024-1-20 12:38
圆圈用遮罩不好吗,为啥要剪断

你这样说,说明你没有看懂代码。没用剪断操作,是直接在两个圆之间画直线的。
回复

使用道具 举报

 楼主| 发表于 2024-1-22 19:06:46 | 显示全部楼层
kwok 发表于 2024-1-15 09:38
(defun c:tt ( /  p1 p2 p3 p4 pt dd)                       
    (command ".undo" "be")
  (s ...

你好大神多段线上的数字紧贴线,可以离开多段线2毫米吗?麻烦你了大神帮帮忙改一下谢谢你了。
回复

使用道具 举报

 楼主| 发表于 2024-1-22 19:11:25 | 显示全部楼层
kwok 发表于 2024-1-20 17:55
(setq dd (distance p3 p4)改为(setq dd (distance p1 p2)

你好大神麻烦你了帮我把多段线上的数字离开多段线2毫米,谢谢你了。
回复

使用道具 举报

发表于 2024-1-22 23:55:37 | 显示全部楼层
qazxswk 发表于 2024-1-21 00:08
你这样说,说明你没有看懂代码。没用剪断操作,是直接在两个圆之间画直线的。

(defun c:t1t ( /  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) 1.5)))
      (LM:CircularWipeout p1 rad)
     (command ".text" "non" pt 0.75 (/ (* (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)
回复

使用道具 举报

 楼主| 发表于 2024-1-23 08:43:47 | 显示全部楼层
hao3ren 发表于 2024-1-22 23:55
(defun c:t1t ( /  p1 p2 p3 p4 pt dd)                       
    (command ".undo" "be")
(setq rad ...

你好大神你这个太厉害,你好大神麻烦你了帮我把你这个代码在多段线上的数字离开多段线0.6-1毫米左右,谢谢你了。
回复

使用道具 举报

发表于 2024-1-23 11:50:51 | 显示全部楼层
与线段方向有关系,调整后可能还不如贴线的效果
回复

使用道具 举报

 楼主| 发表于 2024-1-23 13:32:47 | 显示全部楼层
hao3ren 发表于 2024-1-23 11:50
与线段方向有关系,调整后可能还不如贴线的效果

你好大神麻烦你帮帮忙修改一下,在多段线上的数字离开多段线0.6毫米左右,因为我画图的时候有一部分多段线需要加粗0.6毫米,这样多段线就把数字给覆盖一部分,大神求你帮我修改一下谢谢你了。
回复

使用道具 举报

发表于 2024-1-23 16:43:21 | 显示全部楼层
我不是大神,瞎改,凑活着用好了
(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 0.75 (/ (* (angle p1 p2) 180.0) pi) (rtos dd 2 2)  "")
  (setq p1 p2)
)
  (command ".undo" "e")
  (princ)
)
回复

使用道具 举报

 楼主| 发表于 2024-1-24 08:36:28 | 显示全部楼层
hao3ren 发表于 2024-1-23 16:43
我不是大神,瞎改,凑活着用好了
(defun c:t2t ( /  p1 p2 p3 p4 pt dd)                       
(comman ...

你好大神你这个代码我在CAD2024上就好用了一次,数字离开多段线的距离正好,在用第二次,数字还是贴着多段线,还得麻烦大神改一改,谢谢你。
回复

使用道具 举报

 楼主| 发表于 2024-1-24 08:45:32 | 显示全部楼层
hao3ren 发表于 2024-1-23 16:43
我不是大神,瞎改,凑活着用好了
(defun c:t2t ( /  p1 p2 p3 p4 pt dd)                       
(comman ...

你好大神我第二次加载,我输入圆的直径完事,去画多段线就是一条多段线,没有数字和圆,怎么加载都一样,麻烦你帮帮忙修改以下,谢谢你。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 06:34 , Processed in 0.157870 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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