明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4496|回复: 22

请大师做一个这样的程序。

[复制链接]
发表于 2013-1-23 00:15:17 | 显示全部楼层 |阅读模式

框选方框可自动画成下面的效果。每种要能批量选择。价格合试,就定制


该贴已经同步到 tangjunasd58的微博

本帖子中包含更多资源

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

x
发表于 2018-6-21 11:52:36 | 显示全部楼层
哈哈~~楼主用的还是周大师的那套软件哈  他不是已经停止更新好久了么~ 现在系统都win10 他的软件支持不了win10呀   我以前也用过~~后来他不更新  放弃了
发表于 2022-11-8 16:05:25 | 显示全部楼层

忘了在哪里 50元买了这个功能源码   现在应该好多人都有了
发表于 2022-12-2 21:32:37 来自手机 | 显示全部楼层
阳阳阳 发表于 2022-11-30 08:54
这个是好东西哦!哪位大侠提供下吧!

我有  给钱发源码给你
发表于 2013-1-23 00:20:59 | 显示全部楼层
院长有这样的程序,,,你可以问问他,
发表于 2013-1-23 09:07:27 | 显示全部楼层
楼主搞门窗的? 典型的窗型图啊!
 楼主| 发表于 2013-1-23 22:20:05 | 显示全部楼层
我还有一个软件,是收费了的,跟他的有冲突,试用过。
发表于 2013-1-24 08:20:40 | 显示全部楼层
发测试图出来,让大家练练手,不是很复杂
发表于 2013-1-24 09:55:19 | 显示全部楼层
本帖最后由 x_s_s_1 于 2013-1-24 10:00 编辑

