+发表新主题
杨海000 发布于2007-3-11 12:31 156 次浏览 13 位用户参与讨论
跳转到指定楼层
okok2002 发表于 2007-3-15 08:04:50
用PLINE线重描就行了,我以前在激光机上割板的时候都这样搞的。
回复

使用道具 举报

liuxj69 发表于 2007-3-29 16:47:11
ET工具栏里的flatten命令可以将splin转为pline
回复

使用道具 举报

liuxj69 发表于 2007-3-31 16:07:47
;多义线模拟样条曲线,因为用的是直线模拟,所以样条曲线上曲率半径较小的部位
;可能模拟得不够好.解决方法是尽量取小的步长.最好还是用ET工具栏里的flatten,
;它对这个问题的处理是转换为圆弧.
;made by 铁甲蚂蚁
(defun c:zz (/ en dist obj plist len sn n)
    (princ "nSPline->Pline")
    (vl-load-com)
    (while (not    (and (setq en (entsel "n指定样条曲线:"))
             (ssget (cadr en) '((0 . "SPLINE")))
        )
       )
    )
    (setq dist (getreal "n指定步长:"))
    (setq obj (vlax-ename->vla-object (car en)))
    (setq plist (cons (vlax-curve-getstartpoint obj) '()))
    (setq len
         (vlax-curve-getdistatparam obj (vlax-curve-getendparam obj))
    )
    (setq sn (fix (/ len dist)))
    (setq n 0)
    (repeat sn
    (setq plist (cons (vlax-curve-getpointatdist obj (* (setq n (1+ n)) dist))
              plist
            )
    )
   
    )
    (if    (< sn (/ len dist))
    (setq plist (reverse (cons (vlax-curve-getendpoint obj) plist)))
    )
    (setq sn (length plist))
    (setq n -1)
    (setq os (getvar "osmode"))
    (setvar "osmode" 0)
    (setvar "cmdecho" 0)
    (command "pline")
    (repeat sn (command (nth (setq n (1+ n)) plist)))
    (command "")
    (setvar "osmode" os)
    (princ)
)
回复

使用道具 举报

loongzh 发表于 2007-3-31 17:01:37
UG可以做到。
回复

使用道具 举报

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

本版积分规则

QQ| Archiver|手机版|小黑屋| 碧波制图网 Stonespider

Copyright © 2021-2023 Kangli Wu   All Rights Reserved.

Powered by Discuz! X3.5( 苏ICP备18011607号-1 )

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