找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: ghoust

[编程申请] 求一个CNC钻孔的程序。谢谢。

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-7 15:46:16 来自手机 | 显示全部楼层
Lisphk 发表于 2014-4-7 15:40
你安装OPENDCL后,加载晓东LISP函数库,会自动加载OPENDCL的。


这个库的反应器自动写一个 常用命令.txt 文件,这个写出用到那个tofile函数,上面的程序修改了tofile函数,加载函数库会冲突
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-7 16:20:22 | 显示全部楼层
st788796 发表于 2014-4-7 15:27
命令行输入 opendcl 就可以用了

运行.JPG
大师请看,测试有以下问题:
      1:输入的数据和对应的参数不匹配,刚好错位了。
      2:除了切削速度那个输入框输入数据OK,其它4个输入数据的地方,只要一输入马上就反应,而不是等用户输入完了再判断。
     3:输入命令后,直接点模板的连框会出现“致命错误”。用之前那个打点的LISP先做好路径,再运行可以输出文件。但是打点的需要加载xd-lisp-lib.VLX而钻孔的不能加载xd-lisp-lib.VLX,所以两个会有冲突。 能不能将点选变成框选,和打点的程序一样,点击选择以后,直接框选整个模板,然后就出路径了。
      4:麻烦大师将“单孔深度”改为“单次钻深”吧,孔内排屑和孔外排屑,写完整的话,需要改对话框吗?
    暂时测试发现这些问题,大师,修改起来会不会很麻烦啊?真的是太麻烦你了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-7 18:42:26 | 显示全部楼层
ghoust 发表于 2014-4-7 16:20
大师请看,测试有以下问题:
      1:输入的数据和对应的参数不匹配,刚好错位了。
      2:除了 ...

