明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: lcad

有高手能回答我的问题吗?[求助]

  [复制链接]
发表于 2002-3-25 10:00:00 | 显示全部楼层

关于程序自动处理“比例”这个问题,你看看TCH是怎么做的就清楚了.

我想说的是开发者必须清楚知道自己在开发什么,思路是不是正确...

现在之所以很多国产CAD软件没人用的原因之一就在于此.开发者自己不知道用户是怎样工作的,需要什么,只是想当然...我建议开发者最好先深入理解和掌握AutoCAD.

就lcad的问题,我觉得AutoCAD本身之所以有Layout(PSpace)这个东西来正确实现已经可以说明我上面所说的是什么意思了...
发表于 2002-3-27 20:56:00 | 显示全部楼层

我得咗。

下面的程序可实现通过点击或输入距离画线,键盘输入时自动乘上一个系数

(defun c:qq (/ p1 p2 p3 str dis ang)
  (setq p1 (getpoint "\n输入第一点:"))
  (setq p2 (getpoint p1 "\n输入第二点:"))
  (setq str (getvar "lastprompt"))        ;本程序的关键
  (if (or (wcmatch str "输入第一点:*")
          (and(not (wcmatch str "输入第二点:*"))
              (not (wcmatch str "[0-9]*"))
              (not (wcmatch str "-[0-9]*"))
              (not (wcmatch str " <*> [0-9]*"))
              (not (wcmatch str " <*> -[0-9]*"))
          )
      )
    (command "line" p1 p2 "")
    (progn
      (setq dis (distance p1 p2) ang (angle p1 p2))
      (setq p3 (polar p1 ang (* dis 1.5)))  ;1.5为自定义的比例值
      (command "line" p1 p3 "")
    )
  )
  (princ)
)
;难点:对不同情况下产生的"lastprompt"值的识别.

点啊,lcad,明解唔明解?记得请饮茶。
发表于 2002-3-27 22:27:00 | 显示全部楼层

很好!

发表于 2002-3-28 10:17:00 | 显示全部楼层

这样做是否可以?

1。使用initget和getpoint得到输入的数据:
(initget 128)
(setq pt1 (getpoint "\nFirst Point:"))
2。使用键盘输入,用"-"(或者其他的)符号替代",",返回值是字符串。如果使用鼠标,则返回点坐标。对字符串字符串进行处理,得到坐标值。
如:"200-200" 处理得(200,200,0)。(代码略)
3。重复(1)
(initget 128)
(setq pt2 (getpoint pt1 "\nSecond Point:"))
4。处理pt2得到点坐标,使用pt1,pt2画线

有一点让人介意,就是键盘输入时不能采用点输入的方式。不知你是怎么识别键盘输入和鼠标输入的,可以一起研究研究!
 楼主| 发表于 2002-3-29 10:25:00 | 显示全部楼层

衷心感谢杨少同志,你帮了我大忙了,真乃高手也!

谢谢杨少同志、天狼鼠同志、南子同志、MCCAD同志,交个朋友,不知各位高手现在在哪高就,有没有兴趣出来一起做一个附合中国国情的而且非常易用的CAD,如果有兴趣,请与我联系。
发表于 2002-3-30 15:26:00 | 显示全部楼层

其实程序还可以更简洁。

(defun c:qq (/ p1 p2 p3 str dis ang)
  (setq p1 (getpoint "\n输入第一点:"))
  (setq p2 (getpoint p1 "\n输入第二点:"))
  (setq str (getvar "lastprompt"))
  (if (wcmatch str "*#")
    (progn
      (setq dis (distance p1 p2) ang (angle p1 p2))
      (setq p2 (polar p1 ang (* dis 1.5)))
    )
  )
  (command "line" p1 p2 "")
  (princ)
)
 楼主| 发表于 2002-4-1 10:18:00 | 显示全部楼层

我的工作已完成,如有哪位高手需要可来信索取。

本人在杨少同志的启发下,已完成了系统命令line,circle,copy,move等所有绘图及编辑命令的替换,现在绘图已可以完全不要考虑比例问题了,可以随心所欲,在什么图框内就按什么比例,在图框外就按1:1画,我本人对这一点觉得很满意,如有哪位同志的绘图方法与我一样的话,可来信与我联系,本人提供所有源代码,以供各位参考。
发表于 2002-4-1 10:21:00 | 显示全部楼层

贴一部分出来吧,让大家学习参考

发表于 2002-4-1 12:36:00 | 显示全部楼层

你那种方法画组合图时,不合用!!!

 楼主| 发表于 2002-4-1 16:14:00 | 显示全部楼层

何为组合图?

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

本版积分规则

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

GMT+8, 2025-6-7 21:46 , Processed in 0.166957 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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