找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 583|回复: 13

[求助]:谁能告诉我折断线该怎么画?

[复制链接]
发表于 2004-9-24 10:01:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
谁能告诉我折断线该怎么画?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-9-24 10:16:18 | 显示全部楼层
安装ET后有绘制折断线的命令。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-24 10:36:43 | 显示全部楼层
我没装ET该怎么画
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-24 10:55:37 | 显示全部楼层
没装ET那就一笔一笔的画。



装了ET这样画:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-9-24 10:58:18 | 显示全部楼层
最初由 xxming 发布
[B]我没装ET该怎么画 [/B]

一个古旧程序:
命令:sect1、sect2
[php](defun c:sect1(/ pt1 pt2 wb wb1 x1 x2 y1 y2)
  (command "color" (getvar "cecolor"))
  (setq pt1 (getpoint "\nPick start point: ")
        pt2 (getpoint pt1 "\nThe end point: ")
  )
  (if (= (setq wb (getvar "userr1")) 0.0) (setq wb 0.2))
  (princ "\nHalf width of break mark < ")
  (princ wb)
  (setq wb1 (getdist " >: "))
  (if (or (= wb1 "") (= wb1 nil))
    (setvar "userr1" wb)
    (progn (setq wb wb1) (setvar "userr1" wb))
  )
  (draw 0.5 1)
  (princ)
)
(defun c:sect2(/ pt1 pt2 wb wb1 x1 x2 y1 y2)
  (command "color" (getvar "cecolor"))
  (setq pt1 (getpoint "\nPick start point [Left or dowm]: ")
        pt2 (getpoint pt1 "\nThe end point: ")
  )
  (grdraw pt1 pt2 (atoi (getvar "cecolor")))
  (if (= (setq wb (getvar "userr2")) 0.0) (setq wb 0.15))
  (princ "\nDistance between two line < ")
  (princ wb)
  (setq wb1 (getdist pt2 " >: "))
  (if (or (= wb1 "") (= wb1 nil))
    (setvar "userr2" wb)
    (progn (setq wb wb1) (setvar "userr2" wb))
  )
  (grdraw pt1 pt2 0)
  (draw 1.5 1.5)
  (setq pt1(list (- x1 (* wb (sin alf))) (+ y1 (* wb (cos alf))) 0.0)
        pt2(list (- x2 (* wb (sin alf))) (+ y2 (* wb (cos alf))) 0.0)
  )
  (draw 1.5 1.5)
  (princ)
)
(defun draw(k1 k2 / x3 x4 x5 x6 x0 y3 y4 y5 y6 y0
            pt0 pt3 pt4 pt5 pt6 ptl)
  (setq x1 (car pt1)
        y1 (cadr pt1)
        x2 (car pt2)
        y2 (cadr pt2)
        alf(angle pt1 pt2)
        x0 (/ (+ x1 x2) 2)
        y0 (/ (+ y1 y2) 2)
        x3 (- x0 (* wb k1 (cos alf)))
        y3 (- y0 (* wb k1 (sin alf)))
        x6 (+ x0 (* wb k1 (cos alf)))
        y6 (+ y0 (* wb k1 (sin alf)))
        x4 (- (/ (+ x3 x0) 2) (* wb k2 (sin alf)))
        y4 (+ (/ (+ y3 y0) 2) (* wb k2 (cos alf)))
        x5 (+ (/ (+ x6 x0) 2) (* wb k2 (sin alf)))
        y5 (- (/ (+ y6 y0) 2) (* wb k2 (cos alf)))
        pt3(list x3 y3 0.0)
        pt4(list x4 y4 0.0)
        pt5(list x5 y5 0.0)
        pt6(list x6 y6 0.0)
        ptl(list pt1 pt3 pt4 pt5 pt6 pt2)
  )
  (entmake (list '(0 . "POLYLINE") '(10 0.0 0.0 0.0)))
  (while (/= ptl nil)
    (entmake (list '(0 . "VERTEX") (cons 10 (car ptl))))
    (setq ptl (cdr ptl))
  )
  (entmake '((0 . "SEQEND")))
)
(princ)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-24 11:08:23 | 显示全部楼层
还是不会阿!~~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-24 11:09:33 | 显示全部楼层
这个折断线曾经让我出过一次洋相。
一位朋友没装ET,没法画,我有呀,于是想当然就把ET内BREAKL.LSP拷贝过去,反馈不能用,便仔细一看,TNND,这么小的一个功能,居然不把程序独立,还要配相应的dwg文件。一气之下自己编一个。比它小比它强,呵呵。。。。。。

  1.   [FONT=courier new]
  2. ; BREAKL.LSP 折断线  CYN 2003.7.8
  3. ; 最近一次修改: 2003.7.9
  4. (defun c:breakl (/ os scl ee temp xx ang  p1 p2 p3 p4 p5 p6 p7 ename)
  5.   (setq os (getvar "osmode"))
  6.   (setvar "osmode" 0)
  7.   (if (= scl nil) (setq scl (getvar "dimscale")))
  8.   (if (= scl 0) (setq scl 1.0))  
  9.   (if (= ee nil) (setq ee 1.0))
  10.   (setq temp T)
  11.   (while temp
  12.      (prompt (strcat "\n比例因子 Scale = " (rtos scl)
  13.                    " , 延伸 Extension = " (rtos ee)
  14.              )
  15.      )
  16.      (initget "Scale Extension")
  17.      (setq p1 (getpoint "\n指定第一个点或 [比例因子(S)/延伸(E)] <在既有直线上添加>: "))
  18.      (cond
  19.        ((= p1 "Scale")
  20.           (setq xx (getreal (strcat "\nScale <"(rtos scl)">:")))
  21.           (if xx (setq scl xx))
  22.        )
  23.        ((= p1 "Extension")
  24.           (setq xx (getreal (strcat "\nExtension <"(rtos ee)">:")))
  25.           (if xx (setq ee xx))
  26.        )
  27.        (T
  28.          (setq temp nil)
  29.        )
  30.      )
  31.    )

  32.     (defun breakl_new ()
  33.       (setq p2 p1)
  34.       (while (<= (distance p1 p2) (* scl 3.0))
  35.          (initget 1)
  36.          (setq p2 (getpoint p1 "\n指定第二点: "))
  37.          (if (<= (distance p1 p2) (* scl 3.0))
  38.            (princ "\n线条太短,不足以成为折断线")
  39.          )
  40.       )
  41.       (command "_line" p1 p2 "")
  42.       (setq ename (entlast))
  43.     )

  44.     (defun breakl_add ()
  45.       (while (null ename)
  46.         (setq ename (entsel "\n选择要加折断符号之直线 LINE: "))
  47.         (setq ename (car ename))
  48.         (if (/= (cdr (assoc 0 (entget ename))) "LINE")
  49.            (setq ename nil)
  50.         )
  51.       )
  52.       (setq p1 (cdr (assoc 10 (entget ename))))
  53.       (setq p2 (cdr (assoc 11 (entget ename))))
  54.       (if (<= (distance p1 p2) (* scl 3.0))
  55.         (progn
  56.           (princ "\n! 线太短,不足以成为折断线,新画一个")
  57.           (setq p1 (getpoint "\n指定第一个点: "))
  58.           (breakl_new)
  59.         )
  60.       )
  61.     )
  62.    (if (= p1 nil) (breakl_add) (breakl_new))
  63.    (setq ang (angle p1 p2))
  64.    (while (not p3)
  65.       (setq p3 (getpoint "\n指定折断符号位置 <中点>: "))
  66.       (if (not p3)
  67.           (setq p3 (polar p1 ang (/ (distance p1 p2) 2.0)))
  68.           (progn
  69.             (setq p4 (polar p3 (+ ang (* pi 0.5)) 1.0))
  70.             (setq p3 (inters p1 p2 p3 p4 nil))
  71.             (if (> (max (distance p1 p3) (distance p2 p3))
  72.                    (- (distance p1 p2) (* scl 3.0))
  73.                 )                              
  74.               (progn                 
  75.                  (princ "\n*无效* 指定的点超出范围,请重新指定")
  76.                  (setq p3 nil)
  77.               )
  78.             )
  79.           )
  80.       )
  81.    )
  82.    (setq p1 (polar p1 (+ ang pi) (* ee scl))
  83.          p2 (polar p2 ang (* ee scl))
  84.          p4 (polar p3 (+ ang pi) (* scl 1.5))
  85.          p5 (polar p4 ang (* scl 0.75))
  86.          p5 (polar p5 (- ang (* pi 0.5)) (* scl 2.0))
  87.          p6 (polar p3 ang (* scl 0.75))
  88.          p6 (polar p6 (+ ang (* pi 0.5)) (* scl 2.0))
  89.          p7 (polar p3 ang (* scl 1.5))
  90.    )
  91.    (entdel ename)
  92.    (command "_pline" p1 "w" "0.0" "" p4 p5 p6 p7 p2 "")
  93.    (setvar "osmode" os)
  94. )
  95.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-24 11:30:22 | 显示全部楼层
最初由 柔柔 发布
[B]这个折断线曾经让我出过一次洋相。
一位朋友没装ET,没法画,我有呀,于是想当然就把ET内BREAKL.LSP拷贝过去,反馈不能用,便仔细一看,TNND,这么小的一个功能,居然不把程序独立,还要配相应的dwg文件。一气之下?.. [/B]

自己编的啊
厉害
问一下怎么用啊?
我想……
谢谢!~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-24 17:42:46 | 显示全部楼层
呵呵,柔柔,你的LISP编的太长了,我头都看晕了。看我编的点样?

代码:
(defun C:jdx()
  (princ "  ★ <BiHam Stdio>  E_mail:saltxf@126.com   QQ:27919506  ★")
  (setvar "CMDECHO" 0)
  (setq lay (getvar "clayer"))
  (setq os (getvar "osmode"))
  (command "color" "bylayer")
  (command "osnap" "endp")
  (if (=(tblobjname "LAYER" "1line") nil)
       (command "layer" "m" "1line" "c" "1" "" "")
  )
  (command "layer" "s" "1line" "")
  (setq scale 100)      
  (setq pt1 (getpoint "\n请输入第一点:"))
  (setq pt2 (getpoint pt1 "\n请输入第二点:"))
  (setvar "osmode" 0)
  (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 pt1 (polar pt1 (+ ang pi) (* 4 scale)))
  (setq pt2 (polar pt2 ang (* 4 scale)))
  (command "pline" pt1 "w" "0" "0" pt3 pt5 pt6 pt4 pt2 "")
  (command "layer" "s" lay "")      ;恢复图层
(setvar "osmode" os)              ;恢复捕捉
(princ)(princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-26 14:25:54 | 显示全部楼层
各位都是编程高手,我是个程序盲,看不懂,还是找个地方下载软件算了。

还有问一下cdhua001斑竹:我认为你是高手,怎样用CAD2004偏移多个直线(偏移相同的距离)
是不是晓东CAD的命令我的2004里装了晓东CAD但是找不到,在2002里装了晓东CAD工具就有,为什么??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-26 14:31:49 | 显示全部楼层
CAD没有直接偏移多条线的命令,当然,也许我根本就没看懂你的问题。
你可以将你的要求详细写出来,请编程高手帮你编制一个小程序就可以了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-26 17:19:34 | 显示全部楼层
天正里的楼梯工具也有直接画折断线的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-27 10:51:00 | 显示全部楼层
不用那么麻烦呀,在天正里的菜单平面---工具----加剖断线即可,不过要先画一条直线呀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-6 10:54:44 | 显示全部楼层
多谢了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-15 18:47 , Processed in 0.216044 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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