明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5612|回复: 18

在轴线交点处批量生成柱子

  [复制链接]
发表于 2011-4-7 00:21 | 显示全部楼层 |阅读模式
1明经币
本帖最后由 zsw23 于 2011-4-7 00:23 编辑

如题,最好有输入柱子大小的提示。。

最佳答案

查看完整内容

回复 zsw23 的帖子
发表于 2011-4-7 00:21 | 显示全部楼层
回复 zsw23 的帖子

  1. ;;;计算曲线交点
  2. (defun Curveinters (en1 en2 / pl pts)
  3.   (setq pl  (vlax-invoke (vlax-ename->vla-object en2) 'IntersectWith (vlax-ename->vla-object en1) acExtendNone))
  4.   (while pl
  5.     (setq pts (append pts (list (list (car pl) (cadr pl) (caddr pl))))
  6.    pl (cdr (cdr (cdr pl)))
  7.    )
  8.     )
  9. pts
  10.   )
  11. ;;;曲线选择集交点
  12. (defun ssinters (ss / pts en1 en2)
  13.   (while (> (sslength ss) 1)
  14.     (setq en1 (ssname ss 0))
  15.     (ssdel en1 ss)
  16.     (setq n (sslength ss))
  17.     (repeat n
  18.       (setq en2 (ssname ss (setq n (1- n))))
  19.       (setq pts (append pts (Curveinters en1 en2)))
  20.       )
  21.     )
  22.   pts
  23.   )
  24. ;;;画框
  25. (defun drawbox (pt d / r en ang)
  26.   (setq en (ssget pt '((0 . "*line"))))
  27.   (setq en (ssname en 0))
  28.   (setq ang (angle pt (mapcar '+ pt (vlax-curve-getFirstDeriv en (vlax-curve-getParamAtPoint en (setq pt (vlax-curve-getclosestpointto en pt)))))))

  29.   (setq r (* d (sqrt 2)))
  30.   ;;此处也可改插入框的图块
  31.   (command "rectang" (polar pt (* pi 1.25) r) (polar pt (* pi 0.25) r ) )
  32.   (command "rotate" (entlast) "" pt (/ (* 180 ang) pi))
  33.   )
  34. ;;;使用实例
  35. (defun c:tt(/ p1 p2 d minX minY maxX maxY pt pts p1 p2 ss os cmdecho)
  36.   (setq os (getvar "osmode"))
  37.   (setq cmdecho (getvar "cmdecho"))
  38.   (setvar "osmode" 0)
  39.   (setvar "cmdecho" 0)
  40.   (setq d (getreal "\n插入框大小<1.0>"))
  41.   (if (null d) (setq d 1.))
  42.   (while (and
  43.            (setq p1 (getpoint "\n选择图框左下角:"))
  44.            (setq p2 (GETCORNER p1 "\n选择图框左下角:"))
  45.            )
  46.     (setq minX (apply 'min (mapcar 'car (list p1 p2)))
  47.           minY (apply 'min (mapcar 'cadr (list p1 p2)))
  48.           maxX (apply 'max (mapcar 'car (list p1 p2)))
  49.           maxY (apply 'max (mapcar 'cadr (list p1 p2)))
  50.           )
  51.     (grvecs (list 1 (list minx miny) (list maxx miny)
  52.                   1 (list maxx miny) (list maxx maxy)
  53.                   1 (list maxx maxy) (list minx maxy)
  54.                   1 (list minx maxy) (list minx miny)
  55.                   )
  56.             )
  57.     (setq ss (ssget "c" p1 p2 '((0 . "*line"))))
  58.     (if ss
  59.       (progn
  60.         (setq pts (ssinters ss))
  61.         (if pts
  62.           (foreach pt pts
  63.             (if (and (>= maxX (car pt) minX)
  64.                      (>= maxY (cadr pt) minY)
  65.                      )
  66.               (drawbox pt d)
  67.               )
  68.             )
  69.           )
  70.         )
  71.       )
  72.     (princ "\n ***回车键结束***")
  73.     )
  74. (setvar "osmode" os)
  75.   (setvar "cmdecho" cmdecho)
  76.   (princ)
  77.   )

评分

参与人数 1金钱 +20 收起 理由
zsw23 + 20 满足了~~

查看全部评分

回复

使用道具 举报

发表于 2011-4-7 08:30 | 显示全部楼层
交点与柱子的位置关系为何
可有示例
回复

使用道具 举报

 楼主| 发表于 2011-4-7 08:59 | 显示全部楼层
回复 Andyhon 的帖子

交与柱中心即可,不用很智能。我在意的是批量生成,位置可以手动调整,请高手赐教..
回复

使用道具 举报

发表于 2011-4-7 09:07 | 显示全部楼层
依交点批量生成 ....
那么交点取得的滤取条件是什么
sorry 是外行,全不懂,
或许等同行来回应会好些
回复

使用道具 举报

发表于 2011-4-7 09:38 | 显示全部楼层
了解了解.....
回复

使用道具 举报

发表于 2011-5-3 10:20 | 显示全部楼层
看样子写这程序应该不难,难在不好理解你的意思。最好贴个图上来,把你开始的样子和要的样子贴上来
回复

使用道具 举报

 楼主| 发表于 2011-5-3 11:39 | 显示全部楼层
本帖最后由 zsw23 于 2011-5-3 11:40 编辑

回复 198526 的帖子

http://bbs.mjtd.com/thread-86381-1-1.html
轴线倾斜的话,效果不好
回复

使用道具 举报

发表于 2011-5-3 11:50 | 显示全部楼层
轴线倾斜的话,效果不好?
可有 轴线倾斜 的示例?
您想要达成的正确效果又是如何?
或是耐心等待有专业知识背景的同行来回应?
回复

使用道具 举报

发表于 2011-5-3 12:37 | 显示全部楼层
e派工具箱里面好像有个平面布柱功能    pmbz命令  可以达到你的要求
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 17:46 , Processed in 0.287311 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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