明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3211|回复: 8

[几何图案系列] 动态3DMESH及一些3DMESH图形(心型、星型、莫比乌斯环、海螺等)

  [复制链接]
发表于 2012-5-3 19:39 | 显示全部楼层 |阅读模式
[飞马系列] 动态3DMESH及一些3DMESH图形(心型、星型、莫比乌斯环、海螺等)
qjchen
首先说明一下,这些内容用MATLAB,MATHEMATICA之类均很简单地实现,此处仅探讨AutoCAD 3DMESH的一些内容
一直以来,对数学图形总是比较着迷的
在早期学习lambda的时候,曾经去过这个网站
http://autolisp.mapcar.net/lambda.html
学到了lambda的有趣的用法和初窥3dmesh
后来,学grread的时候,写过如下的一段代码,用于动态形成波浪式的3dmesh,不过不少代码是来自他人的



  1. ;;;by David Bethel : [url=http://www.cadtutor.biz/forum/showthread.php?t=5457]http://www.cadtutor.biz/forum/showthread.php?t=5457[/url]
  2. (defun draw_mesh (vlist mmesh nmesh mflg nflg / cflg)
  3. (and (= (type vlist) 'LIST)
  4.      (= (type nmesh) 'INT)
  5.      (= (type mmesh) 'INT)
  6.      (< nmesh 256)
  7.      (< mmesh 256)
  8.      (> nmesh 2)
  9.      (> mmesh 2)
  10.      (cond ((and nflg mflg) (setq cflg 49))
  11.            (nflg            (setq cflg 48))
  12.            (mflg            (setq cflg 17))
  13.            (t               (setq cflg 16)))
  14.       
  15.            
  16.      (entmake (list (cons 0 "POLYLINE")(cons 66 1)
  17.                     (cons 6 "BYLAYER")
  18.                     (cons 10 (list 0 0 0))
  19.                     (cons 70 cflg)
  20.                     (cons 71 mmesh)(cons 72 nmesh)
  21.                     (cons 39 0)))
  22.                     
  23.      (foreach v vlist
  24.              (entmake (list (cons 0 "VERTEX")
  25.                             (cons 6 "BYLAYER")
  26.                             (cons 10 v)
  27.                             (cons 70 64))))
  28.      (entmake (list (cons 0 "SEQEND")))
  29.      
  30.      
  31.      
  32.      ))
  33. ;;; by Qjchen
  34. ;;;; from [url=http://autolisp.mapcar.net/lambda.html]http://autolisp.mapcar.net/lambda.html[/url]
  35. (defun genlist(expr steps xpi ypi scale / plist tlist xn yn zn)
  36.   (setq plist nil)
  37.   (setq xn 0.0 yn 0.0)
  38.   (repeat(* xpi steps)
  39.     (setq tlist nil)
  40.     (setq yn 0.0)
  41.     (repeat(* ypi steps)
  42.       (setq zn(* scale ((eval expr) xn yn)))
  43.       
  44.       (setq tlist(append tlist(list (list xn yn zn))))
  45.       (setq yn(+ yn(/ pi steps)))
  46.     )
  47.     (setq plist(append plist tlist))
  48.     (setq xn(+ xn(/ pi steps)))
  49.   )
  50.   plist
  51. )

  52. ;;;the following is by [url=mailto:qjchen@gmail.com]qjchen@gmail.com[/url]
  53. (defun c:test ( / ent1 gr height scale temp)
  54.   (setq temp (getvar "cmdecho"))
  55.   (setvar "cmdecho" 0)
  56.   (command "._-view" "_top")
  57.   (command "._-view" "_swiso")
  58.   (command "zoom" "w" "-10,-10" "15,15")
  59.   (setq height (getvar "viewsize"))
  60.   (while (= (car (setq gr (grread nil 5 0))) 5)
  61.     (if (setq ent1 (entlast))(entdel ent1))
  62.     (setq scale (* (/ (- (cadr (cadr gr)) 10) height) 5))
  63.     (draw_mesh (genlist '(lambda (x y /) (* (cos x) (cos y))) 10 3 3 scale) 30 30 nil nil )
  64.   )
  65.   (setvar "cmdecho" temp)
  66.   (princ)
  67. )


近日,买了一本 王文栋(中国美院建筑专业研究生)写的《rhinos参数建模》的书,觉得大开眼界
不过书中的均是基于Rhino的Nurbs曲面
于是萌发出用3dmesh绘制这些漂亮图形的念头,于是花了几个小时撰写这个自娱自乐的代码
这次的代码是在Lee Mac的ActiveX思路上新写的,比Entmake要简单许多
http://www.theswamp.org/index.php?topic=33766.0
后来又在 (http://k3dsurf.sourceforge.net/ ) 下载了k3dsurf 这个开源软件,里面有更多有趣的曲面
采用了里面的一些图形定义
(注:图中的12个图形,部分经过缩放来保证各图形大小比较一致,部分经过旋转,渲染也是后期用CAD做的,非程序内置)
不过acad高版本是有nurbs的,不知道有没有哪位研究过如何用.Net或者Lisp来生成NURBS的




本帖子中包含更多资源

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

x

点评

E文不行的人伤不起啊! 推荐的外文网站,看着头疼。还是母语亲切。另:楼主是论坛特例(编程只为乐趣)  发表于 2012-5-3 20:43

评分

参与人数 3明经币 +5 金钱 +50 收起 理由
yoyoho + 1 + 50 精彩
yjr111 + 1 好漂亮!
Gu_xl + 3 很给力!

查看全部评分

"觉得好,就打赏"
    共1人打赏
发表于 2012-5-3 20:17 | 显示全部楼层
qjchen   大师果然强大
发表于 2012-5-3 20:18 | 显示全部楼层
晕! 玩的太大了!  这什么啊! 汗~~~~~~~~~~
发表于 2012-5-3 21:19 | 显示全部楼层
谢谢qjchen 分享,LISP的乐趣总是不经意间的发现。

点评

乐趣是发现了。工作也耽误了。几年没来。偶然来了下,结果又忍不住研究了一个月(好多图都没画呢555)。  发表于 2012-5-3 22:13
发表于 2012-5-3 22:51 | 显示全部楼层
不懂,学习一下
发表于 2012-5-3 22:55 来自手机 | 显示全部楼层
创意总在闪电中发生
发表于 2012-10-31 08:45 | 显示全部楼层
感谢qjchen 分享程序!
发表于 2012-11-2 14:43 | 显示全部楼层
很好、很强大,只能观仰了
发表于 2014-8-28 11:50 | 显示全部楼层
很好很强大的东西,谢谢分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 06:02 , Processed in 0.806114 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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