明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 19843|回复: 64

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

  [复制链接]
发表于 2011-3-2 18:18:31 | 显示全部楼层 |阅读模式
本帖最后由 gcho 于 2011-3-2 20:37 编辑

LISP在理论上能不能做到调试CAD系统参数啊,我的想法:

作图步骤:
①当前作图比例1:?(给定具体值)
②画直线(或其它命令),鼠标点击起点,指定下一点时键盘输入数值a
③图上的直线长度自动变为了1000/?*a


已经上传了传附件。

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-8-13 00:20:41 | 显示全部楼层
其实有一个非常头疼的问题,当你到一个单位。
此单位已经有几千张可以用来借鉴和修改的图纸都是按照1:N来绘制的时候,
恐怕只能改变自己绘制的习惯了。
回复 支持 1 反对 0

使用道具 举报

发表于 2019-11-8 15:58:18 | 显示全部楼层
zag0666 发表于 2012-8-17 12:36
楼上这世界本来就没有什么是“正确”。下面我只讲好处了:
1. 编辑一个图纸始终要比,重新绘制要快。把老 ...

这些都不是事,最大的好处就是:
线型是不受缩放影响的(除非线型放在块内)不同比例放在同一张图内,打印出来的虚线都保持一致

在模型空间画不同比例是可以的
先把你“参考内容”,根据提示的尺寸缩放到1:1
然后在1:1上画
标完尺寸,文字,画完后,组成块后,保留该块,日后编辑时用块编辑来修改
然后copy这个块,你想放的"比例 / 该打印图纸比例" 放置到打印框上

15年前就是这样画图的,现在见到深有体会
发表于 2018-4-9 00:38:56 | 显示全部楼层
本帖最后由 tjc5471 于 2022-5-10 23:37 编辑

其实对于修改图纸来说楼主的需要还是有市场的,又回来看看了。ZZXXQQ兄的代码很实用的,不过绘制前设定比例比选择标注更切合实际?能否改写一下代码让我等小白拿来用呢?
发表于 2011-3-2 18:27:47 | 显示全部楼层
怎么不能传附件啊?



使用高级模式
 楼主| 发表于 2011-3-2 18:53:49 | 显示全部楼层
刚上传了附件,请帮忙看看!
发表于 2011-3-2 19:01:50 | 显示全部楼层
按1:1作图,最后缩放一下不就可以了?
发表于 2011-3-2 19:21:25 | 显示全部楼层
手工做图时要进行比例换算。计算机绘图最好是1:1的绘图。要改掉比例换算这个习惯。
 楼主| 发表于 2011-3-2 20:15:14 | 显示全部楼层
本帖最后由 gcho 于 2011-3-2 20:15 编辑

大家说的方法我知道,我只是想寻找一种新的作图方法,因为1:1作图时是方便,最后画完了要缩放,再用相应的比例去标注图形尺寸,这个过程不是很麻烦,麻烦就是下次修改这个图时就要进行换算了(这时你不可能再缩放到1:1去修改吧),这个换算过程是很费时的,如果自己编一个命令(比方说PLSC),回到我帖子的顶端要求,那么就省很多时了,唉,只是苦于我对LISP一窍不通,不能自己完成这个小小的程序,还望高手们相助,先拜谢了!
发表于 2011-3-2 20:58:20 | 显示全部楼层
为什么要缩放?出图时给比例不行吗?
 楼主| 发表于 2011-3-2 21:17:51 | 显示全部楼层
我是搞水工的,出图没有建筑方面要求规范,一般都是出A3的小图,可想而知,有时一张图纸上可能有多个断面图,且每个断面图可能比例不一样,所以画图时是要缩放的!
发表于 2011-3-2 21:21:09 | 显示全部楼层

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

  33.              )
  34.           )
  35.     )
  36.     (princ)
  37. )

评分

参与人数 1金钱 +10 收起 理由
gcho + 10 高手,谢谢!

查看全部评分

 楼主| 发表于 2011-3-2 22:02:37 | 显示全部楼层
本帖最后由 gcho 于 2011-3-2 22:11 编辑

回复 yshf 的帖子

你的代码很好,希望再优化一下:
1、能自动记忆上次的操作,比如上次是1:100,这次默认就是1:100,询问是否更改,不更改就直接回车画线或者画圆;
2、能否将<复制>,<偏移>命令追加到<回车结束>后面,因为画图的时候肯定要用到复制或者偏移等命令,复制或偏移的时候要输入距离,这个距离也只用输实际距离最方便。

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

本版积分规则

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

GMT+8, 2024-9-29 13:32 , Processed in 0.220328 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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