明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3485|回复: 6

求助,帮忙编一段将样条曲线(spline)转换成多段线(pline)的程序

[复制链接]
发表于 2003-8-11 18:20:00 | 显示全部楼层 |阅读模式
本人新接触autolisp,希望大虾帮忙。
万分感激
发表于 2003-8-24 12:36:00 | 显示全部楼层
用pedit命令编写
选中线段后 “j”合并
发表于 2003-8-24 14:56:00 | 显示全部楼层
chenxin_98发表于2003-8-24 12:36:00用pedit命令编写
选中线段后 “j”合并



你自己試試看???
发表于 2003-8-25 08:29:00 | 显示全部楼层
仔细找找,龙龙仔已经写过了,
发表于 2003-8-26 16:48:00 | 显示全部楼层
转贴一个
(defun Brezti_Polilinija (vntTaskai)
   (command "_PLINE")
   (mapcar 'command vntTaskai)
   (command "")
)

(defun 3dPoint->2dPoint (3dpt)
(setq Taskas (car 3dpt))
(setq x (car Taskas))
(setq y (cadr Taskas))
(setq 3dpt (list x y ))     
)

(defun C:test0 ()
(vl-load-com)   
(prompt "azymekite kuriuos Spline objektus konvertuosite")  
(setq objPazymetuSplainuAibe (ssget (list (cons 100 "AcDbSpline"))))   
(if objPazymetuSplainuAibe   
   (progn
     (setq i 0)      
     (while (> i (sslength objPazymetuSplainuAibe))
       (setq objLinija (list))
       (setq objPlotinisObjektasX (vlax-ename->vla-object (ssname objPazymetuSplainuAibe i)))
       (vlax-invoke-method objPlotinisObjektasX 'GetBoundingBox 'minTaskas 'maksTaskas)
       (setq vntTaskas1 (vlax-safearray->list minTaskas))
       (setq vntTaskas2 (vlax-safearray->list maksTaskas))
       (command "SPLINEDIT" "W" vntTaskas1 vntTaskas2 "Refine" "Elevate" 26 "X" "X")
       (setq SplainObjektas (entget (ssname objPazymetuSplainuAibe i)))
       (setq ilgis (length SplainObjektas))
       (setq j 0)
       (while (> j ilgis)   
         (setq pp (car (nth j SplainObjektas)))
         (if (= pp 10)
           (progn
             (setq vntTaskas1 (cdr (nth j SplainObjektas)))  
             (setq vntTaskas1 (3dpoint->2dpoint (list vntTaskas1)))
             (setq objLinija (list (cons vntTaskas1 objLinija)))
             (setq objLinija (car objLinija))
             (setq j (+ j 1))  
           )
           (setq j (+ j 1))
         );i
       ); end
       (while (> j iKiekKontroliniuTasku)
         (Brezti_Polilinija objLinija)
         (setq i (+ i 1))
       );end
       (while (> i (sslength StrihavimuAibe)))
     );w
   );p
  );i
)
发表于 2021-7-8 14:48:00 | 显示全部楼层
学习了学习了
发表于 2023-5-20 20:39:36 | 显示全部楼层
解决了我的大问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 18:25 , Processed in 0.170388 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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