明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

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

如何把一段折线(pline)展开成相同延长度的直线(pline)?

[复制链接]
发表于 2022-7-18 00:09:41 | 显示全部楼层
langjs 发表于 2012-6-14 09:12
对LWPOLYLINE和POLYLINE都有效

大神,这个代码可以给定一个高度,再连接上下每条线段的端点吗
发表于 2022-7-18 19:31:54 | 显示全部楼层
  1. (defun makepl(arg);;arg==>(list pts 闭合标志 全局宽度 线宽 图层 颜色 厚度 线型)pts以后可省略
  2.       (entmakex(append(mapcar'cons'(0 100 100 43 370 8 62 39 6)(append'("LWPOLYLINE""AcDbEntity""AcDbPolyline")(cddr arg)))
  3.                       (cons(cons 90(length(car arg)))(cons(cons 70(if(cadr arg)(cadr arg)0))(mapcar'(lambda(x)(cons 10 x))(car arg)))))))
  4. (defun c:tt(/ e p l)
  5.   (while(and(setq l nil e(car(entsel"选择需要展开的曲线")))
  6.       (setq n(VL-CATCH-ALL-APPLY'vlax-curve-getendparam(list e)))
  7.       (setq p(getpoint"指定展开线起点:")))
  8.       (cond((WCMATCH(cdr(assoc 0(entget e)))"*POLYLINE")
  9.             (while(setq p(vlax-curve-getdistatparam e n))
  10.               (setq l(cons(polar p 0(vlax-curve-getdistatparam e n))l)n(1- n)))
  11.             (makepl(List l)))
  12.            (t(makepl(list(list p(polar p 0(-(vlax-curve-getdistatparam e(vlax-curve-getendparam e))(vlax-curve-getdistatparam e(vlax-curve-getstartparam e)))))))))))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 19:14 , Processed in 0.157267 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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