明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: cj52000

求框选自动调出图框的程序?

    [复制链接]
发表于 2011-1-25 21:08:56 | 显示全部楼层

本帖子中包含更多资源

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

x
发表于 2011-1-25 22:38:38 | 显示全部楼层
ljttjl 发表于 2011-1-25 21:08

楼上兄弟能否共享啊!
发表于 2011-1-25 23:47:57 | 显示全部楼层
院长的程序怎么用不了???请院长看看
发表于 2011-1-28 18:44:33 | 显示全部楼层
本帖最后由 Gu_xl 于 2011-1-28 18:54 编辑

回复 cj52000 的帖子

  1. ;;;(tk 图块名) 2010.12.14 By Gu_xl
  2. (defun tk(tkname p1 p2 /  pp1 pp2 v h v1 h1 xscale yscale)
  3.   
  4.   (setq pp1 (mapcar '(lambda (x)(apply 'min x))  (apply 'mapcar (cons 'list (list p1 p2))))
  5.         pp2 (mapcar '(lambda (x)(apply 'max x))  (apply 'mapcar (cons 'list (list p1 p2))))
  6.         v (- (cadr pp2) (cadr pp1))
  7.         h (- (car pp2) (car pp1))
  8.         )
  9.   (if (> h v)
  10.       (setq v (/ h (/ 420. 297.)))
  11.       (setq h (/ v  (/ 420. 297.)))
  12.       )
  13.   (command "insert" tkname pp1 1 1 0)
  14.   (setq en (entlast))
  15.   (vla-getboundingbox (vlax-ename->vla-object en) 'p1 'p2)
  16.   (setq pl (mapcar 'vlax-safearray->list (list p1 p2)))
  17.   (setq p1 (vlax-safearray->list p1)
  18.         p2 (vlax-safearray->list p2)
  19.         v1 (- (cadr p2) (cadr p1))
  20.         h1 (- (car p2) (car p1))
  21.         )
  22.   (cond ((and (> h v) (>= h1 v1))
  23.           (setq        xscale (/ h h1)
  24.                 yscale (/ v v1)
  25.                 rot 0
  26.           )
  27.         )
  28.         ((and (> h v) (>= v1 h1))
  29.           (setq        yscale (/ h v1)
  30.                 xscale (/ v h1)
  31.                 rot -90
  32.           )
  33.         )
  34.         ((and (> v h) (>= v1 h1))
  35.           (setq        xscale (/ v v1)
  36.                 yscale (/ h h1)
  37.                 rot 0
  38.           )
  39.         )
  40.         ((and (> v h) (>= h1 v1))
  41.           (setq        yscale (/ v h1)
  42.                 xscale (/ h v1)
  43.                 rot 90
  44.           )
  45.         )
  46.         )
  47.   (entdel en)
  48.   (command "insert" tkname pp1 xscale yscale rot)
  49.   (setq en (entlast))
  50.     (vla-getboundingbox (vlax-ename->vla-object en) 'p1 'p2)
  51.   (setq pl (mapcar 'vlax-safearray->list (list p1 p2)))
  52.   (setq p1 (vlax-safearray->list p1)
  53. p2 (vlax-safearray->list p2)
  54. )
  55.   (command "move" en "" p1 pp1)
  56.   (setq obj (vlax-ename->vla-object en))
  57.   (if (= :vlax-true (vla-get-HasAttributes obj))
  58.     (command "eattedit" en)
  59.     )
  60. (princ)
  61.   )
  62. ;;;测试
  63. (defun c:tk()
  64.   (setq oldcmdecho (getvar "cmdecho"))
  65.   (setq attreq (getvar "attreq"))
  66.   (setvar "cmdecho" 0)
  67.   (setvar "attreq" 0)
  68.   (setq blkname (getstring "\n输入要插入的图框名称:"))
  69.   (while (and (setq p1 (getpoint "\n插入图框角点:"))
  70.               (setq p2 (GETCORNER p1 "图框另一角点")
  71.               )
  72.          )
  73.   (tk blkname p1 p2)
  74.     )
  75.   (setvar "cmdecho" oldcmdecho)
  76.   (setvar "attreq" attreq)
  77.   (princ)
  78.   )
回复 支持 3 反对 0

使用道具 举报

发表于 2011-1-29 10:08:24 | 显示全部楼层
真强!!顶一下!
发表于 2011-2-13 15:18:32 | 显示全部楼层
本帖最后由 461045462 于 2011-2-13 15:21 编辑

上传一个调1:500 地形图廓的正式图框lsp与大家学习,不足之处请指教。
谢谢。

本帖子中包含更多资源

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

x

评分

参与人数 1金钱 +6 收起 理由
fl202 + 6 我很赞同

查看全部评分

发表于 2011-12-10 22:30:28 | 显示全部楼层
谢谢“ljttjl”的分享
发表于 2011-12-12 20:52:04 | 显示全部楼层
学习了,很不错
发表于 2012-2-14 23:38:33 | 显示全部楼层
非常感谢  学习了
发表于 2012-2-17 12:43:29 | 显示全部楼层
G版就是厉害!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 13:47 , Processed in 0.180042 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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