关于圆弧
见附件中圆弧,3D转出的图纸里,经常有这种乱七八糟的圆弧。不在一个平面上,基本上是用手工重新画一个,以前,想将210变成 0 0 0 ,(assoc 10 x y z)的Z值变成0,发现居然位置,不知道跑到什么爪哇岛去了。
请高手支招。谢谢
主要是线割加工时,这种圆弧不能用。 强力Z坐标归零! 210组码问题还未解决 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=111797&fromuid=399892 210组码默认为0,0,-1,是指挤出方向,一般不用改的 机械加工中就有很多问题的。 是不是210 的 0 0 -1 把-1改成正1 也许可以试试 vlax-curve-getClosestPointToProjection 函数 获取投影曲线 (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)
) 昨晚写的,有些啰嗦.看起来似乎可用
页:
[1]
2