找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2328|回复: 9

[日积月累]:2006及以上才能用的Lisp动态面积程序

[复制链接]
发表于 2006-9-9 11:13:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
【学习]2006及以上才能用的Lisp动态面积程序

今天,到rkmcswain的网站http://rkmcswain.blogspot.com/上学习了一招,采用field来标注面积。
对于我这个还很喜欢用R14的老顽固来说,时不时还是得学学新东西,不然就太落伍了。
2007确实是个让人很着迷的版本,至少,它那可以象手绘效果一样的3维视觉模式加上中性色的着色模式让人觉得很舒服。动态的UCS

也是一个吸引人的地方。动态图块和域也是04没有的的功能。
今天,看到的这段程序是www.augi.com(一个不错的论坛)的rkmcswain在他的博客上写的。
虽然并不难,却也显示出Lisp也应该随着cad版本的增强与时俱进一下。虽然autodesk已经好久没有给lisp增加新内容了。


  1. (vl-load-com)
  2. ;;get a reference to model space
  3. (setq *model-space*
  4.        (vla-get-ModelSpace
  5.          (vla-get-ActiveDocument (vlax-get-acad-object))
  6.        )
  7. )
  8. ;;pass this function an entity and a point
  9. (defun LinkedArea (ent pt / obj objID ip width str)
  10.   ;;convert the entity to an object
  11.   (setq obj   (vlax-ename->vla-object ent)
  12.         ;;get the object ID
  13.         objID (vla-get-objectid obj)
  14.         ;;convert the point
  15.         ip    (vlax-3D-Point pt)
  16.         ;;set the width for the MTEXT
  17.         width 0.0
  18.         ;;set the string - this creates the field
  19.         str   (strcat
  20.                 "%<\\AcObjProp.16.2 Object(%<\\_ObjId "
  21.                 (rtos objID 2 0)
  22.                 ">%).Area \\f "%lu2%pr2%ps[, Acres]%ct8[2.295684113865932e-005]">%"
  23.               )
  24.   )
  25.    ;;Create the MTEXT entity containing the field.
  26.   (vla-addMText *model-space* ip width str)
  27. )

  28. ;;Then, you can call this function like this:
  29. (defun c:test(/ a b)
  30. ;; Set A = the entity and set B = Point for text
  31. (setq a (car (entsel)) b (getpoint "\n Select Point: "))
  32. ;;Call the function
  33. (linkedarea a b)
  34. )



比如你可以画一个封闭的多义线图形。运行程序,选物体,点点。就会标示出图形的面积了(用英亩作单位的,可以修改)。当然,field的内容非常丰富,你可以改动一下得到更多的东西。
移动多义线的顶点,根据field的说法,它应该会自动更新,但是你可以发现面积并没有变化,不怕,regen一下就会变化了。
觉得field的底色灰蒙蒙的太难看,FIELDDISPLAY改动一下,变成无遮盖。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 23个

财富等级: 恭喜发财

发表于 2006-9-14 09:03:57 | 显示全部楼层
直接在 Text/Arttrib等对象中使用Field 可以完成很多以前只能想象的功能.

个人感觉 Field 的背景的显示还是不要关闭的为好,这样可以直接判断出这是一个 Field 而不与内容的其他部分混淆.实际上这个默认是打印不出来的(也可以改为不透明).

希望 Field/MText的Background 属性还可以强些: 设定透明度,颜色,是否显示外框...
希望 Text 对象能增加 Background 属性,要求同上...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-9-14 13:46:21 | 显示全部楼层
有点象是一个集成的反应器,不过要regen不太爽
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-14 14:57:42 | 显示全部楼层
to e2002
Mtext的颜色倒是可以设置,不过其他确实和field一样都没有选项
Field的灰色底色让人看的不舒服

to刀兄
要regen确实不大象反应器,似乎不大智能。
不过现在看起来确实有些excel的概念了,比如field中的formular。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-9-16 11:15:43 | 显示全部楼层
为什么不能用regen,必须update?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-16 11:20:05 | 显示全部楼层
可能是系统变量fieldeval的问题
fieldeval:Controls how fields are updated.
0
Not updated

1
Updated on open

2
Updated on save

4
Updated on plot

8
Updated on use of ETRANSMIT

16
Updated on regeneration
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-9-21 12:55:37 | 显示全部楼层
请问有办法将两组资料做加减运算吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-25 13:54:22 | 显示全部楼层
2006很膨大,安装运行起来感觉就像是一头大象,慢得很
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-2-14 22:19:54 | 显示全部楼层
对2006 我有同感!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-5-20 17:01:17 | 显示全部楼层
无语
不过毕竟是新的东西
可以见识见识
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 11:33 , Processed in 0.284726 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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