设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

返回列表
楼主: jiaoquangb

[已解决] 哪位大侠可以编写桩位偏差的程序?

[复制链接]

签到天数: 73 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 124个

财富等级: 日进斗金

 楼主| 发表于 2017-12-5 10:19:54 | 显示全部楼层


是随机的
根据设计桩的图和偏差量规范(规定是小于10cm,可以设成在规定的范围内随意调整),生成偏差表,然后再标注在具体桩位上
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复
百度谷歌雅虎搜狗搜搜有道360奇虎

使用道具 举报

签到天数: 972 天

连续签到: 36 天

[LV.10]以坛为家III

已领礼包: 39个

财富等级: 招财进宝

发表于 2017-12-5 10:22:03 | 显示全部楼层

整理下你的意思:

1、每个设计桩总共有东南西北四个方向
2、随机生成两个方向,标注上箭头
3、然后这两个方向标上数字,数字范围在0-10之间随机
4、把标注的数字填到表对应的桩号后面的,对应的方向单元格里面

是这样不?

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

使用道具 举报

签到天数: 73 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 124个

财富等级: 日进斗金

 楼主| 发表于 2017-12-5 10:23:50 | 显示全部楼层

是的,版主就是高人,总结的非常好!
这样的情况可以编写程序吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

签到天数: 972 天

连续签到: 36 天

[LV.10]以坛为家III

已领礼包: 39个

财富等级: 招财进宝

发表于 2017-12-5 12:38:32 | 显示全部楼层

先写下画图的部分,表格有时间抽空再写

加载XDRX API或者在晓东工具箱下运行 tt

