找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 10703|回复: 64

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

[复制链接]
发表于 2014-4-1 16:56:14 | 显示全部楼层 |阅读模式
悬赏100D豆已解决
这是我做的第一台模型机: 第一台.jpg
这是第二台实验机:
第二台.jpg


现在是第三台了,目前正在使用。
16.jpg
这就是用来钻孔的。因为只是在规则的模板上面钻孔,所以希望能从CAD直接输出G代码来控制机器钻孔。数控编程软件太麻烦,太专业了,而我只需要钻孔就行了,所以请大家帮帮忙吧,谢谢了。

最佳答案

查看完整内容

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

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-1 16:56:15 | 显示全部楼层
ghoust 发表于 2014-4-8 09:12
大师,这次数据不错位了。非常OK,我测试基本能用了。现在只是程序头那里有点不对,这个我现在可以手动修 ...

表是固定的,取值位置错位了
  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.                          (caddr param)
  115.                          "M00"
  116.                          (strcat "M03" " " (cadddr 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.          '("YWt6A4o9AAAKahikBuKTJSMSaitqQKUQyclqzozZ/jxVbvYuIqQsyO5makr029tq3HjKyKVTJYXl"
  519.            "LFXXT4bedyZyOvcBjj4CPmGCP50hmjNt3RFChB6cwfx06rpmfLQEsOej48cZxM2jkMyj18WzEpEJ"
  520.            "AbDiTQ3BkaDnBYn4tst2OnERQcq8Xvq/fX4Z9H80Vv97Nak/Uyo/c2ArLvmXNJb+S266CluYKD1+"
  521.            "pE4r+QEVbimMCUvSvSR/FrmBq+YUvf0xal/1y268JABScR70pPrOGHMA7TtBYNMSD3PI3M2qnKFE"
  522.            "sHGfB32GQfYBX1b9LEw08Oicf3U/B95+3GFSVMRphB5+BK7shHQYuzTcK6oIjvyb3YjNV4DiOzGr"
  523.            "mS7a67FMtaFcIpavpQEc6E2ANp7xe4AungEyAdY+U6/8jyACn6fo6XAhFywhFYfeKOYISBw0g3XA"
  524.            "5mdS4WX6i27FxVMeIOxoFvogpvpbwwJHxT9jqST8ZKyO4hroxE8ZUSQsvSTF+7CTSF1wvCMGcjxZ"
  525.            "cg9DlG5U3CfXDsgMcWCqEH4TirxgFr4MvQxNmGVIq8lcwFlLQqGHcomdr7dAyBza404yaCE3W6zT"
  526.            "9uGeVRoEte9grNKiTCBV6mQcdfM263AuQPFgoStvkUBjTQNWGVAbo1eXTUP2mWea9pf0kDvhPPjB"
  527.            "He7XfirCXaFfRMwhHnWv0G6vwlivxsKvUkE+hupelIW8oEr/Ww8RSk/H1QSLTskcaVe5XbJalriK"
  528.            "GIKgfZRNrfGNmhk+hh9v+uV3wVKCJlec5BWocW6gGBw7uiNbet8snqW7h8FuxrfSAfQO+2gZH2sU"
  529.            "1mGqFM0oX6uEPba3TPUpCkrmhnqfefopi3wRawb1vgu8FVcZtbsryralPfr1OlkBOQqMCXvg15+b"
  530.            "97fr1sW5etjjl8F3pcsMc9g8CaIliCwLd6JtiaCNSYvfQC+Axr4TvIV9fEFWDjaeb3NR5RbKCO8v"
  531.            "ubrnCHUCQABhcwKz8vKRnXtvl+Eu0p/b3IM7jbQPBzl8j+QwJwiPZD7Bc5+RuipRuGNjesxZIB+2"
  532.            "9Sli2VcgFROcO7PjuhV7lpyLcjIbjzSqo9nYBkc5lVyP5D8nSI9Ud92howLxPAZ7VoDCEmcIre7T"
  533.            "Td61KEEaKMgGyNq16Nk47VKItjvsu0NfQ7ck5Oa6iDCQHM/EU4tGI1otTVe1WC07k4LGM4Kz3EKj"
  534.            "eS0t4FgfKJvXNJcP7tHCO+Bgfamx1rRtraiSolDo2zud8bE7DCo4J0hH5KjyDwjeobqkMMJBH/JE"
  535.            "gdC0zpXMBy3L1aEtGx6gmo6OTShJCc86U+c22lBvVcy2jJ3pHJuTufb8rusq3lJ8SjRJ2S8KBeEY"
  536.            "yN6atsfIyjsW3NwtWrpV55YmOvgsKO+nNpvRuxH/n6k8bTmWAiw6Ylr8u6dcb5vuf/c2P2wGCEkD"
  537.            "wtU7z7Af0NJn5pdS+5tDNjMWoGhGrYxO7COcT68W+uYzFutaJF83nD4s5CcWuzGf/Chp+AjIRq/0"
  538.            "D9gW61ATLN578Spz3APEyn7xkBEESieeSvvbJeVZt0Y3PEuYbyRTN5zVuZWluIMOksNsdzjazRw0"
  539.            "sptoVGN8ZevCu6XJEiECmprd7Ug0J5Y7cWyo11Gly671kO/rIJVDRMPYB+KXOxUtKARj+ZLwRADO"
  540.            "r1cx8zqqxvfubUvUTDfzb84tnZ7QDq1J0UUt/Q9wLp0rrte/JdxSqqZ5sKre63FVS/A/4GRHNXPk"
  541.            "+EYs3UTtqpZ/RUtISnJgkEDChvZl1j97KBQSbt04F+wvHVuWqgZkjKq2JxSyWZo68+QyLN11kqqm"
  542.            "p8IdqZfd6QSiTt80CarWeuNkMT/gZEc183v64tbPSO2q1nlFSzBho0EC15mBj9K/jyXWz2WMqrY3"
  543.            "FCp+gyh/QQk1FGqJj3h/HTEtjHmPoTsZRBmgciDVzO6ZFGyMjqyQt5VK64Q+pu+RyRg9N6IwuojI"
  544.            "lbO6EcHs81iCiJVFb6vp3PXBX9y0iHwGdGpFP4Zvrxs1e4C/pm81RhDmpIPUmTncYYvDj5XnBkC0"
  545.            "mPAjsUvDZhKkE9qZQzIXi9dGsVF3koPmXoFSsmet0aHyacnIguELRc89g9qZEfVgFPiO0ZtENTnU"
  546.            "1R55Yym/PkNRDqcGAYDc9fiPSMrnR1aof83CXGjheaI0tkBxlpkT4kOSA3iZf4Kws1k2S3cx8+m7"
  547.            "hjHDoReCGc/M9ic+8oFSQEfCvEt0x0uAgevVnUHjD29fpXBoIXkRaxKZIfjbx/8ejHuxB6dBmWiS"
  548.            "zcYt9ilmTcYt9o9akmqchLdaUv1F+yZ8VfpaJ4h3I6CRUu+pG8tN8wM83a+BgX/LDBoh"
  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. )

点评

[attachimg]8299[/attachimg] 大师请看,这是机器在钻孔。输出的钻孔代码稍微修改可以使用了。非常感谢。  详情 回复 发表于 2014-4-12 08:40
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-1 17:13:05 来自手机 | 显示全部楼层
你这都是专业词汇,通俗点说一说

点评

大师,你果然够快啊。为了表达清楚我的意思,组织了好几次语言。结果编辑了这么长时间。你来了,真好啊!  详情 回复 发表于 2014-4-1 18:38
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-1 18:35:43 | 显示全部楼层
自己做沙发{:soso_e113:}。
之前st788796大师曾帮忙写了一个打点的程序,再次表示感谢。
现在的要求和之前的基本相同,找到框选图形中的所有圆的坐标,并且尽量用一条最短的路径串连起来。然后固定的以左下角为原点。输出程序。以下是我手写的模板:



as.JPG

如图,框选整个模板后,自动找到所有的圆心,过滤同心圆。固定的以BOX的左下角为原点,并尽量绘一条比较优化的路径,图上是我手动改过的(每次寻找下一个最近点也可以)。然后用户输入数据后,输出为一个后缀为XXX.nc的文本文件即可。设想的过程如下:
命令: zzkk
选择对象:  指定对角点: 找到 73 个
选择对象:  接受路径直接输出?[是(Y)/否(N)]<Y>: (选否的话,可以手动修改路径,再执行命令按新路径输出)
选择钻孔类型:孔内排屑(N)/孔外排屑(W)<W>:     (输入N深蓝色处为G73,输入W为G83)
安全高度[3-100]<5>:               (控制红色处变量G0Z这里不能输入负数,输入负数时提示错误)
主轴转速[300-5000]<1200>:     (控制绿色S处的变量)
切削速度[1-300]<200>:           (控制紫色F处变量,为了防止输错,造成事故,最大限制500)
单次钻孔深度[1-8]<4>:            (控制蓝色Q处变量)
钻穿深度[2-150]<2>:            (控制洋红Z-处变量,Z-为固定不变,后面接数字)
写出 X:\XXXX\XXX.nc 文件, Ok     (指定一个路径,输出文件)
命令:                             其它黑色字部份为固定不变的。X和Y后面的数字就是每个孔的坐标位置

G91G28X0Y0Z0
G40G17G80G49
G90G54
G0z5
M03  S1500
M00
G73  x5 y5                   z-20  R1 Q5  F200
G0z5
G73  x10 y10                z-20  R1 Q5  F200
G0z5
G73  x15.525  y65.755   z-20  R1 Q5  F200
G0z5
.......................
...........
M30  



非常感谢您的帮助!谢谢。



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

使用道具 举报

 楼主| 发表于 2014-4-1 18:38:29 | 显示全部楼层
st788796 发表于 2014-4-1 17:13
你这都是专业词汇,通俗点说一说

{:soso_e109:}大师,你果然够快啊。为了表达清楚我的意思,组织了好几次语言。结果编辑了这么长时间。你来了,真好啊!{:soso_e181:}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-1 18:48:49 | 显示全部楼层
以前只是打点,现在可以钻孔了。刚开始是手动编写钻孔的代码,用的G01,实在非常慢,而且会出错,写一个钻孔程序比钻孔用的时间还长。后来仔细查阅了G代码,而且慢慢实验出来了,适合我自己做的机器的参数。现在钻孔终于方便一些了。如果再有这么一个程序配合,真的是高兴得跳起来啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-1 23:39:56 | 显示全部楼层
本帖最后由 st788796 于 2014-4-2 00:17 编辑
ghoust 发表于 2014-4-1 18:48
以前只是打点,现在可以钻孔了。刚开始是手动编写钻孔的代码,用的G01,实在非常慢,而且会出错,写一个钻 ...

写完了, 没有测试
  1. (defun XD::List:ToFile (fn lst / fl x)
  2.   (setq fl (open fn "w"))
  3.   (if (and
  4.         fl
  5.         (> (length lst) 0)
  6.       )
  7.     (progn
  8.       (mapcar
  9.         '(lambda (x)
  10.            (write-line x fl)
  11.          )
  12.         lst
  13.       )
  14.       (close fl)
  15.       t
  16.     )
  17.   )
  18. )
  19. (defun c:zzkk (/ GetPntsPath _Output e box bp ss pts ptl)
  20.   (defun _Output (e / _Getinput pts kk h zs qs ds ss lst npts path)
  21.     (defun _Getinput (msg xmin xmax mmax default / num)
  22.       (while (and (if (not (setq num (getint msg)))
  23.                     (setq num default)
  24.                     num
  25.                   )
  26.                   (if (or (and mmax (> num mmax))
  27.                           (not (<= xmin num xmax))
  28.                       )
  29.                     (progn
  30.                       (princ "\n非法数据, 重新输入!")
  31.                       t
  32.                     )
  33.                     nil
  34.                   )
  35.              )
  36.       )
  37.       num
  38.     )
  39.     (setq pts (xdrx_entity_getstretchpoint e))
  40.     (initget "N W")
  41.     (setq kk (getkword "\n选择钻孔类型:孔内排屑(N)/孔外排屑(W)<W>: "))
  42.     (if        (or (= kk "") (null kk))
  43.       (setq kk "G83")
  44.       (setq kk "G73") ;_输入N深蓝色处为G73,输入W为G83)
  45.     )
  46.     (setq h    (strcat "G0z"
  47.                        (itoa (_Getinput "\n安全高度[3-100]<5>: " 3 100 nil 5))
  48.                ) ;_控制红色处变量G0Z?这里不能输入负数,输入负数时提示错误
  49.           zs   (strcat "S"
  50.                        (itoa (_getinput        "\n主轴转速[300-5000]<1200>: "
  51.                                         300
  52.                                         5000
  53.                                         nil
  54.                                         1200
  55.                                        )
  56.                        )
  57.                ) ;_控制绿色S处的变量)
  58.           qs   (strcat
  59.                  "F"
  60.                  (itoa (_getinput "\n切削速度[1-300]<200>: " 1 300 500 200))
  61.                ) ;_控制紫色F处变量,为了防止输错,造成事故,最大限制500
  62.           ds   (strcat "Q"
  63.                        (itoa (_getinput "\n单次钻孔深度[1-8]<4>: " 1 8 nil 4))
  64.                ) ;_控制蓝色Q处变量
  65.           ss   (strcat "Z-"
  66.                        (itoa (_getinput "\n钻穿深度[2-150]<2>:" 2 150 nil 2))
  67.                ) ;_控制洋红Z-处变量,Z-为固定不变,后面接数字
  68.           lst  (list "G91G28X0Y0Z0"
  69.                      "G40G17G80G49"
  70.                      "G90G54"
  71.                      h
  72.                      (strcat "M03" "  " zs)
  73.                      "M00"
  74.                )
  75.           npts (mapcar '(lambda        (x)
  76.                           (strcat h
  77.                                   " "
  78.                                   (strcat "x" (rtos (car x) 2 3))
  79.                                   " "
  80.                                   (strcat "y" (rtos (cadr x) 2 3))
  81.                                   " "
  82.                                   ss
  83.                                   " "
  84.                                   "R1  "
  85.                                   ds
  86.                                   "  "
  87.                                   qs
  88.                           )
  89.                         )
  90.                        pts
  91.                )
  92.           npts (append lst
  93.                        (apply 'append
  94.                               (mapcar '(lambda (x)
  95.                                          (list x h)
  96.                                        )
  97.                                       pts
  98.                               )
  99.                        )
  100.                )
  101.     )
  102.     (if        (setq path (xdrx_system_selectfolder))
  103.       (progn
  104.         (xd::list:tofile (strcat path "xxx.nc") npts)
  105.         (princ (strcat "\n写出 " path "XXX.nc 文件, Ok !"))
  106.       )
  107.     )
  108.   )
  109.   (defun GetPntsPath (bp pts / ptl)
  110.     (setq ptl (list bp))
  111.     (while pts
  112.       (setq pts        (mapcar '(lambda (x) (list (distance (car ptl) x) x)) pts)
  113.             pts        (vl-sort pts
  114.                          (function (lambda (e1 e2) (< (car e1) (car e2))))
  115.                 )
  116.             ptl        (cons (cadar pts) ptl)
  117.             pts        (cdr (mapcar 'cadr pts))
  118.       )
  119.     )
  120.     (reverse ptl)
  121.   )
  122.   (if (setq
  123.         e (car (xdrx_entsel
  124.                  "\n选择输出路径或闭合Pline: "
  125.                  '((0 . "LWPOLYLINE"))
  126.                )
  127.           )
  128.       )
  129.     (progn
  130.       (setq lyr (xdrx_getpropertyvalue e "Layer"))
  131.       (if (/= lyr "XDZK_PATH")
  132.         (progn
  133.           (setq        box (xdrx_entity_box e)
  134.                 bp  (car box)
  135.           )
  136.           (setq ss (ssget "w" (car box) (caddr box) '((0 . "circle"))))
  137.           (setq        pts (mapcar '(lambda (x) (xdrx_getpropertyvalue x "Center"))
  138.                             (xdrx_pickset->ents ss)
  139.                     )
  140.                 ptl (GetPntsPath bp pts)
  141.           )
  142.           (xdrx_layer_make "XDZK_PATH" 1)
  143.           (setq pl (apply 'xdrx_polyline_make ptl))
  144.           (xdrx_setpropertyvalue pl "layer" "XDZK_PATH")
  145.           (sssetfirst nil (XD::Entity->pickset (list pl)))
  146.           (if (not (zerop (xdrx_yesorno "接受路径直接输出" 1)))
  147.             (_output e)
  148.             (princ "\n手动调整路径后再次运行本程序!")
  149.           )
  150.         )
  151.         (_output e)
  152.       )
  153.     )
  154.   )
  155.   (princ)
  156. )

点评

多谢大师的多次帮助啊。还耽误您休息了,谢谢。刚刚试运行,发现有几个问题:[attachimg]8230[/attachimg] 红色线是用你之前写的打点LISP生成的。然后再用你昨晚写的钻孔LISP选择那条红线路径,然后就会多出来一  详情 回复 发表于 2014-4-2 08:35
果然是高手。  详情 回复 发表于 2014-4-2 00:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2014-4-2 00:07:40 | 显示全部楼层
st788796 发表于 2014-4-1 23:39
写完了, 没有测试

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

使用道具 举报

 楼主| 发表于 2014-4-2 08:12:25 | 显示全部楼层
啊,,这速度,真的是一夜惊喜啊。马上测试,迫不及待,,,,,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-2 08:35:58 | 显示全部楼层
本帖最后由 ghoust 于 2014-4-2 08:37 编辑
st788796 发表于 2014-4-1 23:39
写完了, 没有测试

多谢大师的多次帮助啊。还耽误您休息了,谢谢。刚刚试运行,发现有几个问题: cA.JPG

红色线是用你之前写的打点LISP生成的。然后再用你昨晚写的钻孔LISP选择那条红线路径,然后就会多出来一条路径,图上被选中的那条线就是点选后出来的,我把它移下来了一点,方便看。原来位置是在原点和圆心上的。
  大师,这个能不能集成打点LISP那样,执行命令后,直接框选模板就出路径,后面部份和现在的一样就行。谢谢。
这是你之前写的打点LISP:
  1. (defun XD::List:ToFile (fn lst / fl x)
  2.   (setq fl (open fn "w"))
  3.   (if (and
  4.         fl
  5.         (> (length lst) 0)
  6.       )
  7.     (progn
  8.       (mapcar
  9.         '(lambda (x)
  10.            (write-line x fl)
  11.          )
  12.         lst
  13.       )
  14.       (close fl)
  15.       t
  16.     )
  17.   )
  18. )

  19. (defun c:dcam (/ ss cs pts ptl bp i ih header dir lst ps pl fn el)
  20.   (defun GetPntsPath (bp pts / ptl)
  21.     (setq ptl (list bp))
  22.     (while pts
  23.       (setq pts (mapcar '(lambda (x)
  24.       (list (distance (car ptl) x) x)
  25.     )
  26.    pts
  27.   )
  28.      pts (vl-sort pts
  29.     (function (lambda (e1 e2)
  30.          (< (car e1) (car e2))
  31.        )
  32.     )
  33.   )
  34.      ptl (cons (cadar pts) ptl)
  35.      pts (cdr (mapcar 'cadr pts))
  36.       )
  37.     )
  38.     (reverse ptl)
  39.   )
  40.   (setvar "dimzin" 0)
  41.   (if (and
  42. (setq ss (ssget)) ;_选择整个零件,自动计算Box左下角点
  43. (setq el (xdrx_pickset->ents ss))
  44. (or (setq
  45.        cs (vl-remove-if-not
  46.      '(lambda (x)
  47.         (= (xdrx_getpropertyvalue x "IsA") "AcDbCircle")
  48.       )
  49.      el
  50.    )
  51.      )
  52.      (progn
  53.        (princ "\n程序结束,没有找到圆!")
  54.        nil
  55.      )
  56. )
  57. (progn (setq
  58.    ps
  59.     (vl-remove-if-not
  60.       '(lambda (x)
  61.          (and
  62.     (= (xdrx_getpropertyvalue x "IsA")
  63.        "AcDbPolyline"
  64.     )
  65.     (= (strcase (car (xdrx_getpropertyvalue
  66.          x
  67.          "Layer"
  68.        )
  69.          )
  70.        )
  71.        "XD-CIRCLE-PATH"
  72.     )
  73.          )
  74.        )
  75.       el
  76.     )
  77.         )
  78.         (if (<= (length ps) 1)
  79.    t
  80.    (progn
  81.      (sssetfirst nil (XD::Entity->PickSet ps))
  82.      (princ
  83.        (strcat
  84.          "\n共 "
  85.          (itoa (length ps))
  86.          " 条路径!请保留一条路径或全部删除后再运行!"
  87.        )
  88.      )
  89.      nil
  90.    )
  91.         )
  92. )
  93.       )
  94.     (progn
  95.       (xdrx_document_ucsoff)
  96.       (if ps
  97. (setq ptl (xdrx_getpropertyvalue (car ps) "Vertices")
  98.        bp  (xdrx_curve_getstartpoint (car ps))
  99. )
  100. (progn
  101.    (setq
  102.      pts (xd::list:removedup
  103.     (mapcar
  104.       '(lambda (x) (xdrx_getpropertyvalue x "Center"))
  105.       cs
  106.     )
  107.   )
  108.      bp (car (xdrx_entity_box ss))
  109.      ptl (getpntspath
  110.     bp
  111.     (vl-remove-if '(lambda (x) (equal bp x 0.001)) pts)
  112.   )
  113.    )
  114.    (xdrx_layer_make "XD-Circle-Path" 1)
  115.    (setq pl (apply 'xdrx_polyline_make ptl))
  116.    (xdrx_setpropertyvalue pl "layer" "XD-Circle-Path")
  117. )
  118.       )
  119.       (if (and (= (xdrx_yesorno "接受路径直接输出" "Y") 1)
  120.         (or $globleFilenum (setq $globleFilenum 1))
  121.         (setq
  122.    fn (strcat "XD-"
  123.        (XD::String:Strpad $globleFilenum 4 "0" 0)
  124.       )
  125.         )
  126.         (setq dir (car (xdrx_system_selectfiles
  127.     "选择保存位置"
  128.     (strcat "c:\" fn ".nc")
  129.     "nc"
  130.     1
  131.          )
  132.     )
  133.         )
  134.    )
  135. (progn
  136.    (or (numberp $globlespeed) (setq $globlespeed 200))
  137.    (or (numberp $globlehight) (setq $globlehight 5))
  138.    (if (and (setq i (getint (strcat "\n切削速度[0-200]<"
  139.         (itoa $globlespeed)
  140.         ">: "
  141.        )
  142.       )
  143.      )
  144.      (< 0 i 201)
  145.        )
  146.      (setq $globlespeed i)
  147.      (setq i $globlespeed)
  148.    )
  149.    (if (and (setq
  150.        ih (getint (strcat "\n安全高度<"
  151.      (if $globlehight
  152.        (itoa $globlehight)
  153.        (itoa (setq $globlehight 5))
  154.      )
  155.      ">: "
  156.     )
  157.    )
  158.      )
  159.      (< 0 ih 51)
  160.        )
  161.      (setq $globlehight ih)
  162.      (setq ih $globlehight)
  163.    )
  164.    (setq header '("G91G28X0Y0Z0"       "G40G17G80G49"
  165.     "G90G54"      "G0z5"      "M00"
  166.     "M03"        "S1500"
  167.    )
  168.   ;;G0X坐标Y坐标Z2       坐标就是框选圆心的坐标,按我的理解,这个应该是离UCS最近那个。
  169.   ;;G01Z-2F50          这里的50就是用户输入的切削速度了。哦,最大值不能超过200,要不然机器就麻烦了。
  170.   ;;G0Z5               这个5也是用户输入的,这是安全高度。最大值50,太高了机器行程不够。
  171.   ptl    (apply
  172.     'append
  173.     (mapcar
  174.       '(lambda (x)
  175.          (list (strcat "G0X"
  176.          (rtos (car x) 2 3)
  177.          "Y"
  178.          (rtos (cadr x) 2 3)
  179.           )
  180.         "G0Z1"
  181.         (strcat "G01Z-2F" (itoa i))
  182.         (strcat "G0Z" (itoa ih))
  183.          )
  184.        )
  185.       (mapcar '(lambda (a) (mapcar '- a bp)) (cdr ptl))
  186.     )
  187.          )
  188.   lst    (append header ptl '("M30"))
  189.    )
  190.    (xd::list:tofile dir lst)
  191.    (setq $globleFilenum (1+ $globleFilenum))
  192.    (princ
  193.      (strcat "\n写出 " dir " 文件, Ok")
  194.    )
  195. )
  196.       )
  197.       (xdrx_document_ucson)
  198.     )
  199.   )
  200.   (princ)
  201. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-2 08:40:04 | 显示全部楼层
我希望能集两者之大成,造福我等不会编程的人。谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-2 09:30:30 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2014-4-2 09:36 编辑

昨晚写的比较仓促,写完没有测试,可行把以前那个稍微修改下用同一个程序
不过操作方法改下,不用窗选,点选矩形,程序自动选择,如果有路径直接输出,没有再提示哪种格式……

点评

谢谢大师的不断改进。没有你帮助的话,都不知道怎么办了呢。  详情 回复 发表于 2014-4-2 09:56
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-2 09:56:13 | 显示全部楼层
st788796 发表于 2014-4-2 09:30
昨晚写的比较仓促,写完没有测试,可行把以前那个稍微修改下用同一个程序
不过操作方法改下,不用窗选,点 ...

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

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

发表于 2014-4-2 18:02:32 | 显示全部楼层
楼主牛X啊。。。。。技术啊。。。。
这都可以量产了。。。

点评

这个自己用用还是可以的。前两天去深圳会展中心,看了下机械展,连这个视频里的机器都仿出来了。http://v.youku.com/v_show/id_XNDUzNDE3NzI0.html 还有很多各种各样的数控,自动化的设备。这量产不太实际,拿不出  详情 回复 发表于 2014-4-2 18:11
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-4-2 18:11:37 | 显示全部楼层
ysq101 发表于 2014-4-2 18:02
楼主牛X啊。。。。。技术啊。。。。
这都可以量产了。。。

这个自己用用还是可以的。前两天去深圳会展中心,看了下机械展,连这个视频里的机器都仿出来了。http://v.youku.com/v_show/id_XNDUzNDE3NzI0.html  还有很多各种各样的数控,自动化的设备。这量产不太实际,拿不出手啊!满足一下DIY的愿望就行了。

点评

用途不同,客户群也不同。在中国,像这样价钱不高,可以节省人力的小机器应该有市场。  详情 回复 发表于 2014-10-2 22:05
这个在模具行业里应该是有市场的啊。。。 价格不贵。。。实用。。。操作简单。。 记得收成的时候分一些给版主就好了 看好你哦。。。。加油。。。。。。  详情 回复 发表于 2014-4-2 18:37
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 04:46 , Processed in 0.307198 second(s), 63 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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