明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2592|回复: 5

[LISP]我需要一个云形线转换为复线的程序

[复制链接]
发表于 2003-11-10 12:08 | 显示全部楼层 |阅读模式
我想要一个能够直接将所选云形线换成复线的程序
要求其曲率越接近越好
  哪位大虾帮我[em00]
 楼主| 发表于 2003-11-14 10:29 | 显示全部楼层
各位侠就请指点下吧
 楼主| 发表于 2003-11-15 09:57 | 显示全部楼层
我曾用CAD的等分功能结合起来,但发现其曲率不能达到要求,而且处理起来比较慢
大侠能否指点一下啊!!!
 楼主| 发表于 2003-11-17 14:48 | 显示全部楼层
各位:
   你们真这么狠心,都不搭理一声
   哎。。。。。
发表于 2003-11-20 08:06 | 显示全部楼层
;;分细一点也不能达到要求吗?
;;你的思路已对"等分功能",再用MLINE重画即可
;;By 龙龙仔(LUCAS)
;;临时改的,原来是SPLINE TO 3DPOLYLINE
(defun C:SP_TO_ML (/ HOLDECHO HOLDBLIP HOLDOSMODE A AA A1 F EPT SPT LP)
  (vl-load-com)
  (command "_.undo" "_group")
  (setq HOLDECHO (getvar "cmdecho"))
  (setq HOLDBLIP (getvar "blipmode"))
  (setq HOLDOSMODE (getvar "osmode"))
  (setvar "cmdecho" 0)
  (setvar "blipmode" 0)
  (setvar "osmode" 0)
  (while (/= AA "SPLINE")
    (setq A (entsel "\n选取SPLINE: "))
    (setq A1 (car A))
    (setq AA (cdr (assoc 0 (entget A1))))
  )
  (setq        SPT (vlax-curve-getstartpoint
              (setq F (vlax-ename->vla-object A1))
            )
  )
  (setq EPT (vlax-curve-getendpoint F))
  (setq LP (getint "\n请设定段数/<60>: "))
  (if (null LP)
    (setq LP 60)
  )
  (command "_.UCS" "")
  (command "_.divide" A1 (+ LP 1))
  (setq A (ssget "p"))
  (command "_.MLINE" EPT)
  (repeat LP
    (command (cdr (assoc 10 (entget (ssname A (- LP 1))))))
    (setq LP (- LP 1))
  )
  (command SPT "")
  (command "_.matchprop" A1 (entlast) "")
  (command "_.erase" A A1 "")
  (command "_.UCS" "")
  (setvar "blipmode" HOLDBLIP)
  (setvar "osmode" HOLDOSMODE)
  (command "_.undo" "_end")
  (setvar "cmdecho" HOLDECHO)
  (princ)
)
发表于 2020-1-4 09:34 | 显示全部楼层
Thanks for sharing ^^
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 21:37 , Processed in 0.185957 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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