明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1232|回复: 8

[基础] 新手求教

[复制链接]
发表于 2009-12-10 11:27 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-12-10 13:27:47 编辑

我是新手,有人可以帮忙看下么,第一点任意取,然后画 297*210的矩形,,谢谢了,弄了好久了,也出不来,不知道错在哪里

(defun c:aaa ()
(setq pt1 (getpoint "\n输入第一个点")
      pt3 (list(+(car pt1) 297)(+(cadr pt1) 210))
      pt2 (list(car pt3)(cadr pt1))
      pt4 (list(car pt1)(cadr pt3)))
 (command "pline" pt1 pt2 pt3 pt4 "c" )
  )

发表于 2009-12-10 16:16 | 显示全部楼层

(defun c:aaa ( / pt1 pt2 pt3 pt4)

(setvar "osmode" 0)
(setq pt1 (getpoint "\n输入第一个点")
      pt2 (mapcar '+ pt1 '(297 0 0))

      pt3 (mapcar '+ pt1 '(297 210 0))

      pt4 (mapcar '+ pt1 '(0 210 0))

 )
       (command "pline" pt1 pt2 pt3 pt4 "c" )
  )

 楼主| 发表于 2009-12-10 19:27 | 显示全部楼层

谢谢你,你的里面有些东西我看不懂的,我刚接触,我下午又检查了下我的,少了个括号,不过可以用的。。我外面那个A4的框可以了,想在里面加一个 内框  PT1设为(X,Y) PT5坐标是 加 (X+25 ,Y+5) PT6是 ( x+292 ,y+205) 线宽 0.8  如果用我下面的方法,有哪里错误了么?请指教,多谢【高级一点的我现在都不懂,只会笨的】

(defun c:aaa ()
(setq pt1 (getpoint "\n输入第一个点"))
 (setq pt3 (list(+(car pt1) 297)(+(cadr pt1) 210)))
  (setq pt2 (list(car pt3)(cadr pt1)))
   (setq pt4 (list(car pt1)(cadr pt3)))
 (command "pline" pt1 pt2 pt3 pt4 "c" ) ;外框这里都可以画出来了
    (setq pt5 (list(+(car pt1) 25)(+(cadr pt1) 5)))
  (setq pt6 (list(+(car pt1) 292)(+(cadr pt1) 205)))
    (command "rectangle" pt5  pt6  ) ;这个矩形总是出不来
)

发表于 2009-12-10 19:41 | 显示全部楼层
(defun c:aaa ()
  (setvar "osmode" 0)
(setq pt1 (getpoint "\n输入第一个点"))
 (setq pt3 (list(+(car pt1) 297)(+(cadr pt1) 210)))
  (setq pt2 (list(car pt3)(cadr pt1)))
   (setq pt4 (list(car pt1)(cadr pt3)))
 (command "pline" pt1 "w" 0.8 0.8 pt2 pt3 pt4 "c" ) ;外框这里都可以画出来了
    (setq pt5 (list(+(car pt1) 25)(+(cadr pt1) 5)))
   (print pt5)
  (setq pt6 (list(+(car pt1) 292)(+(cadr pt1) 205)))
   (print pt6)
    (command "rectangle" pt5  pt6  ) ;这个矩形总是出不来
)
 楼主| 发表于 2009-12-10 22:21 | 显示全部楼层

哈哈,谢谢哦,出来了,,不过我不明白 (setvar "osmode" 0)  和  (print pt5)这两个分别起到了什么作用呢?

我把我QQ号码发你邮箱了,SINA 那个,不加也行,呵呵,总之谢谢了

 楼主| 发表于 2009-12-10 22:28 | 显示全部楼层
我发现没有(print pt5) (print pt6) 这个也能做出来,,但是没有(setvar "osmode" 0) 就出不来。。
发表于 2009-12-11 08:40 | 显示全部楼层

(setvar "osmode" 0)是关掉捕捉,因为后面绘图是用command,捕捉要起作用。

(print pt5) (print pt6)是我调试加的,忘了删除

发表于 2009-12-11 09:08 | 显示全部楼层

你说白了就是想做图框,这样太麻烦了,制作一个块,编程插入块就行了。

 楼主| 发表于 2009-12-11 12:52 | 显示全部楼层

呵呵

谢谢你们,特别谢谢 liu_kunlun  ,我是新手,不过最后在昆仑的帮助下,总算得到了自己想要的结果,嘻嘻

这是自己尝试的第一个程序,虽然很繁琐,不过最后还是很开心的

(defun c:aaa ()
   (setvar "osmode" 0)
(setq pt1 (getpoint "\n输入第一个点"))
 (setq pt3 (list(+(car pt1) 297)(+(cadr pt1) 210)))
  (setq pt2 (list(car pt3)(cadr pt1)))
   (setq pt4 (list(car pt1)(cadr pt3)))
 (command "pline" pt1 pt2 pt3 pt4 "c" ) ;A4外框编辑
    (setq pt5 (list(+(car pt1) 25)(+(cadr pt1) 5)))
 (print pt5)
  (setq pt6 (list(+(car pt1) 292)(+(cadr pt1) 205)))
 (print pt6)
    (command "rectangle" "w" 0.8 pt5  pt6 ) ;内矩形编辑
  (setq pt7(list(-(car pt2) 95)(+(cadr pt2) 26)))
  (setq pt8(list(-(car pt2) 5)(+(cadr pt2) 5)))
   (command "rectangle"  pt7  pt8 ) ;找出标签的两个对角点
  (setq pt9 (osnap pt8 "mid"))
 (setq pt10 (osnap pt7 "mid"))
  (command "line"  pt9  pt10 "" ) ;画标签中线横
  (setq pt11(list(-(car pt8) 45)(cadr pt8)))
  (setq pt12(list(+(car pt7) 45)(cadr pt7)))
  (command "line"  pt11  pt12 "" );画标签中线竖
  (command "text" "j" "m" (list (+(car pt7) 22.5)(-(cadr pt7) 5.25)) "5" "0" "姓名")
   (command "text" "j" "m" (list (+(car pt7) 67.5)(-(cadr pt7) 5.25)) "5" "0" "李珊")
   (command "text" "j" "m" (list (+(car pt7) 22.5)(-(cadr pt7) 15.75)) "5" "0" "时间")
   (command "text" "j" "m" (list (+(car pt7) 67.5)(-(cadr pt7) 15.75)) "5" "0" "12月11日");完成文字输入
)

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

本版积分规则

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

GMT+8, 2024-5-21 13:55 , Processed in 1.100222 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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