明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: daidong013

【求助】请大侠门来编一个这样的程序!

  [复制链接]
发表于 2011-6-26 17:22:41 | 显示全部楼层
你编的这个也好用,但是不是我想要的。谢谢了。
发表于 2011-6-26 17:26:23 | 显示全部楼层
框选对角线,画那4个方向的交叉线,那交叉点在中点。按A切换画的那对角的方向
发表于 2011-6-26 18:22:23 | 显示全部楼层
本帖最后由 zhynt 于 2011-6-26 19:12 编辑

回复 yzr2002626 的帖子

命令:win

本帖子中包含更多资源

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

x
发表于 2011-6-26 18:34:52 | 显示全部楼层
用了下,爽
发表于 2011-6-26 18:43:32 | 显示全部楼层
zhynt 发表于 2011-6-26 18:22
回复 yzr2002626 的帖子

命令:win

程序试一下,基本上可以,有个BUG,就是捕捉点没处理过,zhynt真是有心人.
发表于 2011-6-26 19:13:17 | 显示全部楼层
43楼已更新
发表于 2011-6-26 19:25:10 | 显示全部楼层
回复 zhynt 的帖子

呵呵,zhynt真是个有心人,你的程序帮助了不少人啊..我是支持你的

前面的建议只是从我个人理解来提的..别见怪..毕竟个人有个人的用途,出发点不同..
我也感谢正是有Z版,zhynt,还有...挺多热心人..有了你们的帮助我也慢慢学习到不少.
在你们的无私分享的代码中找到适合自己的实用工具..多谢啦
发表于 2011-6-26 19:49:30 | 显示全部楼层
问下,那交叉线画完后怎样把自动那画的矩形删除
发表于 2011-6-26 20:23:42 | 显示全部楼层
本帖最后由 ljpnb 于 2011-6-26 21:37 编辑
yzr2002626 发表于 2011-6-26 19:49
问下,那交叉线画完后怎样把自动那画的矩形删除



  1. ;;矩形框中加辅助“V”形线----by ljpnb
  2. (defun c:test ()
  3.   (setq errtmp *error*)
  4.   (setq *error* err)
  5.   (setq k T)
  6.   (setvar "cmdecho" 0)
  7.   (command "undo" "be")
  8.   (setq os (getvar "osmode"))
  9.   (if (setq pta (getpoint "\n指定矩形的一个角点<回车直接选择矩形>:"))
  10.     (progn
  11.       (if (setq ptb (getcorner pta "\n指定第二角点<回车直接退出>:"))
  12. (progn
  13.    (command "_.rectang" pta ptb)
  14.    (setq ent (entlast))
  15.    (setvar "osmode" 0)
  16.    (if (setq pt (getpoint "\n选定方向<回车直接退出>:"))
  17.      (progn
  18.        (setq obj (vlax-ename->vla-object ent))
  19.        (setq pt (vlax-curve-getclosestpointto obj pt))
  20.      )
  21.      (progn
  22.        (setq k nil)
  23.        (vla-delete (vlax-ename->vla-object ent))
  24.      ;如果保留矩形框,直接删除这一句
  25.      )
  26.    )
  27. )
  28. (setq k nil)
  29.       )
  30.     )
  31.     (progn
  32.       (if (setq en (entsel "\n请选择一矩形<回车直接退出>:"))
  33. (setq ent (car en)
  34.        pt  (osnap (cadr en) "nea")
  35. )
  36. (setq k nil)
  37.       )
  38.     )
  39.   )
  40.   (if k
  41.     (progn
  42.       (setq pt_lst
  43.       (mapcar
  44.         'cdr
  45.         (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget ent))
  46.       )
  47.       )
  48.       (setq obj (vlax-ename->vla-object ent))
  49.       (setq n (fix (vlax-curve-getparamatpoint obj pt)))
  50.       (setq p1 (nth n pt_lst))
  51.       (if (= n 3)
  52. (setq p2 (nth 0 pt_lst))
  53. (setq p2 (nth (1+ n) pt_lst))
  54.       )
  55.       (setq p-mid (mapcar '(lambda (a b) (/ (+ a b) 2)) p1 p2))
  56.       (setq pt_lst1 (vl-remove p1 pt_lst))
  57.       (setq pt_lst1 (vl-remove p2 pt_lst1))
  58.       (setq p3 (car pt_lst1)
  59.      p4 (cadr pt_lst1)
  60.       )
  61.       (command "line" "non" p3 "non" p-mid "non" p4 "")
  62.       (vla-delete obj)   ;如果保留矩形框,直接删除这一句
  63.     )
  64.   )
  65.   (setvar "osmode" OS)
  66.   (command "undo" "e")
  67.   (setvar "cmdecho" 1)
  68.   (setq *error* errtmp)
  69.   (princ)
  70. )
  71. ;;;取消恢复处理
  72. (defun err (msg)
  73.   (setvar "osmode" os)
  74.   (if ent
  75.     (vla-delete (vlax-ename->vla-object ent)))   
  76.   (setq *error* errtmp)   
  77. )


发表于 2011-6-26 20:39:12 | 显示全部楼层
回复 ljpnb 的帖子

不错不错,看了你的程序,比我的简洁多了,受教了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-19 06:47 , Processed in 0.152416 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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