明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1382|回复: 6

[讨论] 快速插入

[复制链接]
发表于 2013-11-25 19:54 | 显示全部楼层 |阅读模式
我有个快速调出dwg档的指令,指令的键入顺序如下图。 源代码在二楼,问题:这个调入程序是先输入de→输入需要的dwg档名称→选择插入位置→调整图元X、Y比例→回车后才能插入图元。想改成:先输入de→输入需要的dwg档名称→出现图元,且跟随鼠标移动→调整图元X、Y比例→点击鼠标左键→图元显示在左键点击处。

本帖子中包含更多资源

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

x
 楼主| 发表于 2013-11-25 19:56 | 显示全部楼层
(defun c:de(/ file dwg pt sx sy)
  (setvar "cmdecho" 0)
  (setq file (getstring "\n输入待输入的图形文件名:"))
  (if (not file)(exit)
    (progn
      (setq dwg(findfile(strcat file ".dwg")))
      (if(not dwg)(exit)
        (progn
          (setq pt(getpoint "\n指定插入点:"))
          (if(not pt)(exit)
            (progn
              (setq sx(getreal "\指定X比例<1>:"))
              (if(not sx)(setq sx 1))
              (setq sy(getreal "\指定Y比例<1>:"))
              (if(not sy)(setq sy 1))
              (command "-insert" dwg pt sx sy "0")
              )
            )
          )
        )
      )
    )
  (setvar "cmdecho" 0)
  (princ)
  )

评分

参与人数 1明经币 +1 收起 理由
llsheng_73 + 1 没事给我加币做什么!!!

查看全部评分

发表于 2013-11-25 20:43 | 显示全部楼层
本帖最后由 llsheng_73 于 2013-11-25 21:26 编辑

(defun c:de(/ file dwg a sx sy)
   (setvar "cmdecho" 0)
   (setq file (getstring "\n输入待输入的图形文件名:"))
   (if (not file)(exit)
     (progn
       (setq dwg(findfile(strcat file ".dwg")))
       (if(not dwg)(exit)
         (progn
           (command "-insert" dwg '(0 0 0) 1 1 "0");;(entmake
           (setq dwg(vl-filename-base  dwg))
           (while(/=(car(setq a(grread 4)))3);;;;grread感觉没处理好,不太会这个函数,E文的帮助不能给我提供有效帮助,只能让我头痛
             (command"ERASE"(SSADD(ENTLAST))"");;;改为(entdel(entlast))应该要好些
             (command "-insert" dwg(cadr a)1 1 "0"))
           (setq sx(if(setq sx(getreal "\指定X比例<1>:"))sx 1))
           (setq sy(if(setq sy(getreal "\指定Y比例<1>:"))sy 1))
           (command"ERASE"(SSADD(ENTLAST))"");;;改为(entdel(entlast))应该要好些
           (command "-insert" dwg(cadr a)sx sy "0")
           )
             )
           )
         )
   (setvar "cmdecho" 0)
   (princ)
   )

评分

参与人数 1明经币 +1 收起 理由
混沌初开 + 1 高手面前神马都是浮云!

查看全部评分

发表于 2013-11-25 20:57 | 显示全部楼层
做的是基本指令的事,感覺有點多此一舉
 楼主| 发表于 2013-11-25 23:22 | 显示全部楼层
llsheng_73 发表于 2013-11-25 20:43
(defun c:de(/ file dwg a sx sy)
   (setvar "cmdecho" 0)
   (setq file (getstring "\n输入待输入的图 ...

要不您怎重新发一个!

评分

参与人数 1明经币 +1 收起 理由
llsheng_73 + 1 郁闷,想把币都还给你,可它一次只让给1个

查看全部评分

发表于 2013-11-26 00:08 | 显示全部楼层
(defun c:de(/ file dwg a sx sy)
    (setvar "cmdecho" 0)
    (setq file (getstring "\n输入待输入的图形文件名:"))
    (if (not file)(exit)
      (progn
        (setq dwg(findfile(strcat file ".dwg")))
        (if(not dwg)(exit)
          (progn
            (command "-insert" dwg '(0 0 0) 1 1 "0");;(entmake
            (setq dwg(vl-filename-base  dwg))
            (while(/=(car(setq a(grread 4)))3)
             (entdel(entlast))
             (command "-insert" dwg(cadr a)1 1 "0"))
            (setq sx(if(setq sx(getreal "\指定X比例<1>:"))sx 1))
            (setq sy(if(setq sy(getreal "\指定Y比例<1>:"))sy 1))
            (entdel(entlast))
           (command "-insert" dwg(cadr a)sx sy "0")
            )
              )
            )
          )
    (setvar "cmdecho" 0)
    (princ)
    )

评分

参与人数 1明经币 +1 收起 理由
混沌初开 + 1 很给力!

查看全部评分

 楼主| 发表于 2013-11-27 23:46 | 显示全部楼层
llsheng_73 发表于 2013-11-26 00:08
(defun c:de(/ file dwg a sx sy)
    (setvar "cmdecho" 0)
    (setq file (getstring "\n输入待输入的 ...

这个程序当鼠标移动过快时,所调出的图元跟不上。上一个程序无此现象!另外调出的图元跟在鼠标上,插入某位置时无法锁点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 13:20 , Processed in 0.245305 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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