组合论坛内代码,出处未标,均搜索自本站,请勿找麻烦,抛砖引玉


  1. ;;;给表根据X Y 给定的表达式进行排序-
  2. ;;;oflist :(0 > <)其中第一元素表示以X(0)优先还是以Y(1)优先
  3. ;;;第二位为X的排序关系第三位为Y的排序关系
  4. ;;;第四位为容差值。
  5. ;;;从上到下从左到右,容差为0
  6. ;;;实例:(NB_px '((6 4)(7 3)(6 2)(7 9)(2 2)(1 6)) (list 0 < <) 0)
  7. ;;;返回:((7 9) (1 6) (6 4) (7 3) (2 2) (6 2))
  8. ;;;从上到下从左到右,容差为1
  9. ;;;实例:(NetBee_px '((6 4)(7 3)(6 2)(7 9)(2 2)(1 6)) (list 1 < >) 1)
  10. ;;;返回:((7 9) (1 6) (6 4) (2 2) (6 2) (7 3))
  11. (defun NB_px
  12.              (xyzlist oflist ddd / e1 e2 one oneof two twoof)
  13.   (setq one (car oflist))
  14.   (if (= one 0)
  15.     ;;若以X优先
  16.     (setq one        car ;_X
  17.           two        CADR ;_Y
  18.           oneof        (cadr oflist) ;_X
  19.           twoof        (caddr oflist) ;_y
  20.     ) ;_ 结束setq
  21.     ;;若以Y优先
  22.     (setq one        cadr ;_Y
  23.           two        CAR ;_X
  24.           oneof        (caddr oflist) ;_Y
  25.           twoof        (cadr oflist) ;_X

  26.     ) ;_ 结束setq
  27.   ) ;_ 结束if
  28.   (vl-sort xyzlist
  29.            (function (lambda (e1 e2)
  30.                        (cond
  31.                          (
  32.                           (> (abs (- (one e1) (one e2)))
  33.                              ddd
  34.                           ) ;_ 结束>
  35.                           (oneof (one e1)
  36.                                  (one e2)
  37.                           ) ;_ 结束oneof
  38.                          )
  39.                          (
  40.                           T
  41.                           (twoof
  42.                             (two e1)
  43.                             (two e2)
  44.                           ) ;_ 结束twoof
  45.                          )
  46.                        ) ;_ 结束cond
  47.                      ) ;_ 结束lambda
  48.            ) ;_ 结束function
  49.   ) ;_ 结束vl-sort
  50. ) ;_ 结束defun
  51. ;;; [功能] 判断 X 是否是图元名
  52. (defun MJ:enP (X)
  53.   (= (type X) 'ENAME)
  54. )
  55. ;;; [功能] 将选择集转换为图元列表
  56. ;;; [参数] SS---选择集
  57. ;;; [返回] 表(图元列表长度 图元列表)
  58. (defun MJ:SS->LIST (SS)
  59.   (vl-remove-if-not
  60.     'MJ:enP
  61.     (mapcar
  62.       'cadr
  63.       (ssnamex SS)
  64.     )
  65.   )
  66. )
  67. (defun x_windows
  68.        (rows colu row1 colu1 pt / pt0 pt1 pt2 pt3 pt4 ww ptt ww)
  69.   (setq pt1 pt)
  70.   (setq ww (/ colu1 colu))                ;数据输入
  71.   (setq pt2 (polar pt1 0 colu1))
  72.   (setq pt3 (polar pt2 (* pi 0.5) row1))
  73.   (setq pt4 (polar pt1 (* pi 0.5) row1))
  74.   (command "line" pt1 pt2 pt3 pt4 "c")        ;外框线
  75.   (setq        ptt pt4
  76.         pt2 pt4
  77.   )
  78.   (repeat (1- rows)
  79.     (setq pt2 (polar pt2 (/ pi -2) row2))
  80.     (setq pt3 (polar pt2 0 colu1))
  81.     (command "line" pt2 pt3 "")                ;横线
  82.   )
  83.   (setq pt2 pt1)
  84.   (if (> colu 1)
  85.     (repeat (1- colu)
  86.       (setq pt2 (polar pt2 0 ww))
  87.       (setq pt3 (polar pt2 (* pi 0.5) row1))
  88.       (command "line" pt2 pt3 "")
  89.     )
  90.   )                                        ;竖线
  91.   (setq pt0 pt)
  92.   (repeat colu
  93.     (setq pt1 (mapcar '+ pt0 '(45 45 0)))
  94.     (setq pt2 (polar pt1 0 (- ww 90)))
  95.     (setq pt3 (polar pt1 (* pi 0.5) (- row1 (* row2 (1- rows)) 90)))
  96.     (setq pt4 (polar pt2 (* pi 0.5) (- row1 (* row2 (1- rows)) 90)))
  97.     (command "line" pt1 pt2 pt4 pt3 "c")
  98.     (setq pt0 (polar pt0 0 ww))                ;下框内框线
  99.   )
  100.   (repeat (1- rows)
  101.     (setq ptt (polar ptt (/ pi -2) row2))
  102.     (setq pt0 ptt)
  103.     (repeat colu
  104.       (setq pt1 (mapcar '+ pt0 '(45 45 0)))
  105.       (setq pt2 (polar pt1 0 (- ww 90)))
  106.       (setq pt3 (polar pt1 (* pi 0.5) (- row2 90)))
  107.       (setq pt4 (polar pt2 (* pi 0.5) (- row2 90)))
  108.       (command "line" pt1 pt2 pt4 pt3 "C")
  109.       (setq pt0 (polar pt0 0 ww))        ;上框内框线
  110.     )
  111.   )
  112. )


  113. (defun C:hcc (/ lay os rows colu row1 row2 colu1 ptlist x y ss)
  114.   (setvar "CMDECHO" 0)
  115.   (setq lay (getvar "clayer"))
  116.   (setq os (getvar "OSMODE"))
  117.   (setvar "OSMODE" 0)
  118.   (command "color" "bylayer")
  119.   (command "layer" "m" "lmw" "c" "146" "lmw" "")
  120.   (setq rows (getint "\n窗a上下分格数(1不分格)/<或2>: ")) ;
  121.   (if (= rows nil)
  122.     (setq rows 2)
  123.   )
  124.   (setq colu (getint "\n窗扇数<3>: "))
  125.   (if (= colu nil)
  126.     (setq colu 3)
  127.   )
  128.   (if (> rows 1)
  129.     (progn
  130.       (setq row2 (getdist "\n窗上格高度<450>: "))
  131.       (if (= row2 nil)
  132.         (setq row2 450)
  133.       )
  134.     )
  135.     (setq row2 1)
  136.   )
  137.   (princ "选择窗外框线,必须PLINE")
  138.   (setq
  139.     ptlist
  140.      (mapcar
  141.        '(lambda        (y)
  142.           (mapcar
  143.             'cdr
  144.             (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget y))
  145.           )
  146.         )
  147.        (MJ:SS->LIST (setq ss (ssget '((0 . "*POLYLINE")))))
  148.      )
  149.   )
  150.   (SETQ
  151.     PTLIST (MAPCAR '(LAMBDA (X) (NB_px X (list 0 < <) 0)) PTLIST)
  152.   )
  153.   (SETQ        PTLIST (MAPCAR '(LAMBDA        (X)
  154.                           (LIST        (CAR X)
  155.                                 (DISTANCE (car x) (cadr x))
  156.                                 (DISTANCE (car x) (caddr x))
  157.                           )
  158.                         )
  159.                        PTLIST
  160.                )
  161.   )
  162.   (mapcar '(lambda (x)
  163.              (x_windows rows colu (cadr x) (caddr x) (car x))
  164.            )
  165.           PTLIST
  166.   )
  167.   (command "ERASE" ss "")
  168.   (setvar "OSMODE" os)
  169.   (command "layer" "s" lay "")
  170.   (redraw)
  171.   (princ)
  172. )

本帖子中包含更多资源

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

x
 楼主| 发表于 2013-1-25 22:30:47 | 显示全部楼层
中间多了一根线。。。。
发表于 2013-4-28 18:01:30 | 显示全部楼层
做模型用的!
 楼主| 发表于 2013-5-5 22:53:14 | 显示全部楼层
是做模型用的。。。
 楼主| 发表于 2013-5-5 22:59:41 | 显示全部楼层
功能如图片

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-20 19:36 , Processed in 0.235945 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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