找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: caddog

[LISP函数]:SPLINE转PLINE的小程序

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-9-1 14:26:21 | 显示全部楼层
很多时候会遇到不能 Offset 的 Spline
贴上我写的部分,优化部分省略:)

  1. (defun c:s2p (/ doc ms)
  2.   (setq        doc (vla-get-activedocument (vlax-get-acad-object))
  3.         ms  (vla-get-modelspace doc)
  4.   )
  5.   (vla-startundomark doc)
  6.   (vl-catch-all-apply
  7.     '(lambda (/ ss ssl i e el p10 sepm tf pl epm n m len pt pts)
  8.        (if (setq ss (ssget '((0 . "spline"))))
  9.          (progn
  10.            (setq ssl (sslength ss)
  11.                  i   -1
  12.            )
  13.            (repeat ssl
  14.              (princ (strcat "\r共 "
  15.                             (itoa ssl)
  16.                             " 个 Spline, 处理第 "
  17.                             (itoa (1+ i))
  18.                             " 个Spline....."
  19.                     )
  20.              )
  21.              (setq e        (ssname ss (setq i (1+ i)))
  22.                    el        (entget e)
  23.                    p10        (vl-remove-if-not
  24.                           '(lambda (x) (= (car x) 10))
  25.                           el
  26.                         )
  27.                    sepm        (vlax-curve-getendparam e)
  28.                    tf        (vlax-curve-isclosed e)
  29.              )
  30.              (if (assoc 11 el) ;_ has fitpoints
  31.                (progn
  32.                  (setq p10 (apply 'append (mapcar 'cdr p10))
  33.                        pl  (vla-addpolyline
  34.                              ms
  35.                              (vlax-make-variant
  36.                                (vlax-safearray-fill
  37.                                  (vlax-make-safearray
  38.                                    vlax-vbdouble
  39.                                    (cons 0 (1- (length p10)))
  40.                                  )
  41.                                  p10
  42.                                )
  43.                              )
  44.                            )
  45.                  )
  46.                  (vla-put-type pl acCubicSplinePoly)
  47.                  ;;样条化的线仍需要后续处理 ....
  48.                )
  49.                (progn
  50.                  (entmake
  51.                    (append
  52.                      '((0 . "LWPOLYLINE")
  53.                        (100 . "AcDbEntity")
  54.                        (100 . "AcDbPolyline")
  55.                       )
  56.                      (list (cons 90 (cdr (assoc 73 el))))
  57.                      (if tf
  58.                        '((70 . 1))
  59.                        '((70 . 0))
  60.                      )
  61.                      (mapcar '(lambda (x) (reverse (cdr (reverse x))))
  62.                              p10
  63.                      )
  64.                    )
  65.                  )
  66.                )
  67.              )
  68.            )
  69.            (vl-cmdf ".erase" ss "")
  70.          )
  71.        )
  72.      )
  73.   )
  74.   (vla-endundomark doc)
  75.   (princ)
  76. )
  77. (princ "\n\tStart Command with S2P, eachy[eachy@21cn.com]!")
  78. (princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2008-12-19 08:31:22 | 显示全部楼层
安装DXB打印机,打印,生成dxb文件。然后dxbin。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2010-1-1 19:25:57 | 显示全部楼层
http://ljttjl.ys168.com  20080420目录下载 任意曲线转换成多段线程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 00:32 , Processed in 0.211857 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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