明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: scorpio

挑战高手!

  [复制链接]
发表于 2004-2-1 21:01:00 | 显示全部楼层
批处理已经有LSP结合SCR的函数 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=12477
 楼主| 发表于 2004-2-2 09:44:00 | 显示全部楼层
to lockmyeye


现在我是还没有已经存在的图,需要一面修改,一面打印,最后保存


还有,有没有关于LISP的教程的书,很难买到:(


关于单行文字输入和PLOT的LISP语言格式是什么样的呢?
发表于 2004-2-2 20:42:00 | 显示全部楼层
呵呵,可惜我以前一直在晓东cad溜达,没到这里看看。不知楼上的仁兄还是否需要?很简单。用批处理scr当然是方法之一。不过我猜仁兄的要求不是这个。


用lisp当然行呀:


先弄一个文本文件。一个文件名一行。


用while循环,一次读入一行。得到要改的文件名(字串)


在图中点击找到要改的实体,(你的标题)(ssget)


替换实体的字串内容。(该函数遍地都有)


打印:(command "_.-plot "  "" "" "" "" "" "" "")


存盘:(command"save as" XXX)


wend


ok!
发表于 2004-2-3 08:45:00 | 显示全部楼层
如果是在现有的一张图上修改少量的东西而形成更多的文件,试试下面的代码,打印可自己添加或用批处理
  1.   (defun c:test (/ END NEW-NAME NEW-NAME2 WJLJ WJMXH WJS YSWJM)
  2.    (setq wjlj (getvar "DWGPREFIX"))
  3.    (setq wjmxh (GETINT "\n请输入文件起始序号:"))
  4.    (setq wjs (GETINT "\n请输入欲形成文件数:"))
  5.    (setq yswjm (car (ENTSEL "\n选择原文件名LOCATION: ")))
  6.    (setq ystxh (car (ENTSEL "\n选择原图序号DRAWING NO: ")))
  7.    (setq wjtxh (GETINT "\n请输入图起始序号:"))
  8.    (command "setvar" "filedia" "0")
  9.    (REPEAT wjs
  10.        (setq new-name (STRCAT (itoa wjmxh) "-SHANGLIZHONGXUE.DWG"))
  11.        (setq new-name1 (STRCAT wjlj new-name))
  12.        (setq end (entget yswjm))
  13.        (setq end (subst (cons 1 new-name) (assoc 1 end) end))
  14.        (ENTMOD end)
  15. ;;;;;;;;;;;;;;;;;;;;;
  16.        (setq new-name (STRCAT   "SHANGGAO-" (itoa wjtxh)))
  17.        (setq end2 (entget ystxh))
  18.        (setq end2 (subst (cons 1 new-name) (assoc 1 end2) end2))
  19.        (ENTMOD end2)
  20. ;;;;;;;;;;;;;;;;;;;;;
  21.        (command "-wblock" new-name1 "*")
  22.        (command "oops")
  23.        (setq wjmxh (1+ wjmxh))
  24.        (setq wjtxh (1+ wjtxh))
  25.    )
  26.        (command "setvar" "filedia" "1")
  27. )
发表于 2004-5-25 11:13:00 | 显示全部楼层
起这样的文件名,此人本来就是变态!
发表于 2004-5-25 13:50:00 | 显示全部楼层
That will be much easier if the title blocks are blocks with attributes.
发表于 2004-5-25 13:55:00 | 显示全部楼层
嗨,楼上的, 看了你的图后, 很不妙啊. 你的图是不错, 如果用于自动打印的话, 你的图没有做到相应的配合. 也就是如何给配合打印的一个埋伏! 什么是埋伏呢? 原来,你的图框竟然是散的, 也是说 ,它是一个线条一个线条的拼凑起来的. 我是意思是说,你可以事先专门把图框做成带属性的块(特别注意的是,要做成单元块!!, 就是1X1见方的块,可通过等比例插入的方式得到配合图纸大小的实际的块,也就是实际的图框)! 有了这个块呢, 你就可以针对这个块进行编程啦. 主要的思路是: 通过分析用entget获得的数据来得出它的左下角的点(pt1)和右上角的点(pt2),把这两个点传给Plot命令, 就能实现自动打印了!
看来一楼的是不得不为每张图配做一个属性块罗! 一定惨罗! 好几千张呢不是?
发表于 2004-5-25 16:54:00 | 显示全部楼层
用VBA编挺简单的嘛
发表于 2004-6-4 12:53:00 | 显示全部楼层
把图做成块,块的属性值是这块的对应的名称。
发表于 2004-6-4 13:52:00 | 显示全部楼层
这是改后的属性块。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-6 09:51 , Processed in 0.182944 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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