明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: zb1374498780

[经验] 折断线lisp,加载有些情况生成不了。高手帮解决一下呗

[复制链接]
 楼主| 发表于 2018-9-28 17:01:34 | 显示全部楼层
菜卷鱼 发表于 2018-9-28 15:28
设置比例试一试??

好像不是比例问题
 楼主| 发表于 2018-9-28 17:27:00 | 显示全部楼层
菜卷鱼 发表于 2018-9-28 15:15
(setq pts (trans pts 1 0))  
也许是你差这一句

我那个你能调整一下么,我只需要单条的折断线就行
发表于 2018-9-28 18:04:37 | 显示全部楼层
(defun c:zdx(/ ang p0 p1 p2 p3 p4 p5 p6 sc)
        (setq sc (getint "\n请输入出图比例<100>:"))
        (if (not sc) (setq sc 100))
        (setq p0 (getpoint "\n请选择第一点:"))
        (setq p1 (getpoint p0 "\n请选择第二点:"))
        (setq ang (angle p0 p1))
        (setq p2 (polar p0 ang (/ (distance p0 p1) 2)))
        (setq p3 (polar p2 (+ ang (* pi 0.56)) (* 2.25 sc)))
        (setq p4 (polar p2 (+ ang (* pi 1.56)) (* 2.25 sc)))
        (setq p5 (polar p2 (+ ang pi) (* 1.25 sc)))
        (setq p6 (polar p2 ang (* 1.25 sc)))
        (if (< (distance p0 p1) (* 7.0 sc))
                (progn
                        (setq p0 (polar p5 (+ ang pi) (* 2.25 sc)))
                        (setq p1 (polar p6 ang (* 2.25 sc)))
                )
                (progn
                        (setq p0 (polar p0 (+ ang pi) (* 2.25 sc)))
                        (setq p1 (polar p1 ang (* 2.25 sc)))
                )
        )
        (setq os (getvar "osmode"))
  (setvar "osmode" 0)
        (command "PLINE" p0 p5 p3 p4 p6 p1"")
        (setvar "osmode" os)
  (princ)
)


是不是自定义函数搞错了,直接改成command吧
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-9-29 09:31:11 | 显示全部楼层
start4444 发表于 2018-9-28 18:04
(defun c:zdx(/ ang p0 p1 p2 p3 p4 p5 p6 sc)
        (setq sc (getint "\n请输入出图比例:"))
        ...

哈哈,谢谢了。解决了
发表于 2024-5-2 16:42:23 | 显示全部楼层
start4444 发表于 2018-9-28 18:04
(defun c:zdx(/ ang p0 p1 p2 p3 p4 p5 p6 sc)
        (setq sc (getint "\n请输入出图比例:"))
        ...

感谢楼主的分享,借用了层主的代码
发表于 2024-5-2 16:44:46 | 显示全部楼层
  1. (defun c:zdx(/ ang p0 p1 p2 p3 p4 p5 p6 sc)
  2.         ;(setq sc (getint "\n请输入出图比例<100>:"))
  3.         ;(if (not sc) (setq sc 100))
  4.         (setq p0 (getpoint "\n请选择第一点:"))
  5.         (setq p1 (getpoint p0 "\n请选择第二点:"))
  6.         (setq sc (/ (distance p0 p1) 27))
  7.         (setq ang (angle p0 p1))
  8.         (setq p2 (polar p0 ang (/ (distance p0 p1) 2)))
  9.         (setq p3 (polar p2 (+ ang (* pi 0.56)) (* 2.25 sc)))
  10.         (setq p4 (polar p2 (+ ang (* pi 1.56)) (* 2.25 sc)))
  11.         (setq p5 (polar p2 (+ ang pi) (* 1.25 sc)))
  12.         (setq p6 (polar p2 ang (* 1.25 sc)))
  13.         (if (< (distance p0 p1) (* 7.0 sc))
  14.                 (progn
  15.                         (setq p0 (polar p5 (+ ang pi) (* 2.25 sc)))
  16.                         (setq p1 (polar p6 ang (* 2.25 sc)))
  17.                 )
  18.                 (progn
  19.                         (setq p0 (polar p0 (+ ang pi) (* 2.25 sc)))
  20.                         (setq p1 (polar p1 ang (* 2.25 sc)))
  21.                 )
  22.         )
  23.         (setq os (getvar "osmode"))
  24.   (setvar "osmode" 0)
  25.         (command "PLINE" p0 p5 p3 p4 p6 p1"")
  26.         (setvar "osmode" os)
  27.   (princ)
  28. )

按照选择两点的距离除一个系数得出折断线的比例,适合自己用,再次感谢楼主的分享
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 17:48 , Processed in 0.158583 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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