明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7610|回复: 11

[已解答] 求一个方便实用的画CAD双折断线的程序

[复制链接]
发表于 2013-6-23 10:13 | 显示全部楼层 |阅读模式
在画CAD图时,有的图可能尺寸较长或者只画其中的一部分需要画上双折断符号,所以需要一个这样的程序或插件,谢谢。
发表于 2018-1-30 14:09 | 显示全部楼层
yoyoho 发表于 2013-6-25 08:13
;;; ------------------------------------------------------------------
;;; jdx2 画截断双线
(defun  ...

个人意见:
(setq ptt (polar pt1 (- ang (/ pi 2)) (* 1 scale)))
改为
(setq ptt (polar pt1 (- ang (/ pi 2)) (* 6 scale)))
比较合适。

(setq scale 50)
比较合适。
发表于 2018-1-25 23:37 | 显示全部楼层
村夫 发表于 2013-6-24 11:55
(defun c:zdx (/ osmo cmde orth ang angx dist leng lengx pta ptb lengy p1 p2 p3 p4
             p5   ...

全局比例,应该添哪里啊
发表于 2018-1-30 22:32 | 显示全部楼层
fl202 发表于 2018-1-30 14:09
个人意见:
(setq ptt (polar pt1 (- ang (/ pi 2)) (* 1 scale)))
改为

谢谢您的建议!!!!!
发表于 2013-6-23 10:22 | 显示全部楼层
zdx(折断线)学院派工具箱
 楼主| 发表于 2013-6-23 11:27 | 显示全部楼层
清风明月名字 发表于 2013-6-23 10:22
zdx(折断线)学院派工具箱

你好,能给发过来么?857535392@qq.com,非常感谢。
发表于 2013-6-23 11:43 | 显示全部楼层
ET里就有这个工具
发表于 2013-6-23 12:49 | 显示全部楼层
ET里就有这个工具:breakline

点评

谢谢,去找找。  发表于 2013-6-23 19:23
发表于 2013-6-24 11:55 | 显示全部楼层
本帖最后由 村夫 于 2013-6-24 11:58 编辑

(defun c:zdx (/ osmo cmde orth ang angx dist leng lengx pta ptb lengy p1 p2 p3 p4
             p5        p6 p7 p8 pt1 pt2)
    (setq osmo  (getvar "osmode")
          cmde  (getvar "cmdecho")
          orth (getvar "orthomode")
    )
  (while (setq pt1 (getpoint "\n第一点:"))
    (setq pt2 (getpoint pt1 "\n第二点:"))
    (if        (and pt1 pt2)
      (progn
        (setvar "cmdecho" 0)
        (setvar "osmode" 0)
        (setvar "orthomode" 0)
        (setq ang   (angle pt1 pt2)
              angx  (/ pi 12)
              dist   (distance pt1 pt2)
              leng  (+ dist 2.5)
              lengx (/ 1.75 (cos angx))
              pta   (polar pt1 (+ pi ang) 1.25)
              ptb   (polar pt2 ang 1.25)
              lengy (* 1.75 (/ (sin angx) (cos angx)))
        )
        (if (< dist 40.0)
          (progn
            (setq p1 (polar (polar pt1 ang (* 0.5 dist))
                            (+ ang pi)
                            (* 2 lengy)
                     )
                  p2 (polar p1 (- ang (* 5 angx)) lengx)
                  p3 (polar p2 (+ ang (* 5 angx)) (* 2 lengx))
                  p4 (polar p3 (- ang (* 5 angx)) lengx)
            )
            (command "pline" pta p1 p2 p3 p4 ptb "")
          )
          (progn
            (setq p1 (polar (polar pt1 ang (/ dist 3))
                            (+ ang pi)
                            (* 2 lengy)
                     )
                  p2 (polar p1 (- ang (* 5 angx)) lengx)
                  p3 (polar p2 (+ ang (* 5 angx)) (* 2 lengx))
                  p4 (polar p3 (- ang (* 5 angx)) lengx)
                  p5 (polar (polar pt1 ang (* 2 (/ dist 3)))
                            (+ ang pi)
                            (* 2 lengy)
                     )
                  p6 (polar p5 (- ang (* 5 angx)) lengx)
                  p7 (polar p6 (+ ang (* 5 angx)) (* 2 lengx))
                  p8 (polar p7 (- ang (* 5 angx)) lengx)
            )
            (command "pline" pta p1 p2 p3 p4 p5 p6 p7 p8 ptb "")
          )
        )
      )
    )
  (setvar "cmdecho" cmde)
  (setvar "osmode" osmo)
  (setvar "orthomode" orth)
  )
  (princ "\n无效或未有选取点!")
  (princ)
)

(princ "ZDX")
 楼主| 发表于 2013-6-24 21:49 | 显示全部楼层
村夫 发表于 2013-6-24 11:55
(defun c:zdx (/ osmo cmde orth ang angx dist leng lengx pta ptb lengy p1 p2 p3 p4
             p5   ...

非常感谢,研究一下啦。
发表于 2013-6-25 08:13 | 显示全部楼层
;;; ------------------------------------------------------------------
;;; jdx2 画截断双线
(defun C:jdx2 (/ lay pt1 pt2 dis x1 pt3 pt4 pt5 pt6 ss ptt scale)
(command "osnap" "endp,mid,int,cen")   ;;;设定抓端点,中点,交点,圆中心
(setvar "CMDECHO" 0)
(setq lay (getvar "clayer"))
(command "color" "bylayer")
(command "layer" "m" "jdx" "c" "m" "jdx" "")
(setq scale (getreal "\nScale<300>:"))
(if (= scale nil)
(setq scale 300)
)
(setq pt1 (getpoint "\nFirst point:"))
(setq pt2 (getpoint pt1 "\nSecond point:"))
(setq ang (angle pt1 pt2))
(setq dis (distance pt1 pt2))
(setq x1 (/ (- dis (* 2 scale)) 2))
(setq pt3 (polar pt1 ang x1))
(setq pt4 (polar pt1 ang (+ x1 (* 2 scale))))
(setq pt5 (polar pt3 (+ ang 1.32582) (* 2.0616 scale)))
(setq pt6 (polar pt4 (- ang 1.81577) (* 2.0616 scale)))
(setq ptt (polar pt1 (- ang (/ pi 2)) (* 1 scale)))
(setq osd (getvar "osmode"))  
(setvar "osmode" 0 )      
(command "pline" pt1 "w" "0" "0" pt3 pt5 pt6 pt4 pt2 "")
(setq ss (entlast))
(command "copy" ss "" pt1 ptt)
(command "layer" "s" lay "")
(setvar "osmode" osd)
(princ)
(princ)
)
 楼主| 发表于 2013-6-25 09:27 | 显示全部楼层
yoyoho 发表于 2013-6-25 08:13
;;; ------------------------------------------------------------------
;;; jdx2 画截断双线
(defun  ...

谢谢好心人
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-17 02:21 , Processed in 0.260774 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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