明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: hl2006

跪求一LISP程序

  [复制链接]
 楼主| 发表于 2010-11-11 18:33 | 显示全部楼层

把程序简化一下会不会快一点啊,刚开始那个填充比较快。填充颜色只需品红色就行

 楼主| 发表于 2010-11-11 18:35 | 显示全部楼层

我们通常是图形放在一个层,线放在另外一个层了。在点线的时候,只要是一个层的就行。

发表于 2011-10-22 19:43 | 显示全部楼层
淡定淡定淡定
发表于 2011-11-13 11:10 | 显示全部楼层
gufeng是高手
发表于 2011-11-15 20:01 | 显示全部楼层
让你搞怕,某敢出来了
发表于 2011-11-17 11:06 | 显示全部楼层
相对于87楼的程序还需要修改什么?
发表于 2011-11-17 11:58 | 显示全部楼层
gufeng 发表于 2010-7-15 11:39
1、文件 Function.fas 可于 http://e.ys168.com/?ls0201 上下载,主要是些通用函数打包 部分来源于明经与网 ...

大哥也给我修改下这个代码吧,我找了很久都是对单行文字递增的,我想对多行文字也可以递增。因为有两行文字都要分别递增的。(defun c:dz (/ oce1 n1 zn h1 sxh1 p1)
  (vl-load-com)
  (setq oce1 (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (setq        ms (vla-get-modelspace
             (vla-get-activedocument (vlax-get-acad-object))
           )
  )
  (if qz
    ()
    (setq qz "")
    )
  (if hz
    ()
    (setq hz "")
    )
  (initget "c")
  (setq nqz (getstring (strcat "\n请输入前缀<" qz ">/c(为空): " )))
(cond
  ((= nqz "c") (setq qz ""))
  (T (if (/= nqz "")(setq qz nqz)))
)
  (setq nhz (getstring (strcat "\n请输入后缀<" hz ">/c(为空): " )))
  (cond
  ((= nhz "c") (setq hz ""))
  (T (if (/= nhz "")(setq hz nhz)))
)
  (if (not (setq n1 (getint "\n请输入起始顺序号 <1>: ")))
    (setq n1 1)
  )
  (if (not (setq zn (getint "\n请输入增加或减少的序数 <+1>: ")))
    (setq zn 1)
  )
  (if (not (setq h1 (getreal "\n请指定文字高度 <2.5>: ")))
    (setq h1 2.5)
  )
  (setq sxh1 (strcat qz (itoa n1) hz))
  (setq p1 (getpoint "\n请指定插入点: "))
  (while (/= p1 nil)
    (setq p1 (vlax-3d-point p1))
    (setq txt  (vla-addtext
                 ms
                 sxh1
                 p1
                 h1
               )
    )
   
    (setq
      n1   (+ n1 zn)
      sxh1 (strcat qz (itoa n1) hz)
      p1   (getpoint "\n请指定下一插入点: ")
    )
      
  )
  (setvar "cmdecho" oce1)
  (vlax-release-object ms)
  (princ)
)
谢谢了。那位大哥help me help me
发表于 2011-11-17 12:32 | 显示全部楼层
gufeng 发表于 2010-7-15 11:39
1、文件 Function.fas 可于 http://e.ys168.com/?ls0201 上下载,主要是些通用函数打包 部分来源于明经与网 ...

大哥给我个代码吧!我在网上找了很久都是关于单行文字的递增复制。现在想找个多行文字也能实现递增的。因为两行上都有要递增的数。下面是单行的代码,我真的找好久了。这是我看到希望了 help me help me
(defun c:dz (/ oce1 n1 zn h1 sxh1 p1)
  (vl-load-com)
  (setq oce1 (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (setq        ms (vla-get-modelspace
             (vla-get-activedocument (vlax-get-acad-object))
           )
  )
  (if qz
    ()
    (setq qz "")
    )
  (if hz
    ()
    (setq hz "")
    )
  (initget "c")
  (setq nqz (getstring (strcat "\n请输入前缀<" qz ">/c(为空): " )))
(cond
  ((= nqz "c") (setq qz ""))
  (T (if (/= nqz "")(setq qz nqz)))
)
  (setq nhz (getstring (strcat "\n请输入后缀<" hz ">/c(为空): " )))
  (cond
  ((= nhz "c") (setq hz ""))
  (T (if (/= nhz "")(setq hz nhz)))
)
  (if (not (setq n1 (getint "\n请输入起始顺序号 <1>: ")))
    (setq n1 1)
  )
  (if (not (setq zn (getint "\n请输入增加或减少的序数 <+1>: ")))
    (setq zn 1)
  )
  (if (not (setq h1 (getreal "\n请指定文字高度 <2.5>: ")))
    (setq h1 2.5)
  )
  (setq sxh1 (strcat qz (itoa n1) hz))
  (setq p1 (getpoint "\n请指定插入点: "))
  (while (/= p1 nil)
    (setq p1 (vlax-3d-point p1))
    (setq txt  (vla-addtext
                 ms
                 sxh1
                 p1
                 h1
               )
    )
   
    (setq
      n1   (+ n1 zn)
      sxh1 (strcat qz (itoa n1) hz)
      p1   (getpoint "\n请指定下一插入点: ")
    )
      
  )
  (setvar "cmdecho" oce1)
  (vlax-release-object ms)
  (princ)
)
发表于 2011-11-17 14:51 | 显示全部楼层
move_com 发表于 2011-11-17 12:32
大哥给我个代码吧!我在网上找了很久都是关于单行文字的递增复制。现在想找个多行文字也能实现递增的。因 ...
  1. (defun c:dz (/ oce1 n1 zn h1 sxh1 p1 key)
  2.   (vl-load-com)
  3.   (setq oce1 (getvar "cmdecho"))
  4.   (setvar "cmdecho" 0)
  5.   (setq        ms (vla-get-modelspace
  6.              (vla-get-activedocument (vlax-get-acad-object))
  7.            )
  8.   )
  9.   (if qz
  10.     ()
  11.     (setq qz "")
  12.   )
  13.   (if hz
  14.     ()
  15.     (setq hz "")
  16.   )
  17.   (initget "c")
  18.   (setq nqz (getstring (strcat "\n请输入前缀<" qz ">/c(为空): ")))
  19.   (cond
  20.     ((= nqz "c") (setq qz ""))
  21.     (T
  22.      (if (/= nqz "")
  23.        (setq qz nqz)
  24.      )
  25.     )
  26.   )
  27.   (setq nhz (getstring (strcat "\n请输入后缀<" hz ">/c(为空): ")))
  28.   (cond
  29.     ((= nhz "c") (setq hz ""))
  30.     (T
  31.      (if (/= nhz "")
  32.        (setq hz nhz)
  33.      )
  34.     )
  35.   )
  36.   (if (not (setq n1 (getint "\n请输入起始顺序号 <1>: ")))
  37.     (setq n1 1)
  38.   )
  39.   (if (not (setq zn (getint "\n请输入增加或减少的序数 <+1>: ")))
  40.     (setq zn 1)
  41.   )
  42.   (if (not (setq h1 (getreal "\n请指定文字高度 <2.5>: ")))
  43.     (setq h1 2.5)
  44.   )
  45.   (initget "1 2")
  46.   (setq key (getkword "\n单行文字(1)/多行文字(2)<单行>"))
  47.   (setq sxh1 (strcat qz (itoa n1) hz))
  48.   (setq p1 (getpoint "\n请指定插入点: "))
  49.   (while (/= p1 nil)
  50.     (setq p1 (vlax-3d-point p1))
  51.     (if        (= key "2")
  52.       ;;_使用双行文字 对齐点左上角
  53.       (setq txt        (vla-addmtext
  54.                   ms
  55.                   p1
  56.                   h1
  57.                   sxh1
  58.                 )
  59.       )
  60.       ;;_使用单行文字 对齐点左下角
  61.       (setq txt        (vla-addtext
  62.                   ms
  63.                   sxh1
  64.                   p1
  65.                   h1
  66.                 )
  67.       )
  68.     )
  69.     (setq
  70.       n1   (+ n1 zn)
  71.       sxh1 (strcat qz (itoa n1) hz)
  72.       p1   (getpoint "\n请指定下一插入点: ")
  73.     )
  74.   )
  75.   (setvar "cmdecho" oce1)
  76.   (vlax-release-object ms)
  77.   (princ)
  78. )
发表于 2011-11-17 16:21 | 显示全部楼层
gufeng 发表于 2011-11-17 14:51

你好利害呀,写出来了,但是好像用不了,是不是没有改前面的代码,前面的代码是单行信息,后面的多行代码就用不了啦。在CAD中单行和多行上有很大的区别(感觉),用CADi加载后“dz”运行的.再帮下我吧好吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 16:35 , Processed in 0.294541 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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