前生 发表于 2015-3-25 23:30:02

关于圆弧

见附件中圆弧,3D转出的图纸里,经常有这种乱七八糟的圆弧。不在一个平面上,基本上是用手工重新
画一个,以前,想将210变成 0 0 0 ,(assoc 10 x y z)的Z值变成0,发现居然位置,不知道跑到什么爪哇岛去了。
请高手支招。谢谢

前生 发表于 2015-3-25 23:30:43

主要是线割加工时,这种圆弧不能用。

菜卷鱼 发表于 2015-3-26 08:34:14

强力Z坐标归零! 210组码问题还未解决 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=111797&fromuid=399892

fan_zh 发表于 2015-3-26 09:30:34

210组码默认为0,0,-1,是指挤出方向,一般不用改的

前生 发表于 2015-3-27 00:14:58

机械加工中就有很多问题的。

易云网络 发表于 2015-3-27 15:26:07

是不是210 的 0 0 -1 把-1改成正1

yjr111 发表于 2015-3-27 20:59:40

也许可以试试 vlax-curve-getClosestPointToProjection 函数

ivde 发表于 2015-3-27 22:02:00

获取投影曲线

前生 发表于 2015-3-27 22:42:47

(DEFUN C:ac1 ()
(SETQ SS1 NIL)
(setvar "osmode" 0)
(setq ss1 (ssget (list (cons 0 "ARC"))))
(if ss1
    (PROGN
      (SETQ EMAX NIL
          COUNT 0
      )
      (setq emax (sslength ss1))
      (while (< count emax)
        (setq EN (ssname ss1 COUNT)
              ED (ENTGET EN)
        )
        (if (= (setq ls (last (assoc 210 ed))) 1)
          (SETQ
          LS
             (list (cons 0 "circle")
                   (cons 8 "ok")
                   (list 10 (cadr (assoc 10 ed)) (caddr (assoc 10 ed)))
                   (CONS 62 222)
                   (CONS 40 (CDR (assoc 40 ed)))
             )
          )
          (SETQ
          LS (list (cons 0 "circle")
                     (cons 8 "ok")
                     (list 10
                           (- 0 (cadr (assoc 10 ed)))
                           (caddr (assoc 10 ed))
                     )
                     (CONS 62 222)
                     (CONS 40 (CDR (assoc 40 ed)))
             )
          )
        )
        (COMMAND
          "._ARC"
          "C"
          (TRANS (CDR (ASSOC 10 LS)) 0 1)
          (TRANS (vlax-curve-getendpoint (VLAX-Ename->VLA-Object EN))
               0
               1
          )
          (TRANS
          (vlax-curve-getstartpoint (VLAX-Ename->VLA-Object EN))
          0
          1
          )
        )
        (redraw (entlast) 3)
        (setq str nil)
        (setq
          str (getstring "\n 生成的弧方向正确否?(回车或空格表示ok!)")
        )

        (if (/= "" (strcase str))
          (progn
          (entdel (entlast))
          (COMMAND
              "._ARC"
              "C"
              (TRANS (CDR (ASSOC 10 LS)) 0 1)

              (TRANS
                (vlax-curve-getstartpoint (VLAX-Ename->VLA-Object EN))
                0
                1
              )
              (TRANS (vlax-curve-getendpoint (VLAX-Ename->VLA-Object EN))
                     0
                     1
              )
          )
          )
        )
        (entdel en)

        (SETQ COUNT (1+ COUNT))
        (setq ename nil)
      )                                        ;WHILE
    )                                        ;FIRST OF PROGN
    (PROMPT "\n 未选取到 Arc实体,请重新选择!<circle>")
)
(setq en nil)
(princ)
)

前生 发表于 2015-3-27 22:43:46

昨晚写的,有些啰嗦.看起来似乎可用
页: [1] 2
查看完整版本: 关于圆弧