搜狗截图20171209123751.png

  1. (defun c:tt ()
  2.   (defun _draw-arrow (e no)
  3.     (setq num (xdrx_math_rand 0 10))
  4.     (setq txt (xdrx_text_make '(0 0 0) (itoa num) 300.0 0.0))
  5.     (cond ((= no 0)
  6.            (setq pt1 (xd::geom:get9pt e 6)
  7.                  pt2 (mapcar '+ pt1 '(700 0 0))
  8.                  pt3 (mapcar '+ pt1 '(850 0 0))
  9.            )
  10.            (XD::Text:AdjustAlignMent txt 2 1)
  11.           )
  12.           ((= no 1)
  13.            (setq pt1 (xd::geom:get9pt e 2)
  14.                  pt2 (mapcar '+ pt1 '(0 -700.0 0))
  15.                  pt3 (mapcar '+ pt1 '(0 -850.0 0))
  16.            )
  17.            (XD::Text:AdjustAlignMent txt 0 1)
  18.           )
  19.           ((= no 2)
  20.            (setq pt1 (xd::geom:get9pt e 4)
  21.                  pt2 (mapcar '+ pt1 '(-700 0 0))
  22.                  pt3 (mapcar '+ pt1 '(-850 0 0))
  23.            )
  24.            (XD::Text:AdjustAlignMent txt 0 1)
  25.           )
  26.           ((= no 3)
  27.            (setq pt1 (xd::geom:get9pt e 8)
  28.                  pt2 (mapcar '+ pt1 '(0 700.0 0))
  29.                  pt3 (mapcar '+ pt1 '(0 850.0 0))
  30.            )
  31.            (XD::Text:AdjustAlignMent txt 0 3)
  32.           )
  33.     )
  34.     (xdrx_setpropertyvalue txt "alignmentpoint" pt2 "color" 1)
  35.     (xdrx_polyline_make pt1 pt2 pt3)
  36.     (xdrx_setpropertyvalue
  37.       (entlast)
  38.       "widthsat"
  39.       '(1 100.0 0.0)
  40.       "color"
  41.       1
  42.     )
  43.   )
  44.   (defun _process (e inx)
  45.     (setq cen (xdrx_getpropertyvalue x "center")
  46.           no1 (xdrx_math_rand 4)
  47.           no2 (1+ no1)
  48.           no2 (if (> no2 3)
  49.                 0
  50.                 no2
  51.               )
  52.     )
  53.     (_draw-arrow e no1)
  54.     (_draw-arrow e no2)
  55.     (setq txt (xdrx_text_make '(0 0 0) (itoa inx) 350.0 0.0))
  56.     (XD::Text:AdjustAlignMent txt 1 2)
  57.     (xdrx_setpropertyvalue
  58.       txt
  59.       "color"
  60.       2
  61.       "alignmentpoint"
  62.       (mapcar '+ (xd::geom:get9pt e 8) '(0 250.0 0.0))
  63.     )
  64.   )
  65.   (if (and (xdrx_initssget "\n选取桩<退出>:")
  66.            (setq ss (xdrx_ssget '((0 . "CIRCLE"))))
  67.       )
  68.     (progn (xdrx_begin)
  69.            (xdrx_document_setprec 450.0 1.0)
  70.            (setq direc '("东" "南" "西" "北"))
  71.            (setq ents (xd::pickset:tablesort ss 0 2 '> '<))
  72.            (setq i 0)
  73.            (mapcar '(lambda (x) (_process x (setq i (1+ i))))
  74.                    (xd::list:flat ents)
  75.            )
  76.            (xdrx_end)
  77.     )
  78.   )
  79.   (princ)
  80. )


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

使用道具 举报

签到天数: 73 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 124个

财富等级: 日进斗金

 楼主| 发表于 2017-12-5 13:31:22 | 显示全部楼层

老师,可以生成偏差表吗?在CAD绘图区域里生成偏差表,或者把偏差表导出到EXCEL表格里都行
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

签到天数: 73 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 124个

财富等级: 日进斗金

 楼主| 发表于 2017-12-5 13:56:02 | 显示全部楼层

老师,你这个程序只支持CAD2010以及以上版本的CAD吗?在CAD2008以及以下版本里,怎么不能使用呢?
下面是在CAD2008里的情况:
QQ图片20171205132505.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

签到天数: 651 天

连续签到: 1 天

[LV.9]以坛为家II

已领礼包: 18个

财富等级: 恭喜发财

发表于 2017-12-5 13:58:06 | 显示全部楼层

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

使用道具 举报

签到天数: 73 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 124个

财富等级: 日进斗金

 楼主| 发表于 2017-12-5 14:35:35 | 显示全部楼层

安装晓东工具箱后,还是出现一样的情况:

QQ图片20171205142228.png


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

使用道具 举报

签到天数: 73 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 124个

财富等级: 日进斗金

 楼主| 发表于 2017-12-5 16:29:42 | 显示全部楼层

老师,您可以编写生成偏差表的程序吗?在CAD绘图区域里生成偏差表,或者把偏差表导出到EXCEL表格里都行,就像动态图里最后的结果
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

签到天数: 972 天

连续签到: 36 天

[LV.10]以坛为家III

已领礼包: 39个

财富等级: 招财进宝

发表于 2017-12-5 16:49:14 | 显示全部楼层

你也不看帖子,上面帖子不是说了,等有空再把表格部分加上。
另外,程序你运行正常了吗,能给你画出箭头线和标注文字了不?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

签到天数: 73 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 124个

财富等级: 日进斗金

 楼主| 发表于 2017-12-5 16:56:06 | 显示全部楼层

非常感谢老师!可以画出偏差图了,就是还缺偏差表。
给您添麻烦了,再次非常感谢!老师,您有时间的时候,再帮忙编写偏差表,拜托!无限地感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

签到天数: 972 天

连续签到: 36 天

[LV.10]以坛为家III

已领礼包: 39个

财富等级: 招财进宝

发表于 2017-12-5 18:13:40 | 显示全部楼层
本帖最后由 newer 于 2017-12-5 18:16 编辑


试试,如果解决问题了,请编辑下主题帖,在标题前面把求助改成 【已解决】

桩偏差表.gif

  1. (defun XD::Table:FenLan (ss nums option gap / h h1 h2 h3 jo lst numRows x)
  2.   (cond
  3.     ((= (type ss) 'PICKSET)
  4.       (setq lst (xdrx_pickset->ents ss))
  5.     )
  6.     ((= (type ss) 'ENAME)
  7.       (setq lst (list ss))
  8.     )
  9.   )
  10.   (mapcar
  11.     '(lambda (x)
  12.        (setq numRows (xdrx_table_numrows x)
  13.              h (xdrx_table_height x)
  14.              h2 (xdrx_table_rowheight x 0)
  15.        )
  16.        (if (= option 3)
  17.          (setq jo (rem (- numRows 2) nums)
  18.                h3 (- h (* 2 h2))
  19.          )
  20.          (setq jo (rem numRows nums)
  21.                h3 h
  22.          )
  23.        )
  24.        (setq h1 (/ h3 nums))
  25.        (if (/= jo 0)
  26.          (setq h1 (+ h1 h2))
  27.        )
  28.        (setq h1 (+ h1 (if (= option 3)
  29.                         (* 2 h2)
  30.                         0.0
  31.                       )
  32.                 )
  33.        )
  34.        (xdrx_setpropertyvalue x "breakoption" option)
  35.        (xdrx_table_setbreakheight x 0 h1)
  36.        (xdrx_table_setbreakspacing x gap)
  37.        (if (= 1 nums)
  38.          (xdrx_setpropertyvalue x "breakoption" 0)
  39.        )
  40.      )
  41.     lst
  42.   )
  43.   t
  44. )
  45. (defun c:XDTB_ZPCTABLE (/ #xd_var_rectang_txtheight box cen e ents i inx len
  46.                           lst no no1 no2 num pt pt1 pt2 pt3 ret ret1 ret2
  47.                           scl ss txt txth x y
  48.                        )
  49.   (defun _draw-arrow (e no)
  50.     (setq num (xdrx_math_rand 0 10))
  51.     (setq txt (xdrx_text_make '(0 0 0) (setq num (itoa num))
  52.                               300.0 0.0
  53.               )
  54.     )
  55.     (cond
  56.       ((= no 0)
  57.         (setq pt1 (xd::geom:get9pt e 6)
  58.               pt2 (mapcar
  59.                     '+
  60.                     pt1
  61.                     '(700 0 0)
  62.                   )
  63.               pt3 (mapcar
  64.                     '+
  65.                     pt1
  66.                     '(850 0 0)
  67.                   )
  68.         )
  69.         (XD::Text:AdjustAlignMent txt 2 1)
  70.         (setq ret (list num "" "" ""))
  71.       )
  72.       ((= no 1)
  73.         (setq pt1 (xd::geom:get9pt e 2)
  74.               pt2 (mapcar
  75.                     '+
  76.                     pt1
  77.                     '(0 -700.0 0)
  78.                   )
  79.               pt3 (mapcar
  80.                     '+
  81.                     pt1
  82.                     '(0 -850.0 0)
  83.                   )
  84.         )
  85.         (XD::Text:AdjustAlignMent txt 0 1)
  86.         (setq ret (list "" "" "" num))
  87.       )
  88.       ((= no 2)
  89.         (setq pt1 (xd::geom:get9pt e 4)
  90.               pt2 (mapcar
  91.                     '+
  92.                     pt1
  93.                     '(-700 0 0)
  94.                   )
  95.               pt3 (mapcar
  96.                     '+
  97.                     pt1
  98.                     '(-850 0 0)
  99.                   )
  100.         )
  101.         (XD::Text:AdjustAlignMent txt 0 1)
  102.         (setq ret (list "" num "" ""))
  103.       )
  104.       ((= no 3)
  105.         (setq pt1 (xd::geom:get9pt e 8)
  106.               pt2 (mapcar
  107.                     '+
  108.                     pt1
  109.                     '(0 700.0 0)
  110.                   )
  111.               pt3 (mapcar
  112.                     '+
  113.                     pt1
  114.                     '(0 850.0 0)
  115.                   )
  116.         )
  117.         (XD::Text:AdjustAlignMent txt 0 3)
  118.         (setq ret (list "" "" num ""))
  119.       )
  120.     )
  121.     (xdrx_setpropertyvalue txt "alignmentpoint" pt2 "color" 1)
  122.     (xdrx_polyline_make pt1 pt2 pt3)
  123.     (xdrx_setpropertyvalue (entlast) "widthsat" '(1 100.0 0.0) "color" 1)
  124.     ret
  125.   )
  126.   (defun _process (e inx)
  127.     (setq cen (xdrx_getpropertyvalue x "center")
  128.           no1 (xdrx_math_rand 4)
  129.           no2 (1+ no1)
  130.           no2 (if (> no2 3)
  131.                 0
  132.                 no2
  133.               )
  134.     )
  135.     (setq ret1 (_draw-arrow e no1))
  136.     (setq ret2 (_draw-arrow e no2))
  137.     (setq txt (xdrx_text_make '(0 0 0) (itoa inx) 350.0 0.0))
  138.     (XD::Text:AdjustAlignMent txt 1 2)
  139.     (xdrx_setpropertyvalue txt "color" 2 "alignmentpoint" (mapcar
  140.                                                             '+
  141.                                                             (xd::geom:get9pt e 8)
  142.                                                             '(0 250.0 0.0)
  143.                                                           )
  144.     )
  145.     (cons (itoa inx) (mapcar
  146.                        '(lambda (x y)
  147.                           (strcat x y)
  148.                         )
  149.                        ret1
  150.                        ret2
  151.                      )
  152.     )
  153.   )
  154.   (if (and
  155.         (xdrx_initssget "\n选取桩<退出>:")
  156.         (setq ss (xdrx_ssget '((0 . "CIRCLE"))))
  157.       )
  158.     (progn
  159.       (xdrx_begin)
  160.       (xdrx_document_setprec 450.0 1.0)
  161.       (xd::text:init 1)
  162.       (setq ents (xd::pickset:tablesort ss 0 2 '> '<))
  163.       (setq i 0)
  164.       (xdrx_statusbar_begin "计算中" (setq len (sslength ss)))
  165.       (setq lst (mapcar
  166.                   '(lambda (x)
  167.                      (xdrx_statusbar_setpos i)
  168.                      (_process x (setq i (1+ i)))
  169.                    )
  170.                   (xd::list:flat ents)
  171.                 )
  172.       )
  173.       (xdrx_statusbar_end)
  174.       (if (and
  175.             (setq #xd_var_rectang_txtheight (getreal "\n表格字高<退出>:"))
  176.             (setq pt (getpoint "\n表格插入点<退出>:"))
  177.           )
  178.         (progn
  179.           (setq lst (cons (list "桩号" "X正" "X负" "Y正" "Y负") lst)
  180.                 lst (cons (list "桩位偏差表" nil nil nil nil) lst)
  181.           )
  182.           (setq scl (* (xd::var:getratio) (XD::Var:GetScaleRatio))
  183.                 txth (* scl #xd_var_rectang_txtheight)
  184.           )
  185.           (XD::Table:MakeFromList lst (trans pt 1 0) txth (/ txth 2.0))
  186.           (xdrx_setpropertyvalue (entlast) "color" 7)
  187.           (setq box (xdrx_entity_box ss))
  188.           (XD::Table:Fenlan (entlast) (fix (/ (xdrx_table_height
  189.                                                                  (entlast)
  190.                                               ) (distance (car box)
  191.                                                           (last box)
  192.                                                 )
  193.                                            )
  194.                                       ) 3 (* 3 txth)
  195.           )
  196.         )
  197.       )
  198.       (xdrx_end)
  199.     )
  200.   )
  201.   (princ)
  202. )



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

使用道具 举报

签到天数: 73 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 124个

财富等级: 日进斗金

 楼主| 发表于 2017-12-5 18:49:50 | 显示全部楼层

老师,您那个动态图里可以生成5列表格,可我测试的只能生成1列表格,从桩1到桩187,是怎么回事呀?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

签到天数: 972 天

连续签到: 36 天

[LV.10]以坛为家III

已领礼包: 39个

财富等级: 招财进宝

发表于 2017-12-5 18:56:06 | 显示全部楼层

你把上面代码都拷贝全了,都加载。包括上面那个 xd::table:fenlan 函数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

签到天数: 73 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 124个

财富等级: 日进斗金

 楼主| 发表于 2017-12-5 19:13:47 | 显示全部楼层

老师,您编写的第一个程序和第二个程序分开,然后都加载,是吗?不是两个代码都拷贝在一个文件里吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

辽公网安备 21040202000005号

GMT+8, 2018-4-22 11:14 , Processed in 0.265771 second(s), 128 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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