明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4372|回复: 19

请问:如何用LISP实现将PL环向外偏移一些。关键是不知如何确定方向。

  [复制链接]
发表于 2002-12-5 12:00:00 | 显示全部楼层 |阅读模式
发表于 2002-12-6 11:07:00 | 显示全部楼层

Try

Try to offset it to one side, if the new PL is longer than the original one, you are right; Otherwise, it should be the other side.
发表于 2002-12-6 16:24:00 | 显示全部楼层

同理能实现左右偏移!!!!

;;如何用LISP实现将PL环向外偏移一些。
;;同理能实现左右偏移!!!!
(defun C:TEE (/ HOLDOSMODE HOLDCMD WW ENT PT PT1 PT2 CURVE X JANG DIST)
  (defun LEN (CURVE)
    (setq TLEN (vlax-curve-getdistatparam
                 CURVE
                 (vlax-curve-getendparam CURVE)
               )
    )
  )
  (setq HOLDOSMODE (getvar "OSMODE"))
  (setq HOLDCMD (getvar "CMDECHO"))
  (setvar "CMDECHO" 0)
  (setvar "OSMODE" 0)
  (setq WW (entsel "\n选取偏移对象: "))
  (setq ENT (car WW))
  (setq PT (cadr WW))
  (setq CURVE (vlax-ename->vla-object ENT))
  (setq        X (vlax-curve-getparamatpoint
            CURVE
            (setq PT (vlax-curve-getclosestpointto
                       CURVE
                       PT
                     )
            )
          )
  )
  (setq JANG (angle '(0 0 0) (vlax-curve-getfirstderiv CURVE X)))
  (setq PT1 (polar PT (+ JANG (* 0.5 pi)) 0.00000001))
  (setq PT2 (polar PT (- JANG (* 0.5 pi)) 0.00000001))
  (initget 3)
  (setq DIST (getdist "\n指定偏移距离<正__向外偏移 /负__向内偏移>: "))
  (command "_.OFFSET" (abs DIST) ENT PT1 "")
  (cond
    ((and (> DIST 0) (> (LEN CURVE) (LEN (entlast))))
     (entdel (entlast))
     (command "_.OFFSET" DIST ENT PT2 "")
    )
    ((and (< DIST 0) (< (LEN CURVE) (LEN (entlast))))
     (entdel (entlast))
     (command "_.OFFSET" (abs DIST) ENT PT2 "")
    )
  )
  (setvar "OSMODE" HOLDOSMODE)
  (setvar "CMDECHO" HOLDCMD)
  (princ)
)
发表于 2002-12-6 21:33:00 | 显示全部楼层

比较长度的思路,有意思,但不可靠。

[此贴子已经被作者于2002-12-6 21:33:34编辑过]
发表于 2002-12-7 22:29:00 | 显示全部楼层

?

我还是没想明白左右偏移在程序中自动画图怎么用?
发表于 2002-12-8 23:40:00 | 显示全部楼层

载一致的多义线中找到x坐标最大值的一点,则方向为该点p1(x0 y0 0.0)到p2 (x0+10,

载一致的多义线中找到x坐标最大值的一点,则方向为该点p1(x0 y0 0.0)到p2 (x0+10,y0,0.0)[br]
 楼主| 发表于 2002-12-9 12:19:00 | 显示全部楼层

这个方法不错,简单易行。谢

发表于 2002-12-9 15:31:00 | 显示全部楼层

向內偏移一些,这个方法恐怕不行了!!!

本帖最后由 作者 于 2002-12-9 15:31:14 编辑

对云形线拟合聚合线,恐怕也不行了
发表于 2002-12-10 13:15:00 | 显示全部楼层

p1(maxX maxY 0.0)->p2(maxX- 0.001 maxY-0.001 0.0)

发表于 2002-12-10 14:20:00 | 显示全部楼层

南子兄!!!PL不等于矩形!!!!!PL还会有ARC!!!

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

本版积分规则

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

GMT+8, 2025-1-16 00:43 , Processed in 0.222232 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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