Kye 发表于 2017-12-4 14:37:33

没办法,手机发贴就这个效果

liunian0524 发表于 2017-12-5 09:21:05

1:高飞鸟大师有一个批量写块;;==============批量写块=================
(defun c:ww (/ *error* cmdecho filename name path i)
(defun *error* (s)
    (princ s)
    (setvar 'cmdecho cmdecho)
    )
(setq cmdecho (getvar 'cmdecho))
(setvar 'cmdecho 0)
(cond
    ((not (setq filename (getfiled "保存文件名" "" "dwg" 1))))
    (t
   (setq name (VL-FILENAME-BASE filename)
         path (strcat (VL-STRING-RIGHT-TRIM
                        "\\"
                        (VL-FILENAME-DIRECTORY filename)
                        )
                        "\\"
                        )
         i    0
         )
   (princ "\n选择写块物体:")
   (while (setq ss (ssget))
       (command "wblock"
                (strcat path name (itoa (setq i (1+ i))) ".dwg")
                ""
                "0,0,0"
                ss
                ""
                )
       (command "oops")
       (princ "\n继续选择写块物体<右键结束>:")
       )
   )
    )
(setvar 'cmdecho cmdecho)
(princ)
)
2:秋枫大侠的批量打印-分图工具



司徒妙嘉 发表于 2017-12-7 09:09:14

liunian0524 发表于 2017-12-5 09:21
1:高飞鸟大师有一个批量写块;;==============批量写块=================
(defun c:ww (/ *error* cmdecho...

第一个其实也是一个一个框选吧? 并不是把所有要框的框一下就刷刷刷的全出来吧?

xtjd 发表于 2017-12-12 10:56:59

(defun c:wq2(/ f1 f2 f3 f4 o1 o2 ss)
(setvar "cmdecho" 0)
(princ "\n请选择需要导出的图元:")
(if(setq ss(ssget))
    (progn
      (setq f1(strcat(getvar "dwgprefix"))f2(fnsplitl(getvar "dwgname"))f3(cadr f2)f4(caddr f2))
      (setq o1(mapcar 'vlax-ename->vla-object(vl-remove-if 'listp(mapcar 'cadr(ssnamex ss)))))
      (setq o2(vl-remove-if-not '(lambda(x)(wcmatch(vla-get-objectname x)"AcDbText*"))o1))
      (if o2
        (setq f2(strcat f1 f3 "_" (vla-get-textstring(car o2))f4))
        (setq f2(strcat f1 f3 "_"(substr(rtos(/ (getvar "cputicks")123456789))4)f4))
      )
      (if(findfile f2)
        (command ".wblock" f2 "y" "" (list 0 0) ss "")
        (command ".wblock" f2"" (list 0 0) ss "")
      )
      (command ".oops")
      (princ(strcat "\n[" f2 "]零件成功导出"))
    )
)
(prin1)
)

pezyl 发表于 2017-12-12 16:58:17

本帖最后由 pezyl 于 2017-12-12 17:01 编辑

xtjd 发表于 2017-12-12 10:56
(defun c:wq2(/ f1 f2 f3 f4 o1 o2 ss)
(setvar "cmdecho" 0)
(princ "\n请选择需要导出的图元:")

好简洁的程序,不过4个图得操作4次,能不能根据图形之间的间距来批量操作呢,当然,画图得有规则,比如文字在封闭框内等等

zhangcan0515 发表于 2017-12-12 22:31:15

xtjd 发表于 2017-12-12 10:56
(defun c:wq2(/ f1 f2 f3 f4 o1 o2 ss)
(setvar "cmdecho" 0)
(princ "\n请选择需要导出的图元:")


能不能导出后的dwg名称是属性图框里的属性值

zhangcan0515 发表于 2017-12-12 22:41:03

llsheng_73 发表于 2017-11-27 15:59
wblock命令输出的是DWG文件,其中图元也是一个一个的

确实比较实用,靠 以前都没发现。白玩了这么多年

xtjd 发表于 2017-12-14 08:00:41

pezyl 发表于 2017-12-12 16:58
好简洁的程序,不过4个图得操作4次,能不能根据图形之间的间距来批量操作呢,当然,画图得有规则,比如文 ...

如果只是单一的零件外形,没有三视图,可以实现;如果零件外形带有侧视图,则排列最好遵循以零件形心

xtjd 发表于 2017-12-14 08:04:54

zhangcan0515 发表于 2017-12-12 22:31
能不能导出后的dwg名称是属性图框里的属性值

有图框其实应该是可以框选全部,以图框为单位,导入单一零件DWG(文件名可以是属性值或程序可以获取的其它文本)

Andyhon 发表于 2017-12-14 10:29:27

公司的绘图制程,若配合程序走向效率化,那么磨合后自然会有配套规范
考量如何方便程序的后续处理,不规范则效率化会很费劲耗时...
页: 1 2 3 [4] 5
查看完整版本: 能否用lisp实现快速将选中的图元另存一个cad文件