找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 485|回复: 0

[编程申请]:请问这个LSP中坡度和长度换个位置怎么改?

[复制链接]
发表于 2005-3-4 11:45:21 | 显示全部楼层 |阅读模式

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

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

×
;|
默认值 100-4 (管径 - 坡度);
仅输入管径时输入 100,
仅输入坡度时输入 ,5
$XDTB_GLOBAL_SCALE  出图比例默认100
|;

($xdrx_load "xdlsp.lsp")
(if (not $XDTB_GLOBAL_SCALE)
  (setq $XDTB_GLOBAL_SCALE 100.0)
)
(if (not $XDTB_DMSTRING)
  (setq $XDTB_DMSTRING "100-4")
)
(defun c:XDTB_DMpipeline (/ oldos tf pt1 pt2 dis str string pmid pt ang1)
  (setq tf t)
  (setq oldos (getvar "osmode"))
  (xdrx_begin)
  (xdrx_ucson)
  (xdrx_sysvar_push "osmode")
  (setvar "osmode" oldos)
  (while tf
    (if        (setq pt1 (getpoint "\n起  点: "))
      (progn
        (setq pt2 (getpoint pt1 "\n终  点: "))
        (setq dis  (rtos (distance pt1 pt2) 2 0);; 长度 0 小数点后位数
              pmid (xdrx_midp pt1 pt2)
              ang1 (angle pt1 pt2)
        )
        (if (> ang1 pi)
          (setq ang1 (- ang1 pi))
        )
        (setq pt (polar        pmid
                        (if (> ang1 _pi2)
                          (- ang1 _pi2)
                          (+ ang1 _pi2)
                        )
                        $XDTB_GLOBAL_SCALE
                 )
        )
        (prompt (strcat "\n管长 = " dis))
        (setq str
               (getstring (strcat "\n[管径-坡度]<d" $XDTB_DMSTRING ">: ")
               )
        )
        (cond
          ((= (xdrx_string_findoneof str ",") 0)
           (setq $XDTB_DMSTRING
                  (strcat
                    (car (xdrx_string_tok $XDTB_DMSTRING "-"))
                    "-"
                    (xdrx_string_trimleft str ",")
                  )
           )
           (setq
             string (strcat
                      "D"
                      (car (xdrx_string_tok $XDTB_DMSTRING "-"))
                      "-"
                      dis
                      "-"
                      (xdrx_string_trimleft str ",")
                    )
           )  
          )
          ((> (xdrx_string_find str ",") 0)
           (setq $XDTB_DMSTRING
                  (strcat
                    (xdrx_string_trimright str ",")
                    "-"
                    (last (xdrx_string_tok $XDTB_DMSTRING "-"))
                  )
           )
           (setq
             string
              (strcat
                "D"
                (xdrx_string_trimright str ",")
                "-"
                dis
                "-"
                (last (xdrx_string_tok $XDTB_DMSTRING "-"))
              )
           )
          )
          ((= str "")
           (setq
             string (strcat "D"
                            (xdrx_string_replace
                              $XDTB_DMSTRING
                              "-"
                              (strcat "-" dis "-")
                            )
                    )
           )
          )
          (T
            (setq $XDTB_DMSTRING str)
            (setq
              string (strcat "D"
                             (xdrx_string_join
                               (xdrx_string_tok $XDTB_DMSTRING "-")                          
                               (strcat "-" dis "-")
                             )
                     )
            )
          )
        )
        ;(setvar "osmode" 0)
        (command ".text"
                 "j"
                 "bc"
                 "_non"
                 pt
                 (* 2.5 $XDTB_GLOBAL_SCALE)
                 ($xdlsp_rtd ($xdlsp_angle_format ang1))
                 string
        )
      )
      (setq tf nil)
    )
  )
  (xdrx_sysvar_pop)
  (xdrx_ucsoff)
  (xdrx_end)
  (princ)
)
输出时它先输长度再到坡度,怎么改LSP,把它们位置换一下。也就是先坡度,然后再长度。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-22 04:22 , Processed in 0.187336 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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