MouseEntered 事件中关闭Form会出错,暂时注释掉,测试能用
  1. ;;=========================================================================================;
  2. ;;说明:                                                                                    ;
  3. ;;1 切换文档将关闭对话框                                                                   ;
  4. ;;2 **XXGlobleParam**    默认参数                                                          ;
  5. ;;  **XXPathOutputPath** 未输出路径Pline                                                   ;
  6. ;;  **XXPathOutputDir**  保存路径                                                          ;
  7. ;;  **XXPathFileNum**    文件编号                                                          ;
  8. ;;=========================================================================================;
  9. ;; Author: st788796 From www.xdcad.net 2014.04.04                                          ;
  10. ;;=========================================================================================;
  11. (defun XD::Pnts:RemoveDup (pts fuzz / remove i)
  12.   (defun remove        (pts fuzz / ptl)
  13.     (while pts
  14.       (if (equal (caar pts) (caar ptl) fuzz)
  15.         (setq pts (cdr pts))
  16.         (setq ptl (cons (car pts) ptl)
  17.               pts (cdr pts)
  18.         )
  19.       )
  20.     )
  21.     ptl
  22.   )
  23.   (setq        i   0
  24.         pts (mapcar '(lambda (x) (cons x (setq i (1+ i)))) pts)
  25.         pts (vl-sort pts
  26.                      '(lambda (p1 p2)
  27.                         (if (= (cadar p1) (cadar p2))
  28.                           (< (caar p1) (caar p2))
  29.                           (< (cadar p1) (cadar p2))
  30.                         )
  31.                       )
  32.             )
  33.         pts (remove pts fuzz)
  34.         pts (vl-sort pts
  35.                      '(lambda (p1 p2)
  36.                         (if (= (caar p1) (caar p2))
  37.                           (< (cadar p1) (cadar p2))
  38.                           (< (caar p1) (caar p2))
  39.                         )
  40.                       )
  41.             )
  42.         pts (remove pts fuzz)
  43.         pts (vl-sort pts
  44.                      '(lambda (p1 p2) (< (cdr p1) (cdr p2)))
  45.             )
  46.         pts (mapcar 'car pts)
  47.   )
  48.   pts
  49. )
  50. (defun XD::Entity->PickSet (entl / n ss x)
  51.   (setq ss (ssadd))
  52.   (foreach n entl
  53.     (ssadd n ss)
  54.   )
  55.   ss
  56. )
  57. (defun XD::String:Strpad (intval pad sp str / zeros nstr)
  58.   (xdrx_sysvar_push '(("Dimzin" 0)))
  59.   (setq        nstr (strcat
  60.                (apply 'strcat
  61.                       (repeat (- pad (strlen (rtos intval 2 str)))
  62.                         (setq zeros (cons sp zeros)) ; make list
  63.                       )
  64.                )
  65.                (rtos intval 2 str)
  66.              )
  67.   )
  68.   (xdrx_sysvar_pop)
  69.   nstr
  70. )
  71. (defun XD::List:ToFile (fn lst / fl x)
  72.   (setq fl (open fn "w"))
  73.   (if (and
  74.         fl
  75.         (> (length lst) 0)
  76.       )
  77.     (progn
  78.       (mapcar
  79.         '(lambda (x)
  80.            (write-line x fl)
  81.          )
  82.         lst
  83.       )
  84.       (close fl)
  85.       t
  86.     )
  87.   )
  88. )
  89. ;;处理路径
  90. (defun Path_Output_List        (/ header param bp ptl)
  91.   (if **XXPathOutputPath**
  92.     (progn
  93.       (setq param  (mapcar '(lambda (x y)
  94.                               (if (listp y)
  95.                                 (if (zerop x)
  96.                                   (cadr y)
  97.                                   (car y)
  98.                                 )
  99.                                 (strcat y (itoa x))
  100.                               )
  101.                             )
  102.                            **XXGlobleParam**
  103.                            '(("G73" "G83") "F" "G0z" "S" "Q" "Z-" )
  104.                    )
  105.             ;;G91G28X0Y0Z0
  106.             ;;G40G17G80G49
  107.             ;;G90G54
  108.             ;;G0z5
  109.             ;;M03  S1500
  110.             ;;M00
  111.             header (list "G91G28X0Y0Z0"
  112.                          "G40G17G80G49"
  113.                          "G90G54"
  114.                          (cadr param)
  115.                          "M00"
  116.                          (strcat "M03" " " (caddr param))
  117.                          "M00"
  118.                    )
  119.             ;;G0X坐标Y坐标Z2       坐标就是框选圆心的坐标,按我的理解,这个应该是离UCS最近那个。
  120.             ;;G01Z-2F50          这里的50就是用户输入的切削速度了。哦,最大值不能超过200,要不然机器就麻烦了。
  121.             ;;G0Z5               这个5也是用户输入的,这是安全高度。最大值50,太高了机器行程不够。
  122.             ;;G73  x5 y5                   z-20  R1 Q5  F200
  123.             ;;G0z5
  124.             ;;G73  x10 y10                z-20  R1 Q5  F200
  125.             ;;G0z5
  126.             ;;G73  x15.525  y65.755   z-20  R1 Q5  F200
  127.             ;;G0z5
  128.             bp           (vlax-curve-getstartpoint **XXPathOutputPath**)
  129.             ptl           (xdrx_entity_getstretchpoint **XXPathOutputPath**)
  130.             ptl           (apply
  131.                      'append
  132.                      (mapcar
  133.                        '(lambda        (x)
  134.                           (list
  135.                             (strcat
  136.                               (car param)
  137.                               " " ;_"G0X"
  138.                               "x"
  139.                               (rtos (car x)
  140.                                     2
  141.                                     3
  142.                               )
  143.                               " "
  144.                               "y"
  145.                               (rtos (cadr x)
  146.                                     2
  147.                                     3
  148.                               )
  149.                               (nth 5 param)
  150.                               " R1 "
  151.                               (nth 4 param)
  152.                               " "
  153.                               (cadr param)
  154.                             )
  155.                             (caddr param)
  156.                           )
  157.                         )
  158.                        (mapcar
  159.                          '(lambda (a)
  160.                             (mapcar '- a bp)
  161.                           )
  162.                          (cdr ptl)
  163.                        )
  164.                      )
  165.                    )
  166.             lst           (append header ptl '("M30"))
  167.       )
  168.       (xd::list:tofile
  169.         (strcat        (if (= (vl-filename-directory **XXPathOutputDir**)
  170.                        **XXPathOutputDir**
  171.                     )
  172.                   (strcat **XXPathOutputDir** "XDNC-")
  173.                   (strcat **XXPathOutputDir** "\\XDNC-")
  174.                 )
  175.                 (xd::string:strpad **XXPathFileNum** 3 "0" 0)
  176.                 ".nc"
  177.         )
  178.         lst
  179.       )
  180.       (princ
  181.         (strcat
  182.           "\n写出 "
  183.           (strcat (if (= (vl-filename-directory **XXPathOutputDir**)
  184.                          **XXPathOutputDir**
  185.                       )
  186.                     (strcat **XXPathOutputDir** "XDNC-")
  187.                     (strcat **XXPathOutputDir** "\\XDNC-")
  188.                   )
  189.                   (xd::string:strpad **XXPathFileNum** 3 "0" 0)
  190.                   ".nc"
  191.           )
  192.           " 文件, Ok"
  193.         )
  194.       )
  195.       (setq **XXPathFileNum** (1+ **XXPathFileNum**))
  196.       (setq **XXPathOutputPath** nil)
  197.       ;(if (dcl_form_isactive path_form1)
  198. ;        (dcl_form_close path_form1)
  199.       ;)
  200.     )
  201.   )
  202.   (princ)
  203. )
  204. ;;选择轮廓
  205. (defun Path_Select_Polyline (/ GetPntsPath _SelectPathByPolyline ss)
  206.   (defun GetPntsPath (bp pts / ptl)
  207.     (setq ptl (list bp))
  208.     (while pts
  209.       (setq pts        (mapcar        '(lambda (x)
  210.                            (list (distance (car ptl) x) x)
  211.                          )
  212.                         pts
  213.                 )
  214.             pts        (vl-sort pts
  215.                          (function (lambda (e1 e2)
  216.                                      (< (car e1) (car e2))
  217.                                    )
  218.                          )
  219.                 )
  220.             ptl        (cons (cadar pts) ptl)
  221.             pts        (cdr (mapcar 'cadr pts))
  222.       )
  223.     )
  224.     (reverse ptl)
  225.   )
  226.   (defun _SelectPathByPolyline (e / pl box ss pts ptl bp)
  227.     (setq box (xdrx_entity_box e)
  228.           bp  (car box)
  229.     )
  230.     (or
  231.       (and (setq ss (ssget "_C"
  232.                            (car box)
  233.                            (caddr box)
  234.                            '((0 . "LWPOLYLINE") (8 . "XD-CIRCLE-PATH"))
  235.                     )
  236.            )
  237.            (if (> (sslength ss) 1)
  238.              (progn
  239.                (princ "\n重复路径!")
  240.                t
  241.              )
  242.              (setq pl (ssname ss 0))
  243.            )
  244.       )
  245.       (and (setq ss (ssget "_C"
  246.                            (car box)
  247.                            (caddr box)
  248.                            '((0 . "circle"))
  249.                     )
  250.            ) ;_选择整个零件,自动计算Box左下角点
  251.            (progn
  252.              (setq
  253.                pts (XD::Pnts:RemoveDup
  254.                      (mapcar
  255.                        '(lambda (x) (xdrx_getpropertyvalue x "Center"))
  256.                        (xdrx_pickset->ents ss)
  257.                      )
  258.                      1e-3
  259.                    )
  260.                ptl (getpntspath
  261.                      bp
  262.                      (vl-remove-if '(lambda (x) (equal bp x 0.001)) pts)
  263.                    )
  264.              )
  265.              (xdrx_layer_make "XD-Circle-Path" 1)
  266.              (setq pl (apply 'xdrx_polyline_make ptl))
  267.              (xdrx_setpropertyvalue
  268.                pl
  269.                "layer"
  270.                "XD-Circle-Path"
  271.              )
  272.            )
  273.       )
  274.     )
  275.     pl
  276.   )

  277.   (if (and (setq e (car        (xdrx_entsel
  278.                           "\n点选轮廓线: "
  279.                           '((0 . "LWPOLYLINE") (-4 . "&=") (70 . 1))
  280.                         )
  281.                    )
  282.            )
  283.            (setq **XXPathOutputPath** (_SelectPathByPolyline e))
  284.            (= (xdrx_yesorno "直接输出文件" 1) 1)
  285.       )
  286.     (Path_Output_List)
  287.     (if        **XXPathOutputPath**
  288.       (progn
  289.         (sssetfirst
  290.           nil
  291.           (XD::Entity->pickset (list **XXPathOutputPath**))
  292.         )
  293.         (princ "\n手动调整后,鼠标进入对话框直接输出文件!")
  294.       )
  295.       (princ "\n未找到路径或圆!")
  296.     )
  297.   )
  298. )
  299. ;;=========================================================================================;
  300. ;;                        ODCL                                                             ;
  301. ;;=========================================================================================;
  302. ;;参数控件
  303. (defun ODCL_Path_ParamControl ()
  304.   (list        path_form1_cuttingspeed               path_form1_safeheight
  305.         path_form1_rotationrate               path_form1_holedepth
  306.         path_form1_drill
  307.        )
  308. )
  309. ;;获取参数设置
  310. (defun ODCL_Path_GetParam ()
  311.   (setq        **XXGlobleParam**
  312.          (cons (dcl_grid_getcellcheckstate path_form1_option1 0 0)
  313.                (mapcar '(lambda        (x)
  314.                           (atoi (dcl_control_gettext x))
  315.                         )
  316.                        (ODCL_Path_ParamControl)
  317.                )
  318.          )
  319.   )
  320. )
  321. ;;option state
  322. (defun ODCL_Path_OptionState (mod)
  323.   (dcl_grid_setcellcheckstate path_form1_option1 0 0 mod)
  324.   (dcl_grid_setcellcheckstate
  325.     path_form1_option1
  326.     0
  327.     1
  328.     (abs (1- mod))
  329.   )
  330. )
  331. ;;检查输入合法性
  332. ;;超过最大值自动设置为最大值,小于最小值时自动设置为最小值
  333. (defun ODCL_Path_Pamram_CheckInput (str e var)
  334.   (mapcar '(lambda (x)
  335.              (if (= (car x) str)
  336.                (cond
  337.                  ((> (atoi var) (last x))
  338.                   (dcl_control_settext e (last x))
  339.                  )
  340.                  ((< (atoi var) (cadr x))
  341.                   (dcl_control_settext e (cadr x))
  342.                  )
  343.                  (t)
  344.                )
  345.              )
  346.            )
  347.           '(("cuttingspeed" 1 500)
  348.             ("safeheight" 3 100)
  349.             ("rotationrate" 300 5000)
  350.             ("holedepth" 1 8)
  351.             ("drill" 2 150)
  352.            )
  353.   )
  354. )
  355. ;;控件提示
  356. (defun ODCL_Path_Input_Prompt (str e)
  357.   (mapcar '(lambda (x)
  358.              (if (= str (car x))
  359.                (dcl_control_setcaption path_form1_prompt (cadr x))
  360.              )
  361.            )
  362.           '(("cuttingspeed" "切削速度建议范围 1-300,最大值500")
  363.             ("safeheight" "安全高度取值范围 3-100")
  364.             ("rotationrate" "主轴转速取值范围 300-5000")
  365.             ("holedepth" "单孔深度取值范围 1-8")
  366.             ("drill" "钻穿深度取值范围 2-150")
  367.            )
  368.   )
  369. )
  370. ;;OpenDCL Event
  371. (mapcar        '(lambda (x)
  372.            (eval (list 'defun
  373.                        (read (strcat "c:path_form1_" (car x)))
  374.                        (cadr x)
  375.                        '(dcl_form_close path_form1)
  376.                  )
  377.            )
  378.          )
  379.         '(("OnCacel" nil)
  380.           ("OnDocActivated" nil)
  381.           ("OnEnteringNoDocState" nil)
  382.           ("OnClose" (UpperLeftX UpperLeftY /))
  383.          )
  384. )
  385. (mapcar
  386.   '(lambda (x)
  387.      (eval (list 'defun
  388.                  (read (strcat "c:path_form1_" x "_OnMouseMove"))
  389.                  '(Flags X Y /)
  390.                  (list 'ODCL_Path_Input_Prompt
  391.                        x
  392.                        (read (strcat "path_form1_" x))
  393.                  )
  394.            )
  395.      )
  396.      (eval
  397.        (list 'defun
  398.              (read (strcat "c:path_form1_" x "_OnEditChanged"))
  399.              '(NewValue /)
  400.              (list 'ODCL_Path_Pamram_CheckInput
  401.                    x
  402.                    (read (strcat "path_form1_" x))
  403.                    'NewValue
  404.              )
  405.        )
  406.      )
  407.    )
  408.   '("cuttingspeed" "safeheight"        "rotationrate" "holedepth" "drill")
  409. )
  410. (defun c:path_form1_pick_OnClicked (/ ptl)
  411.   (Path_Select_Polyline)
  412.   (princ)
  413. )
  414. (defun c:path_form1_dir_OnClicked (/ dir)
  415.   (if (setq dir        (dcl_SelectFolder
  416.                   "选择保存目录"
  417.                   (getvar "DWGPREFIX")
  418.                   64
  419.                 )
  420.       )
  421.     (progn
  422.       (setq **XXPathOutputDir** dir)
  423.       (dcl_control_settext
  424.         path_form1_folder
  425.         (strcat
  426.           dir
  427.           (if (= (vl-filename-directory dir) dir)
  428.             ""
  429.             "\\"
  430.           )
  431.           (vl-filename-base (dcl_control_Gettext path_form1_folder))
  432.           ".nc"
  433.         )
  434.       )
  435.     )
  436.   )
  437. )
  438. ;;MouseEntered
  439. (defun c:path_Form1_OnMouseEntered (/)
  440.   ;(dcl_control_setcaption path_form1_prompt " ")
  441.   (if **XXPathOutputPath**
  442.     (Path_Output_List)
  443.   )
  444.   (princ)
  445. )
  446. ;;MouseOff ODCL
  447. (defun c:path_Form1_OnMouseMovedOff (/)
  448.   (dcl_control_setcaption path_form1_prompt " ")
  449.   (setq        **XXGlobleParam**   (ODCL_Path_GetParam)
  450.         **XXPathOutputDir** (vl-filename-directory
  451.                               (dcl_control_gettext path_form1_folder)
  452.                             )
  453.   )
  454. )
  455. (defun c:path_Form1_option1_OnSelChanged (Row Column /)
  456.   (ODCL_Path_OptionState (abs (1- Column)))
  457. )
  458. ;;ODCL Initialize
  459. (defun c:path_Form1_OnInitialize ()
  460.   (dcl_grid_addrow path_form1_option1 "\t")
  461.   (mapcar
  462.     '(lambda (x)
  463.        (apply 'dcl_grid_setcelltext (cons path_form1_option1 x))
  464.      )
  465.     '((0 0 "孔内排屑") (0 1 "孔外排屑"))
  466.   )
  467.   (if **XXGlobleParam**
  468.     (progn
  469.       (mapcar '(lambda (x y)
  470.                  (dcl_control_settext x (itoa y))
  471.                )
  472.               (ODCL_Path_ParamControl)
  473.               (cdr **XXGlobleParam**)
  474.       )
  475.       (ODCL_Path_OptionState
  476.         (car **XXGlobleParam**)
  477.       )
  478.     )
  479.   )
  480.   (if **XXPathOutputDir**
  481.     (dcl_control_settext
  482.       path_form1_folder
  483.       (strcat (if (= (vl-filename-directory **XXPathOutputDir**)
  484.                      **XXPathOutputDir**
  485.                   )
  486.                 (strcat **XXPathOutputDir** "XDNC-")
  487.                 (strcat **XXPathOutputDir** "\\XDNC-")
  488.               )
  489.               (xd::string:strpad **XXPathFileNum** 3 "0" 0)
  490.               ".nc"
  491.       )
  492.     )
  493.     (dcl_control_settext
  494.       path_form1_folder
  495.       (strcat (getvar "DWGPREFIX")
  496.               "\\XDNC-"
  497.               (xd::string:strpad **XXPathFileNum** 3 "0" 0)
  498.               ".NC"
  499.       )
  500.     )
  501.   )
  502. )
  503. ;;Main Program
  504. (defun PathOutput_Main (mod / string)
  505.   (and **XXGlobleParam**
  506.        (/= (car **XXGlobleParam**) mod)
  507.        (setq **XXGlobleParam**
  508.               (cons mod (reverse **XXGlobleParam**))
  509.        )
  510.   )
  511.   (or **XXGlobleParam**
  512.       (setq **XXGlobleParam** (cons mod '(200 3 500 4 2)))
  513.   )
  514.   (or **XXPathFileNum**
  515.       (setq **XXPathFileNum** 1)
  516.   )
  517.   (setq        string
  518.          '("YWt6A4o9AABCYgIfBuKTJScSKitmgNmVV1Mm/9wu+yg0XjTPZZMqbf38OO+Qbks7FUXjrDTJ6iQ3"
  519.            "IZT9WF7kSBSiYfZxlv11ZMmW5Vg4oQaKv7oj9bQcHHJ/G4KBgTCZ4I0xmTDZyePbshOQigIZh7EM"
  520.            "gZFFGZBHDSueDH78CahOCrxWivx5fjCbfJovfm20lN5o1N54kVTWuQ5Hij5bhk4i8M+rnvtQcqud"
  521.            "IVucDIDS+ESym/sQgiHz31DCx9x+J9J7QZjUvgpR+NbyYQ2onlkn0r7F7VMoHFfU22iBlEag8YsE"
  522.            "j8FxgYIudoca6mTk8Ulq/Yw+eHpRMrTAdfgeeniu7IRxDPx3YDJXjL9TTq2bcM6NCz5tcrwwMmea"
  523.            "RIQ/wxjqeksYnquvUosdsl/K2rjzDLuwmwhfiL+TBvE8YfIPQGRba07S6kQlx20RVEn8SHiffkoc"
  524.            "xBvHc51T5ZQlr8G5csKox/gFjpCdSAgcMYUe4lLAZjUxZW5BtF0ayegFhMofm8THJN+uZiUWPIGX"
  525.            "f+udT4UJN4qJzr4hv7RnYXRE7RT7Uq5QS78wualKhMqEYszziusIhOX6TUMYh/GTCrhhdILvvmF2"
  526.            "gtGjYDQuZXPJsUSJsm1jsTMgEi8hZY/eyKYICB72lz3jUdzmpVoDdAJG2t2CDrcHcJ+OhdM57VP4"
  527.            "ihNP+pF2wry+5V1BtDZLsMYNSUWlMFKpt0fGS4Pfr56g1/18cfoEk4f54KjuNgE6nlCvhF18oVnO"
  528.            "IZ4deKBKoaD4xcoEK6rKIZ5N35kZn7UIsaYxsPTggHfHeFBtm7GnXbmXQ6/X7H8UWDSjUqLKPB7z"
  529.            "OGmXvxqnSpyKWEWDdp/t/PiRdwW1eujKwqS4qiJLFsQFfdQcd6DD0oWDZqD74Xk+AxTJnXLLrVWk"
  530.            "36+DJLxR9giiWoQrGpmJbBDITyxuqig/iQz/EWqLAV8O9eOBWp8s3eHnK0bpKP6kGJm02iIBds+m"
  531.            "2sv0kDhlYVkC0RarYP9leqBTDsMWy2rVsxxqS4/EYUqPVN7mDo9kP6wmDSJh+HjvCr+HEK+6VSzz"
  532.            "NS3C4gXlaFEzwgRfUyBfkizCyPn3aWsJbNFTHvSpne46nMviHLy6VdFpN62xfJ85hG+HIrQoJxpc"
  533.            "+anrvPwLPZKDMjWra14r2b7q1B8mJteca+xXK+BkPdjGO1daLZp3X+ckP08fTOujsxFolmfE6tns"
  534.            "tsrLlTYfJyRBiYDbmzbt3cUfF7QvfCgw4NTmwIyPthUMik5ar9TX7hy8mhYnZWzSeeFcQ7dAAvzD"
  535.            "NknpvJqOexbIpCwm3Eiw2dkXz8R8oC9bHJMq46yR2TwVWbS/kClfu1QVZtea/f3edJjEJUwtvKAn"
  536.            "zI7S0Zqh+6YakVP/aSTS8LsneNyuIN2LBxQA7Q7YYp0fG5oz45AMM5OHLEclNjxKVBWq2+4wo2Pq"
  537.            "gAwWVtMIa6VGPos3FERu8VsxXSB3Un6PHF5k093mFtpu1VYY1VokWLO7XewYleJomupBM0yJWq02"
  538.            "u6EQe9ew8JOVDlxrnftc6yWsuj50APmsVrTFW3sGsoiw+VoqHHO7Eu1at6f9KpacT9XqKjfFg4KZ"
  539.            "6BfPGpoKxxpKF+/rpcTFC72q9/lsSKEWKt9RJISs7pNod1QWKo8EeitCsCofhWQrIPyGsGFr3i+d"
  540.            "ZPQP3Dgr5GT327iviKDoESAP2HidWt54xcw4c0B22i+dTtpuSxa0Cto4C+Rkj914UU56SxATYuOS"
  541.            "4aJO63SqDkUV7hWUqh5UW/RkFVe492RLFxRa6GSFpIjIgUvuZHVUyc04LC8dY7tGLx0F5GSP3XiR"
  542.            "lnYUAoiCugbULr2T0q9yWEsWOVdfqlZ7hNN8IAk2FJpwj7dqlT5jAG8BLkYlwL5BJvlhd/myLtPB"
  543.            "5I//ntvAyQBWb/Q5caalgBq1zcDogygGs31qKOH2BAD3HpG5do+tzgSoCIMYw9119YGnyk0N1eGy"
  544.            "hpie0+j1iAtSTJcdoxdFlMateJRX/3WZhN1wrUHSCeoTsk/PqWaRI8lWTIvF3osX5WjC1di3ptvH"
  545.            "tqb3OySqwFGStsn41V5RGlluiHCP87aRat2zlVIQofcgA1e6mAuv1QYRobleCLk/JXkiMU+flf4f"
  546.            "QD1CvlDjMpX+wemIRP5aK9J9YsnTZ1G8ggE/soFKG8bngaeb7QbRlEIWWSaoLTKmd+jiYEDdpLNB"
  547.            "/PWdt3ug4ye+7XXybQ4M/405Ded7Qse+UClUIj5FyQ4fvKdbaRvZtrvHewwv6XnYbMGGDECY6gp5"
  548.            "6paEYdk6HYQ="
  549.           )
  550.   )
  551.   (dcl_project_import string)
  552.   (dcl_form_show path_form1)
  553.   (princ)
  554. )
  555. (defun c:dacm ()
  556.   (PathOutput_Main 1)
  557.   (Path_Select_Polyline)
  558.   (princ)
  559. )
  560. (defun c:dbcm ()
  561.   (PathOutput_Main 0)
  562.   (Path_Select_Polyline)
  563.   (princ)
  564. )

点评

大师,这次数据不错位了。非常OK,我测试基本能用了。现在只是程序头那里有点不对,这个我现在可以手动修改使用,毕竟只修改几个字符。相对来说比全手写容易太多了。 如果大师能在百忙之中修正更好,非常感谢你一直  详情 回复 发表于 2014-4-8 09:12
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-8 09:12:34 | 显示全部楼层
st788796 发表于 2014-4-7 18:42
MouseEntered 事件中关闭Form会出错,暂时注释掉,测试能用

大师,这次数据不错位了。非常OK,我测试基本能用了。现在只是程序头那里有点不对,这个我现在可以手动修改使用,毕竟只修改几个字符。相对来说比全手写容易太多了。
如果大师能在百忙之中修正更好,非常感谢你一直以来的无私奉献。减轻了我好多工作上的重复性动作。谢谢你。

未命名.JPG


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-12 08:40:19 | 显示全部楼层
st788796 发表于 2014-4-8 10:29
表是固定的,取值位置错位了

15.jpg 大师请看,这是机器在钻孔。输出的钻孔代码稍微修改可以使用了。非常感谢。

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-12 11:00:51 | 显示全部楼层
这是视频,用的G73,不提刀钻孔。钻头直径9mm。钻深25。http://v.youku.com/v_show/id_XNjk3NzI1NDA0.html
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2014-4-14 12:44:10 | 显示全部楼层
ghoust 发表于 2014-4-12 11:00
这是视频,用的G73,不提刀钻孔。钻头直径9mm。钻深25。http://v.youku.com/v_show/id_XNjk3NzI1NDA0.html

好强大,也想自己做一台,请问主轴电机、步进电机等用什么型号?能钻多大的孔?能传一份DIY图纸分享下吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-15 09:35:34 | 显示全部楼层
Gdlprfcu 发表于 2014-4-14 12:44
好强大,也想自己做一台,请问主轴电机、步进电机等用什么型号?能钻多大的孔?能传一份DIY图纸分享下吗 ...

86-150的步进。主轴0.75KW伺服。能钻直径12的孔。兄弟别做啊,累死个人啊。做个机脱层皮啊。不是工厂不实用的。投资还不少呢。图纸都是做一步看一步。最终的实物和当初的设计图有相当的差距啊。我就不发来害兄弟你了。还有,就算有图,也千万别相信啊。一定要自己重新建模,设计一次。等你按图加工出来,有任何问题,那将是多么痛的领悟,,,,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2014-4-15 12:00:56 | 显示全部楼层
ghoust 发表于 2014-4-15 09:35
86-150的步进。主轴0.75KW伺服。能钻直径12的孔。兄弟别做啊,累死个人啊。做个机脱层皮啊。不是工厂不实 ...

最近在外面接了几十个产品的连续模,现手上只有一台钻床一台磨床和一台铣床,不太够用,兼职做的也没多少时间,我主轴打算用普通的三相电机,皮带手动变速,我想Y轴做成工件移动的,这样龙门的钢性要好点,但工作台的利用率就低了,不知道你现在的结构钢性如何?能用来锣工件的避空吗?你现在做的成本大概花了多少钱?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-15 13:46:01 | 显示全部楼层
Gdlprfcu 发表于 2014-4-15 12:00
最近在外面接了几十个产品的连续模,现手上只有一台钻床一台磨床和一台铣床,不太够用,兼职做的也没多少 ...

请问兄弟是在哪里啊?

几十个产品的连续模,量还是比较大的。有一个能自动钻孔的,能省出一个人工来。三相电机,皮带变速,你的主轴会变得非常重,非常大。不太好设计,如果你有丰富的机械设计经验应该没问题。 这种结构钻弹簧孔有点不现实。 固定龙门刚性确实好一些,但工作台移动的,工件的重量就要在负载以内。 我现在这个结构钻孔没有问题。也可以用来锣避位,但下刀量要小,在0每刀0.5左右。进给要慢在F200左右。我实验时锣了一个直径40的圆,Cr12的软料,25厚,用了半小时。这台机器成本大概3W左右。


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2014-4-15 16:04:43 | 显示全部楼层
ghoust 发表于 2014-4-15 13:46
请问兄弟是在哪里啊?

几十个产品的连续模,量还是比较大的。有一个能自动钻孔的,能省出一个人工来。 ...

我现在在广东台山市,3W实在太贵了,吃不消,看来还是以后再说了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2014-6-26 23:15:45 | 显示全部楼层
好帖,学习了.
平时依赖自动编程软件,很想学习手工CAD编程,加深理解.

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2014-6-26 23:16:50 | 显示全部楼层
很想得到楼主和大师S的指点:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2014-6-26 23:22:46 | 显示全部楼层
这里有个问题想请教下:
S大师能不能写个CAD LISP,就是用多段线以最优路径将很多等半径的圆自动连接起来,由使用者指定路径的起点和终点
万分感激!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 8个

财富等级: 恭喜发财

发表于 2014-10-2 00:16:10 | 显示全部楼层
ghoust 发表于 2014-4-15 13:46
请问兄弟是在哪里啊?

几十个产品的连续模,量还是比较大的。有一个能自动钻孔的,能省出一个人工来。 ...

3W真心不贵。
12以下的孔钻出来。大孔用摇臂钻加工即可。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-27 01:12 , Processed in 0.416529 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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