明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 革天明

求CAD生成数控车床的G代码的程序

  [复制链接]
 楼主| 发表于 2012-7-31 16:45:19 | 显示全部楼层
邹锋 发表于 2012-7-31 11:28
看来你没看懂,,,,
PT1
PT2

;;;******************************************************
;;;一个求多义线各段参数(如果是弧段则有半径弧长)的lisp程序
;;;编号  1:凸度,2:弦长或直段长,3:半径,4:弧长,5:圆心--
;;;加载程序,运行bulge,则显示上述参数-------------------
(defun midp (p1 p2)
  ;;BY 高飞鸟
  (polar p1 (angle p1 p2) (* (distance p1 p2) 0.5))
)
(defun C:Bulge (/        sel        ent        lst        obj        vex        ifclose
                i        par        1stPt        EndPt        judge        tu        pt1
                pt2        dis        radius        h        h1        half-angle
                arc-length        pa        cen
               )

  (if (setq sel (ssget '((0 . "LWPOLYLINE"))))
    (progn
      (setq ent (ssname sel 0))
      (setq lst (entget ent))
      (setq obj (vlax-ename->vla-object ent))
      (setq vex (cdr (assoc 90 lst)))
      (setq ifclose (cdr (assoc 70 lst)))
      (setq i        0
            par        nil
      )
      (setq 1stPt (vlax-Curve-GetPointAtParam ent 0))
      (setq EndPt (vlax-Curve-GetPointAtParam ent (1- vex)))
      (if (or (equal 1stPt EndPt 1e-8) (= ifclose 0))
        (setq vex (1- vex))
      )
      (repeat vex
        (setq tu (vla-GetBulge obj i))
        (setq pt1 (vlax-Curve-GetPointAtParam ent i))
        (if (and (= i (1- vex)) judge)
          (setq pt2 (vlax-Curve-GetPointAtParam ent 0))
          (setq pt2 (vlax-Curve-GetPointAtParam ent (1+ i)))
        )
        (setq dis (distance pt1 pt2))
        (if (/= tu 0)
          (progn
            (setq radius (/ (* (1+ (* tu tu)) dis 0.25) (abs tu)))
            (setq h  (* dis (abs tu) 0.5)
                  h1 (- radius h)
            )
            (setq half-angle (atan (/ dis 2) h1))
            (setq arc-length (* 2 half-angle radius))
            (setq cen (midp pt1 pt2))
            (setq cen (polar cen
                             (+        (angle pt1 pt2)
                                (if (or        nil
                                        (and (> h1 0) (> tu 0))
                                        (and (< h1 0) (< tu 0))
                                    )
                                  (* pi 0.5)
                                  (* pi -0.5)
                                )
                             )
                             (abs h1)
                      )
            )
            (setq pa (list tu dis radius arc-length cen))
            (setq par (cons pa par))
          )
          (progn
            (setq pa (list tu dis))
            (setq par (cons pa par))
          )
        )
        (setq i (1+ i))
      )
      (setq par (reverse par))
      (princ "\n下面为此曲线的各段列表,3,4,5编号为弧段才有:")
      (princ "\n1:凸度 2:弦长(或直线长) 3:半径 4:弧长 5:圆心")
      (foreach n par
        (princ "\n")
        (princ n)
      )
      (princ)
    )
    (alert "你没有选中物体或者选择的不是多义线!")
  )
  (princ)
)
;;;******************************************************
发表于 2012-7-31 19:38:45 | 显示全部楼层
用fastcom 很容易的

点评

试用版  发表于 2012-8-1 00:01
fastcam  发表于 2012-7-31 23:59
百度了一下,跟G代码没什么关系啊?  发表于 2012-7-31 19:47
发表于 2012-7-31 23:52:08 | 显示全部楼层
革天明 发表于 2012-7-31 16:45
;;;******************************************************
;;;一个求多义线各段参数(如果是弧段则有半 ...

pt1 就是起点,PT2就是终点,如果有TU度的,就是圆弧,算出圆心了,想不明白就不要问我了,你用我那个的吧,把你的图上的红线串接好,转下,看看是不是转出G代码了
发表于 2012-8-1 09:13:42 | 显示全部楼层
个人感觉所提供的图样无法用一把刀车成。如果只输出图线的坐标点另当别论。
 楼主| 发表于 2012-8-1 10:35:24 | 显示全部楼层
ZZXXQQ 发表于 2012-8-1 09:13
个人感觉所提供的图样无法用一把刀车成。如果只输出图线的坐标点另当别论。

因为我不是程序员,不是机加工程序员,只是一个工科男,会一点LISP而已,
从简到难吧,学会生成G代码就有可能造成两把刀的代码
当初一个将图元缩放0.25倍的小程序我用了两星期
发表于 2012-8-1 13:46:06 | 显示全部楼层
有没有冲床类的
怎么才能算出是短线路走法
不知道怎么好入手

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-8-4 23:39:08 | 显示全部楼层
哇,这下,你们有交流的对象了.
发表于 2012-8-22 20:40:06 | 显示全部楼层
发表于 2015-12-17 15:13:37 | 显示全部楼层
为什么经常会:; 错误: 参数类型错误: 二维/三维点: nil
发表于 2021-4-22 11:47:42 | 显示全部楼层
邹锋 发表于 2012-7-30 17:38
这不难啊,都是增量相对坐标,,直线的话,用G1(别人一般都是G01) 圆弧用G3,g2,把Y的数改成Z,,,其他的就 ...

请问下spl 不加点能实现不,加点太密了,要么拟合为arc的线段。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-18 20:27 , Processed in 0.267863 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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