humans23 发表于 2018-9-12 14:39:47

哪位大神能不能帮忙开发个复杂的分图程序!!!急,在线等

本帖最后由 humans23 于 2018-9-13 10:55 编辑

介绍下,一张大图里有很多有编号的零件,我要做的是手动把这些有编号的零件全部另存出来,并用编号字母前的数字命名保存。 比如我要编号1234B-42654这个零件,
我的手动操作是:1.先用查找find,搜索1234B,并定位

2.定位后,窗选零件,用TXTEXP命令把字体炸开(注意此命令不能大批量使用,且不能缩放太小使用,否则炸开的文字线条是一条直线或者字体变形)
3.然后再窗选,用WB命令,1234命名保存,完毕这些零件编号取自Excel中,图形乱序排列,只得一个一个搜索,我的理想程序是通过Excel中的编号能不能分图,或则是给出图形中心坐标,把图中字体分解并以字母前的数字命名保存。如有大神觉得能实现,具体细节请QQ332369043联系我









Andyhon 发表于 2018-9-12 19:29:13

Try this

(defun dxg (code ele)
   (cdr (assoc code (entget ele)))
)

(Defun C:Try ()
   (setq ss (ssget "X" '((1 . "J*B-*")))
      Dir (GetVar "DWGPREFIX")
      HH1 '(500 450)
      HH2 '(1705 450)
      IDX-1
   )
   (While (setq ee (ssname ss (setq idx (1+ idx))))
   (setq pt (dxg 10 ee)
         p1 (mapcar '- pt HH1)
         p2 (mapcar '+ pt HH2)
          Tmp (ssget "C" p1 p2)
          txt (dxg 1 ee)
          txt (substr txt 2 4)
      )
      (command "Wblock" (strcat Dir txt) "" "non" pt Tmp "")
    )
)

mikewolf2k 发表于 2018-9-12 15:00:18

急得话上例图,用钱砸。

humans23 发表于 2018-9-12 15:31:36

mikewolf2k 发表于 2018-9-12 15:00
急得话上例图,用钱砸。

嗯啊,就不知道什么价位呀。你看看这个样图,可以实现吗。

纵横八方 发表于 2018-9-12 16:32:10

怎么联系楼主

humans23 发表于 2018-9-12 16:40:25

QQ332369043{:1_1:}

纵横八方 发表于 2018-9-12 16:48:34

能不能发一份想要的结果图

humans23 发表于 2018-9-12 17:06:38

纵横八方 发表于 2018-9-12 16:48
能不能发一份想要的结果图

结果图是取B字母前的数字命名

humans23 发表于 2018-9-13 10:53:36

Andyhon 发表于 2018-9-12 19:29
Try this

(defun dxg (code ele)


……6666666,长老,此程序能不能再改一下,能不能把分出来的图字体炸成线条

Andyhon 发表于 2018-9-13 18:46:18

;;; 替換如下
(Defun C:Try ()
   (SetVar 'CmdEcho 0)
   (setq ss (ssget "X" '((1 . "J*B-*")))
      Dir (GetVar "DWGPREFIX")
      HH1 '(600 500)
      HH2 '(1700 500)
      IDX-1
   )
   
   (While (setq ee (ssname ss (setq idx (1+ idx))))
   (setq pt (dxg 10 ee)
         p1 (mapcar '- pt HH1)
         p2 (mapcar '+ pt HH2)
          txt (dxg 1 ee)
          txt (substr txt 2 4)
         ff (strcat Dir txt)
   )
   (command "Zoom" "w" p1 p2)
   (setq Tmp (ssget "W" p1 p2 '((0 . "*TEXT"))))
   (command "WMFOUT" ff Tmp "")
   (acet-wmfin ff)
   (vl-file-delete (strcat ff ".wmf"))
   (command "Erase" Tmp "")
   (setq Tmp (ssget "C" p1 p2))
   (command "Wblock" ff "" "non" pt Tmp "")
   )
)
页: [1]
查看完整版本: 哪位大神能不能帮忙开发个复杂的分图程序!!!急,在线等