明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2388|回复: 13

画完折断线命令不退出点那边那边被折断,

  [复制链接]
发表于 2012-5-29 07:48:38 | 显示全部楼层 |阅读模式
相信各位都看过折断线,但我们画完折断线后要后动把一边或双折断线的中间剪掉呀,可不可以画完折断线命令不退出点那边那边被剪掉,双折断线点中间中间就被剪掉,

下面是网友供的折断线,这是一个深层次的问题
(defun c:zdx (/ p1 p2 p1x p1y p2x p2y pmx pmy pm p3 p4 p5 p6 last oldcmdecho oldosmode)
(setq oldcmdecho (getvar "cmdecho"))
(setq oldosmode (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setq p1 (getpoint "选择折断线的起点:"))
(setq p2 (getpoint "选择折断线的终点:"))
(setq ang (angle p1 p2))
(setq p1x (car p1))
(setq p1y (cadr p1))
(setq p2x (car p2))
(setq p2y (cadr p2))
(setq pmx (/ (+ p1x p2x) 2))
(setq pmy (/ (+ p1y p2y) 2))
(setq pm (list pmx pmy))
(setq p3 (polar pm (- ang (* pi 0.25)) 28.28427))
(setq p4 (polar pm (- (+ pi ang) (* pi 0.25)) 28.28427))
(setq p5 (polar p3 (+ ang ( * 0.5 pi)) 20))
(setq p6 (polar p4 (+ ang (* pi 1.5)) 20))
(command "pline" p2 p5 p3 p4 p6 p1 "")
(setq l_ast (entlast))
(command "copy" l_ast "" p1 (polar p1 (+ ang (* 1.5 pi)) 50))
(setvar "cmdecho" oldcmdecho)
(setvar "osmode" oldosmode)
(princ)
)

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-5-29 08:00:40 | 显示全部楼层
你要表达的意思,没看明白
发表于 2012-5-29 08:16:10 | 显示全部楼层
这个很容易做。
用COMMAND+TRIM+"F".
发表于 2012-5-29 08:45:53 | 显示全部楼层
;    =============================================
;    |             截断线自动绘制软件            |
;    |             |
;    =============================================
(defun C:zx(/ pt1 pt2 dis x1 pt3 pt4 pt5 pt6 p1 p2 ptt ang ang1 scale)
  ;;保存系统变量设置
  (setq old_OS  (getvar "OSMODE")
      old_CMD (getvar "CMDECHO")
       old_OR (getvar "OrthoMode")
    )
  (setvar "CMDECHO" 0)
  (setvar "OSMODE" 0)
  (setvar "OrthoMode" 0)
  (setq scale (getreal "\nScale<100>:"))
        (if (= scale nil)
                (setq scale 100)
        )
  (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)))
        (command "pline" pt1 pt2 "")
   (setq ee (entlast))
   (setVar "OrthoMode" 1)
        (setq ptt (getpoint pt2 "\n剪切方向:"))
        (setq ang1 (angle pt2 ptt))
  (setq p1 (polar pt1 ang1 100))
  (setq p2 (polar pt2 ang1 100))
   (command "_trim" ee "" "f" p1 p2  "" "")
  (entdel ee)
  (command "pline" pt1 "w" "0" "0" pt3 pt5 pt6 pt4 pt2 "")  
   ;;恢复系统变量设置
    (setvar "CMDECHO" old_CMD)
    (setvar "OSMODE" old_OS)
    (setvar "OrthoMode" old_OR)
  (princ)(princ)
)      
发表于 2012-5-29 09:03:31 | 显示全部楼层
原程序应是套用在特定的绘图框架....

Try
...
  (setq l_ast (entlast))
  (command "copy" l_ast "" p1 (polar p1 (+ ang (* 1.5 pi)) 50))
  (command "trim" l_ast (entlast) "" (polar p1 (+ ang (* 1.5 pi)) 25) (polar p2 (+ ang (* 1.5 pi)) 25) "")
  (setvar "cmdecho" oldcmdecho)
 楼主| 发表于 2012-5-29 12:23:54 | 显示全部楼层
没有明白二楼楼长的意思
 楼主| 发表于 2012-5-29 12:54:03 | 显示全部楼层
试用了,感觉非常不错,高人,真是高手

本帖子中包含更多资源

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

x
 楼主| 发表于 2012-5-29 12:56:25 | 显示全部楼层
[b]没双线点中间那种
双折断线点一中间就被断开了
发表于 2012-5-29 17:30:51 | 显示全部楼层
没必要这么复杂,用自定义线型就可以实现了,还是整体的。几行程序,甚至不用写程序,直接修改线型就可以了。
我做的特性工具就有这个功能,建议看看。
 楼主| 发表于 2012-5-29 21:28:56 | 显示全部楼层
9楼所言不知所谓
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-21 23:47 , Processed in 0.204417 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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