e2002 发表于 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 "*"))
            (not (wcmatch str "-*"))
            (not (wcmatch str " <*> *"))
            (not (wcmatch str " <*> -*"))
          )
      )
    (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画线

有一点让人介意,就是键盘输入时不能采用点输入的方式。不知你是怎么识别键盘输入和鼠标输入的,可以一起研究研究!

lcad 发表于 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)
)

lcad 发表于 2002-4-1 10:18:00

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

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

mccad 发表于 2002-4-1 10:21:00

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

龙龙仔 发表于 2002-4-1 12:36:00

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

lcad 发表于 2002-4-1 16:14:00

何为组合图?

页: 1 2 [3] 4 5 6 7 8 9
查看完整版本: 有高手能回答我的问题吗?[求助]