明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: gcho

[讨论] 如何快速按比例作图

  [复制链接]
发表于 2011-3-2 22:27:37 | 显示全部楼层

  1. (defun c:plcs()
  2.     (if (= (setq blc (getreal (strcat "\n1:?<" (itoa (getvar "useri5")) ">"))) nil)
  3.         (setq blc 1)
  4.     )
  5.     (setvar "useri5" blc)
  6.       
  7.     (setq bl (/ blc 1000.0))
  8.     (initget "L C")
  9.     (if (= (setq bz (getkword "\n画直线-L/画圆-C <L>:")) nil)
  10.         (setq bz "L")
  11.     )
  12.     (cond ((= bz "L")
  13.              (while (setq p1 (getpoint "\n起点<回车结束>:"))
  14.                  (if (and (setq p2 (getpoint p1 "\n止点所在方向:"))
  15.                           (setq ll (getreal (strcat "\n直线长度<" (rtos (getvar "userr5")) ">:")))
  16.                      )
  17.                      (progn
  18.                         (setvar "userr5" ll)
  19.                         (setq ang (angle p1 p2)
  20.                               pt  (polar p1 ang (/ ll bl))
  21.                         )
  22.                         (command "_line" p1 pt "")
  23.                      )
  24.                  )
  25.              )
  26.           )
  27.           ((= bz "C")
  28.              (while (setq p1 (getpoint "\n圆心<回车结束>:"))
  29.                 (if (setq rr (getreal (strcat "\n半径<" (rtos (getvar "userr4")) ">:")))
  30.                     (progn
  31.                        (setvar "userr4" ll)
  32.                        (command "_circle" p1 (/ rr bl))
  33.                     )
  34.                 )

  35.              )
  36.           )
  37.     )
  38.     (princ)
  39. )

评分

参与人数 1金钱 +20 收起 理由
gcho + 20 这个只是表面上记忆了上一次的值,但是回车.

查看全部评分

 楼主| 发表于 2011-3-2 22:37:55 | 显示全部楼层
回复 yshf 的帖子

这个只是记住了上次的值,但是回车后并不是按括号里那个默认值来作图的,另外,画直线长度默认值也存在这个问题,期待你的改进!
 楼主| 发表于 2011-3-2 22:40:41 | 显示全部楼层
yshf 发表于 2011-3-2 22:27

命令: PLCS

1:?<100>

画直线-L/画圆-C <L>:c

圆心<回车结束>:
半径<0>:5
; 错误: AutoCAD 变量设置被拒绝: "userr4" nil
发表于 2011-3-2 22:44:04 | 显示全部楼层
本帖最后由 yshf 于 2011-3-2 22:50 编辑
复制代码

评分

参与人数 1金钱 +20 收起 理由
gcho + 20 很完美!

查看全部评分

 楼主| 发表于 2011-3-2 22:50:35 | 显示全部楼层
yshf 发表于 2011-3-2 22:44

可否把复制和移动,还有偏移这三个最常用的命令追加到后面!
发表于 2011-3-2 22:53:52 | 显示全部楼层
本帖最后由 yshf 于 2011-3-2 23:18 编辑

(defun c:plcs()
    (if (= (getvar "useri5") 0) (setvar "useri5" 1.0))
    (if (= (setq blc (getreal (strcat "\n1:?<" (itoa (getvar "useri5")) ">"))) nil)
        (setq blc (getvar "useri5"))
        (setvar "useri5" blc)
    )
    (setq bl (/ blc 1000.0))
  
    (initget "L C")
    (if (= (setq bz (getkword "\n画直线-L/画圆-C <L>:")) nil)
        (setq bz "L")
    )
    (cond ((= bz "L")
      (while (setq p1 (getpoint "\n起点<回车结束>:"))
                 (if (setq p2 (getpoint p1 "\n止点所在方向:"))
       (progn
          (if (= (getvar "userr5") 0) (setvar "userr5" 1.0))
          (if (= (setq ll (getreal (strcat "\n直线长度<" (rtos (getvar "userr5")) ">:"))) nil)
       (setq ll (getvar "userr5"))
       (setvar "userr5" ll)
   )
         
                        (setq ang (angle p1 p2)
         pt  (polar p1 ang (/ ll bl))
   )
          (command "_line" p1 pt "")
       )
   )
      )
   )
   ((= bz "C")
      (while (setq p1 (getpoint "\n圆心<回车结束>:"))
         (if (= (getvar "userr4") 0) (setvar "userr4" 1.0))
                (if (= nil (setq rr (getreal (strcat "\n半径<" (rtos (getvar "userr4")) ">:"))))
      (setq rr (getvar "userr4"))
      (setvar "userr4" rr)
  )
        
  (command "_circle" p1 (/ rr bl))
      )
   )
    )
    (princ)
)

评分

参与人数 1金钱 +20 收起 理由
gcho + 20 我很赞同

查看全部评分

 楼主| 发表于 2011-3-2 23:02:17 | 显示全部楼层
yshf 发表于 2011-3-2 22:53

期待将复制、移动、偏移命令加入,该下班了,明天再来请教!
发表于 2011-3-3 08:27:29 | 显示全部楼层
本帖最后由 x_s_s_1 于 2011-3-3 08:32 编辑

何必这么麻烦,我也做过水工,用布局快多了,画图全是1:1,标尺寸的时候按不同比例因子标就是了,制图速度快要充分理解dim方面的知识(不知你是用纯cad还是外挂软件如天正、探索者等,如用外挂一般都可自动调整全局比例和比例因子标注,纯cad可自己事先定义几种标注样式如dim1、dim10、dim50等)
发表于 2011-3-3 08:48:12 | 显示全部楼层
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0

评分

参与人数 1金钱 +20 收起 理由
gcho + 20 加了复制,移动等命令,更好用了!

查看全部评分

发表于 2011-3-3 10:11:34 | 显示全部楼层
回复 ZZXXQQ 的帖子

版主这个地方有小点问题
(initget "L C CO M O ")
(setq bz (getkword "\n直线-L/圆-C/拷贝-CP/移动-M/偏移-O <L>:"))
应为
  1. (initget "L C CO M O ")
  2. (setq bz (getkword "\n直线-L/圆-C/拷贝-CO/移动-M/偏移-O <L>:"))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 14:33 , Processed in 0.580208 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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