明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: cj52000

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

    [复制链接]
发表于 2010-12-14 12:33:16 | 显示全部楼层
本帖最后由 Gu_xl 于 2010-12-14 12:46 编辑

回复 ljttjl 的帖子

这么简单的程序你也要编译发上来么?
花了几分钟,写了段代码,供大家修改使用


  1. ;;;(tk 图块名) 2010.12.14 By Gu_xl
  2. (defun tk(tkname /  p1 p2 pp1 pp2 v h v1 h1 xscale yscale)
  3.   (setq p1 (getpoint "\n插入图框角点:")
  4.         p2 (GETCORNER p1 "图框另一角点")
  5.         )
  6.   (setq pp1 (mapcar '(lambda (x)(apply 'min x))  (apply 'mapcar (cons 'list (list p1 p2))))
  7.         pp2 (mapcar '(lambda (x)(apply 'max x))  (apply 'mapcar (cons 'list (list p1 p2))))
  8.         v (- (cadr pp2) (cadr pp1))
  9.         h (- (car pp2) (car pp1))
  10.         )
  11.   (command "insert" tkname pp1 1 1 0)
  12.   (setq en (entlast))
  13.   (vla-getboundingbox (vlax-ename->vla-object en) 'p1 'p2)
  14.   (setq pl (mapcar 'vlax-safearray->list (list p1 p2)))
  15.   (setq p1 (vlax-safearray->list p1)
  16.         p2 (vlax-safearray->list p2)
  17.         v1 (- (cadr p2) (cadr p1))
  18.         h1 (- (car p2) (car p1))
  19.         )
  20.   (setq xscale (/ h h1)
  21.         yscale (/ v v1)
  22.         )
  23.   (entdel en)
  24.   (command "insert" tkname pp1 xscale yscale 0)
  25.   (setq en (entlast))
  26.     (vla-getboundingbox (vlax-ename->vla-object en) 'p1 'p2)
  27.   (setq pl (mapcar 'vlax-safearray->list (list p1 p2)))
  28.   (setq p1 (vlax-safearray->list p1)
  29. p2 (vlax-safearray->list p2)
  30. )
  31.   (command "move" en "" p1 pp1)

  32. (princ)
  33.   )
  34. ;;;测试
  35. (defun c:tk()
  36.   (setq oldcmdecho (getvar "cmdecho"))
  37.   (setvar "cmdecho" 0)
  38.   (setq blkname (getstring "\n输入要插入的图框名称:"))
  39.   (tk blkname)
  40.   (setvar "cmdecho" oldcmdecho)
  41.   (princ)
  42.   )

评分

参与人数 1明经币 +1 收起 理由
flytoday + 1 很给力!

查看全部评分

发表于 2010-12-14 21:48:37 | 显示全部楼层
Gu_xl
楼上大哥能不能改一下:1、可以连续插入?2、同时长宽的比例强制是图纸长宽(420/297)的比例?3、是副能实现完毕后自动弹出图框中属性对话框,以便填写:图名、图号、日期等
发表于 2010-12-14 22:08:09 | 显示全部楼层
回复 bai2000 的帖子

要连续插入,加个while循环即可,长宽的比例强制是图纸长宽(420/297)的比例,你可以根据X方向来强制Y方向,也可以根据y方向来强制X方向!至于弄对话框,是很麻烦的,因为图框里的属性不固定,需要动态自动生成对话框!简单起见,你可以在命令行里录入属性,根据我的提示,你自己可以慢慢尝试修改,来达到自己的需求,这样编程水平才会提高,不要总想着别人给你做好完美的代码给你!这里只是技术交流的地方!
回复 支持 1 反对 0

使用道具 举报

发表于 2010-12-16 11:55:48 | 显示全部楼层
cj52000 发表于 2010-12-13 16:42
回复 xiaxiang 的帖子

兄弟,能否分享下你的程序啊!

需要安装,好不容易找到请下载试用

本帖子中包含更多资源

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

x
发表于 2010-12-23 22:05:25 | 显示全部楼层
俺是菜鸟,我的问题哪位能帮帮我改改?
发表于 2010-12-25 02:58:04 | 显示全部楼层
强烈建议插入
发表于 2011-1-6 16:55:57 | 显示全部楼层
看了就顶,谢谢
发表于 2011-1-24 20:49:16 | 显示全部楼层
还没人理我啊
发表于 2011-1-25 12:46:20 | 显示全部楼层

本帖子中包含更多资源

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

x
发表于 2011-1-25 13:04:05 | 显示全部楼层
回复 bai2000 的帖子

插完图框后,紧接着使用如下语句即可弹出属性对话框!
(command "eattedit" (entlast))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 10:48 , Processed in 0.159454 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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