明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: xyp1964

[讨论] 【e派】工具箱函数再揭秘及应用实例

    [复制链接]
发表于 2024-9-9 21:42:22 | 显示全部楼层
院长更新了这个9点自定义函数增加了‘选择集’功能
发表于 2024-10-8 01:30:55 | 显示全部楼层
院长好!请教这个代码如何直接获取样条曲线拟合点的集合?
yshf发表于 2018-11-16 09:42:28 | 只看该作者
;样条曲线按拟合点转二维多段线
(defun c:test()
     (vl-load-com)
     (setq AcadDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
     (vla-StartUndoMark AcadDoc)
     (if (setq ssa (ssget '((0 . "Spline"))))
         (progn
             (vlax-for obj (vla-get-ActiveSelectionSet AcadDoc)
                 (setq ptb (vlax-get-property obj "FitPoints"))
                 (setq plobj (vla-AddPolyline (vla-get-ModelSpace AcadDoc) ptb))
                 (vlax-put plobj "color" 1)
                 ;(vla-delete obj) ;;要删除原样条曲线取消此行注释
             )
            
         )
     )
     (vla-EndUndoMark AcadDoc)
     (vlax-release-object AcadDoc)
     (princ)
)
发表于 2024-10-11 08:13:57 | 显示全部楼层
寒潮大冬瓜 发表于 2024-10-8 01:30
院长好!请教这个代码如何直接获取样条曲线拟合点的集合?
yshf发表于 2018-11-16 09:42:28 | 只看该作者
...

(vla-get-ControlPoints obj) ;取得样条曲线的控制点
(vla-get-fitpoints obj);获得样条曲线拟合点坐标
 楼主| 发表于 2024-12-19 11:16:58 | 显示全部楼层
  1. (defun xyp-count1 (lst / aa b1 lst1 lst2)
  2.   "xyp-count1 以子表第一个元素统计 (xyp-count1 lst表)"
  3.   (while lst
  4.     (setq aa   (car lst)
  5.           bb   (car aa)
  6.           lst  (cdr lst)
  7.           lst1 (vl-remove-if-not '(lambda (x) (equal (car x) bb)) lst)
  8.           lst  (vl-remove-if '(lambda (x) (equal (car x) bb)) lst)
  9.           lst1 (mapcar 'cdr (cons aa lst1))
  10.           lst2 (cons (cons bb lst1) lst2)
  11.     )
  12.   )
  13.   (reverse lst2)
  14. )
回复 支持 反对

使用道具 举报

发表于 2024-12-26 11:34:18 | 显示全部楼层

感谢院长分享!抽时间好好学习!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-26 13:17:35 | 显示全部楼层
本帖最后由 xyp1964 于 2024-12-26 13:22 编辑
寒潮大冬瓜 发表于 2024-10-8 01:30
院长好!请教这个代码如何直接获取样条曲线拟合点的集合?
yshf发表于 2018-11-16 09:42:28 | 只看该作者
...

  1. (defun GetFitPoints (s1)
  2.   "样条曲线拟合点"
  3.   (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 11)) (entget s1)))
  4. )
  5. (defun GetControlPoints (s1)
  6.   "样条曲线控制点"
  7.   (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) (entget s1)))
  8. )
回复 支持 反对

使用道具 举报

发表于 2024-12-26 15:01:16 | 显示全部楼层

感谢院长指导!
回复 支持 反对

使用道具 举报

发表于 2024-12-30 00:15:38 | 显示全部楼层
院长好!辛苦指导……
(defun c:tt ()
  (command "3dpoly")
  (while (setq s1 (car (entsel "\n选择: ")))
    (command "non" (xyp-DXF 10 s1))
  )
  (command "")
  (princ)
)
类似这个三维多段线的点取图元获取坐标后继续画线的pline和line线,如何能顺利实现?
回复 支持 反对

使用道具 举报

发表于 2025-1-24 09:18:45 | 显示全部楼层
xyp-TuPtn    xyp-AoPtn,院长能不能发一下这两个函数啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-6 11:34 , Processed in 0.138911 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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