找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: grs432

[已解决] 块与块连线程序求助

[复制链接]
 楼主| 发表于 2014-12-1 12:27:40 | 显示全部楼层
st788796 发表于 2014-12-1 11:42
加入控制语句才能使用,还有这几个数据的默认值如何使用?
需使用1130的lisp函数库,词典位于 support  ...

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-12-1 12:41:07 来自手机 | 显示全部楼层
grs432 发表于 2014-12-1 12:12
我似乎看到了麻烦,XDTB_CalCircuit的统计程序是不是也要重写呀!唉!老这样子的让st788796老师给改来改 ...

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-12-1 12:44:54 来自手机 | 显示全部楼层
grs432 发表于 2014-12-1 12:27
测试中,控制的选项是没有写到图层上的。

这个和有必要编号要分开写吗?

点评

哦。。没事的,这个不必写到图层了。这个用的不多的。那控制那个位置打勾是控制写到表格中的吗??  详情 回复 发表于 2014-12-1 13:25
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-12-1 13:25:59 | 显示全部楼层
st788796 发表于 2014-12-1 12:44
这个和有必要编号要分开写吗?

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-12-1 13:47:10 | 显示全部楼层
grs432 发表于 2014-12-1 13:25
哦。。没事的,这个不必写到图层了。这个用的不多的。那控制那个位置打勾是控制写到表格中的吗??

这些得问自己呀!我哪懂这些参数的意义以及你下一步要怎么做!

点评

,st788796老师不好意思呀!我理解错了!那UI为下图中就够用了。编组边上的图层功能为自己指定回路号的图层,图层请设定只显示前缀名为“XXX”的图层,编组的开关目前测试不可用。 [atta  详情 回复 发表于 2014-12-1 15:08
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-12-1 15:08:55 | 显示全部楼层
st788796 发表于 2014-12-1 13:47
这些得问自己呀!我哪懂这些参数的意义以及你下一步要怎么做!

{:soso_e112:}{:soso_e112:},st788796老师不好意思呀!我理解错了!那UI为下图中就够用了。编组边上的图层功能为自己指定回路号的图层,图层请设定只显示前缀名为“XXX”的图层,编组的开关目前测试不可用。
QQ截图20141201145228.png
表格导出的形式如下,总功率是数量和功率的积,备注是单列的一项。
QQ截图20141201145242.png
st788796老师费心了,现在这个工具算是OK了,应该不会再做增加了。
经过这些的论坛上的交流,我觉得沟通表达真的是很重要,我这方面欠缺不少,后期有问题的话,我会尽量用贴合你们的方式表达。





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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-12-1 15:27:42 | 显示全部楼层
grs432 发表于 2014-12-1 15:08
,st788796老师不好意思呀!我理解错了!那UI为下图中就够用了。编组边上的图 ...

你还没有说清楚,连线后写字还需要加入其它的吗?

统计表中的 回路 、编号 和写的字什么关系?前缀就是回路(是不是都是字母没有数字)? 如果前缀(回路)和编号一体了,在导出表格时需要一个规则将其分开?

后面四个参数是必选项吗?

点评

完了,我又误导您了。。 [attachimg]11761[/attachimg] 总功率是数量和功率的积,备注是多加的一列,以后导出表后手动加东西。  详情 回复 发表于 2014-12-1 15:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-12-1 15:35:29 | 显示全部楼层
本帖最后由 grs432 于 2014-12-1 15:36 编辑
st788796 发表于 2014-12-1 15:27
你还没有说清楚,连线后写字还需要加入其它的吗?

统计表中的 回路 、编号 和写的字什么关系?前缀就 ...

完了,我又误导您了。。{:soso_e118:}{:soso_e135:},见谅呀!对应的如下图所示。
QQ截图20141201153250.png
总功率是数量和功率的积,备注是多加的一列,以后导出表后手动加东西。

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-12-1 16:29:15 | 显示全部楼层
grs432 发表于 2014-12-1 15:35
完了,我又误导您了。。,见谅呀!对应的如下图所示。

总功率是数量和功率 ...

试试
  1. (defun c:XDTB_DrawCircuit (/            myerr    _Odcl_AddList     olderr
  2.                            tf            str             num      allpres  maxnums
  3.                            cPrefix  p             pts      p               d
  4.                            pl            pl1             p1              str      tf
  5.                            strl            tf1             tf3      tf2      txt
  6.                            blklst   blk             circuitdict       cpower
  7.                            cposition             ctype    ccontrol lyr
  8.                           )
  9.   (defun myerr (msg)
  10.     (princ "\n*cancel*")
  11.     (setq *error* olderr)
  12.     (if        (dcl_form_isactive huilu_form1)
  13.       (dcl_form_close huilu_form1)
  14.     )
  15.     (xdrx_sysvar_pop)
  16.     (princ)
  17.   )
  18.   (defun _Excel:getFromFile (fn / lst)
  19.     (setq lst (xd::excel:getFromFile (findfile fn) 0)
  20.           lst (mapcar '(lambda (x)
  21.                          (mapcar '(lambda (a)
  22.                                     (cadr a)
  23.                                   )
  24.                                  x
  25.                          )
  26.                        )
  27.                       lst
  28.               )
  29.     )
  30.     (list (mapcar 'car lst)
  31.           (mapcar 'cadr lst)
  32.           (mapcar 'caddr lst)
  33.           (mapcar 'cadddr lst)
  34.     )
  35.   )
  36.   (defun _Odcl_AddList (/)
  37.     (dcl_ComboBox_AddList huilu_Form1_allPre allPres)
  38.     (dcl_combobox_setcursel
  39.       huilu_Form1_allPre
  40.       (vl-position
  41.         (vlax-ldata-get "XD_Circuit_Dict" "cPrefix")
  42.         allPres
  43.       )
  44.     )
  45.   )
  46.   (defun c:huilu_Form1_OnInitialize (/ lst)
  47.     (dcl_combobox_addlist
  48.       huilu_form1_type
  49.       (mapcar 'vl-princ-to-string
  50.               (cdr (assoc "类型" circuitdict))
  51.       )
  52.     )
  53.     (dcl_combobox_setcursel huilu_form1_type 0)
  54.     (dcl_combobox_addlist
  55.       huilu_form1_power
  56.       (mapcar 'vl-princ-to-string
  57.               (cdr (assoc "功率" circuitdict))
  58.       )
  59.     )
  60.     (dcl_combobox_setcursel huilu_form1_power 0)
  61.     (dcl_combobox_addlist
  62.       huilu_form1_position
  63.       (mapcar 'vl-princ-to-string
  64.               (cdr (assoc "位置" circuitdict))
  65.       )
  66.     )
  67.     (dcl_combobox_setcursel huilu_form1_position 0)
  68.     (dcl_combobox_addlist
  69.       huilu_form1_control
  70.       (mapcar 'vl-princ-to-string
  71.               (cdr (assoc "控制" circuitdict))
  72.       )
  73.     )
  74.     (dcl_combobox_setcursel huilu_form1_control 0)
  75.     (apply 'dcl_control_setpos
  76.            (cons huilu_form1 (last (xdrx_document_pixelbox)))
  77.     )
  78.     (_Odcl_AddList)
  79.     (dcl_control_settext
  80.       huilu_form1_numCur
  81.       (itoa (vlax-ldata-get
  82.               "XD_Circuit_Dict"
  83.               (vlax-ldata-get "XD_Circuit_Dict" "cPrefix")
  84.             )
  85.       )
  86.     )
  87.     (dcl_control_settext
  88.       huilu_form1_strPre
  89.       (vlax-ldata-get "XD_Circuit_Dict" "cPrefix")
  90.     )
  91.     (dcl_combobox_setcursel
  92.       huilu_form1_layer
  93.       (vl-position
  94.         (getvar "clayer")
  95.         (mapcar 'car (xd::object:get "layer"))
  96.       )
  97.     )
  98.     (dcl_Control_SetJustification huilu_Form1_height 1)
  99.     (dcl_control_settext huilu_form1_height "2.5")
  100.   )
  101.   (defun c:huilu_Form1_strPre_OnEditChanged (NewValue /)
  102.     (if        (not (member newvalue allPres))
  103.       (progn
  104.         (setq allPres (acad_strlsort (cons newvalue allPres)))
  105.         (vlax-ldata-put "XD_Circuit_Dict" newvalue 1)
  106.         (_Odcl_AddList)
  107.         (dcl_control_settext huilu_form1_numCur "1")
  108.         (vlax-ldata-put "XD_Circuit_Dict" "cPrefix" newvalue)
  109.       )
  110.     )
  111.   )
  112.   (defun c:huilu_Form1_numCur_OnEditChanged (NewValue /)
  113.     (vlax-ldata-put
  114.       "XD_Circuit_Dict"
  115.       (dcl_control_gettext huilu_form1_strPre)
  116.       (atoi newvalue)
  117.     )
  118.   )
  119.   (defun c:huilu_Form1_allPre_OnSelChanged (ItemIndexOrCount Value /)
  120.     (dcl_control_settext huilu_form1_strPre value)
  121.     (dcl_control_settext
  122.       huilu_form1_numCur
  123.       (vlax-ldata-get "XD_Circuit_Dict" value)
  124.     )
  125.     (vlax-ldata-put "XD_Circuit_Dict" "cPrefix" value)
  126.   )
  127.   (setq        strl
  128.          '("YWt6AyFCAAA5JLYRBuKT5TcSYjtq+IEPwsr3zfz9Nya4z3f/np4DX25f/DNeDxISP24/9In7Br0I"
  129.            "HO0+8j78Nni8+/5ybKKevmxaSA8eT2KeuO999AI6/O5lXujmiRT4l9Sp2LnTl/Kl2LmU54DVxNXV"
  130.            "lcORKwsLB6OCuwe6ydJAYjtBeJZFfJ7FYl7pCVbVxnQLVj1JVK4/wQtWP0XULvAwpNU6addkpJXe"
  131.            "6jTLKTUFo4opMNRkQwo4WRMjzzWzDfeb2jSXliyE090hUM/ktJIvWyiuK8biRKRV2eJsNFHdoRBU"
  132.            "2eSwl9hVKq4Ra4zP5HWb9NDYcyUeO+7/hvkR1X+9Zrte4xGD85IGOPoxzCBthOauufvgaYR531ly"
  133.            "w8dtybwQqr3OFQxmM2a8Q8qLHeLICETcYbmXwNLpO+exd+NjT4vhXAEslhHOj6Go9kn1q/wyFmEV"
  134.            "NEvhhII2qM8Y7xuaEcqNQR/DVBzggc/j0Yr5PAFaink8gVuULRpmTo2ifWngQQmEje2oyThE0pMI"
  135.            "R7PK2WL/FQB72UZiX8X/ZMHj5OGjrGQ2Ii3rH2NvBE4vCJopEO0f74H2rnVKDXjSulNLpyujsESl"
  136.            "1iS4EpU2yQvno3ICzr1yPbhHB/MWO+rIQMTff4T1nFCEkEuyC/SxtWmYFciLVdKRzUsppsQgln3I"
  137.            "QLUE4U6hAN9l+8ApFjqyheoYwz/K/RiYad/nB2PZxufHUjvNGhDkhNOLzZfnPZdO8xQUs0oFXdgX"
  138.            "oD7OM41oFeHXLNiYZNIfy60flIMalnCruBqUQm+GzDreAjGawV2KxTzBU8qhbx0k6gFADxFPA69A"
  139.            "IMuLUZyC4e8dlhwPgHvFQFRBd3TMbbZqUNDfjHLib/Ivz7D0PoDADmnBToSq0LUH0NX4qwRQGflW"
  140.            "Kb1SYVgYxXoYO9IBbBDRH8lrWAgZnn0IYE5V/vi7JDAPvdyiMc3JvxeIuGgyx+cjl0rm43365acH"
  141.            "Nt7lg0gfiJxaGKF5rZL9NsGnvXaZYJ9sJlb5Cb3cvDFS1J66nPDwoqCbbnPHcwpSCHVSyFu/HHJY"
  142.            "aIt2z3ZSaKnODL3cjCxxbDBCQAMORx5PdW31aR4cD3K/YVr6JlJs9RUnxx8vm1loOZ66nIvoGbmA"
  143.            "cSaicG31bXbPdlJoqc8MvdykMVLkz77NO63ulc07Ls6GbFho2R8cT38JUmD69ztlPFJ89Tvq62Vo"
  144.            "SwAcL31ZaBEIKMlSeVIsk1Ng+/e7o3bPdlJo+9KiztaLbXXgiewmYkKKg7IMvpx15iaOVXNj9TfG"
  145.            "HU99bXVgwPgmem71IqSnvtSq/zvFjNgY8ox1obvB3NQeE6fQu/klGwgAaQIKD7Pbq+KHZy8QQ4zy"
  146.            "DEtpUfuXnC+kzUi7oLFZ8IE03tRf3iBbK/eCPJ/cRUtp8MZdTXxt58OOf+dqIOtXugX7NdDDunZi"
  147.            "aps1WqhlxK4Tk/yQwM/rctO0BYiuZ5PaBDcLvwQGd96dVQx6uBB5Ch1m2WRRcMQl+o3rgIn090E6"
  148.            "IdsQO/2IX6jXwF+nni1BK1XQ1T/QnMT6AvnG0RruoVJeV2+EWA+DGj++e4Sh2aLfEf53g1YC/sAw"
  149.            "qqlViszhMqhR5D8f1WXqxAW53tJZdgcH776skb6sX5QCNBZnBsTtetwp+zANZs8EspVbvPSUkOIf"
  150.            "G/ZSTzYTAuokQDuF+MiPFuVK+I/ZnhFmKR3JTvJZc52Ujzh1nZSPGfe9BlxaIrBXsO6+iJVZxYsv"
  151.            "jnM9vPRzd4JCnRk2Jvse+vpH5l8/Q0CHZmyqcjd0X59b5l/fdjVlbKRucXeSxikMtPPwO5bDSkRm"
  152.            "2E+89g2QGrO05IWORLPZf9voykSoawADTGOtCHU8nB8HED+6oxerNBWzF92OvxebYrpIf8t5WZgP"
  153.            "Phyk1F7oXOMG/mBdYN1IY3OEkjuEBd+7MZzXID3lui1VaX1G9yl1rZ/r/QXmui1wkUD36cX5HJxe"
  154.            "RJaFMKRYB2vJ+RfDyl6bf99Z318Ka9lGbrRiWf44wrOEQHNS9SehR1JOEo6eThQmnp3SEWrYBVYJ"
  155.            "JzyJFh1juDNdEFgOp7K0p53yLibm9otG9XnYcV9OjwQFfBhpMh7gPnYyHv+nvLR/8ru+8ruB1wpm"
  156.            "PSDOR/5u5QbDQx8NQTISRG8cbSYS0BibvljZLb9M0GCseSicVYdHenXk3sPsET128/r4QYF+HABv"
  157.            "7A=="
  158.           )
  159.   )
  160.   (if (and (not (setq tf (vlax-ldata-list "XD_Circuit_Dict")))
  161.            (progn
  162.              (princ "\n**当前图形未包含初始数据**")
  163.              t
  164.            )
  165.            (setq str (getstring "\n前缀: "))
  166.            (setq num (getint "\n编号: "))
  167.       )
  168.     (progn
  169.       (vlax-ldata-put "XD_Circuit_Dict" str num)
  170.       (vlax-ldata-put "XD_Circuit_Dict" "cPrefix" str)
  171.       (setq tf t)
  172.     )
  173.   )
  174.   (if tf
  175.     (progn
  176.       (setq
  177.         allPres            (acad_strlsort
  178.                       (vl-remove-if
  179.                         '(lambda (x) (= x "cPrefix"))
  180.                         (mapcar 'car (vlax-ldata-list "XD_Circuit_Dict"))
  181.                       )
  182.                     )
  183.         circuitdict (_excel:getfromfile "circuitdict.xls")
  184.       )
  185.       (dcl_project_import strl)
  186.       (dcl_form_show huilu_form1)
  187.       (setq olderr  *error*
  188.             *error* myerr
  189.             tf1            t
  190.       )
  191.       (xdrx_sysvar_push '("osmode" 64))
  192.       (while (and tf1
  193.                   (dcl_form_isactive huilu_form1)
  194.              )
  195.         (setq tf2 t
  196.               pts nil
  197.               pl nil
  198.               blklst nil
  199.         )
  200.         (while
  201.           (and tf2
  202.                (progn
  203.                  (initget 128 "E U")
  204.                  (setq
  205.                    p (if pts
  206.                        (getpoint (car pts) "\r下一点[回退(U)/退出(E)]: ")
  207.                        (getpoint "\r起点[退出(E)]: ")
  208.                      )
  209.                  )
  210.                )
  211.                (dcl_form_isactive huilu_form1)
  212.           )
  213.            (if (listp p)
  214.              (progn
  215.                (setq pts (cons p pts))
  216.                (if (= (length pts) 2)
  217.                  (progn
  218.                    (setq p (getpoint (apply 'xdrx_line_midp pts) "\n弦高: ")
  219.                          d (* 2
  220.                               (xdrx_point_dist2line p (cadr pts) (car pts))
  221.                            )
  222.                    )
  223.                    (setq pl (xdrx_polyline_make (cadr pts) (car pts)))
  224.                    (xdrx_polyline_setbulgeat
  225.                      pl
  226.                      0
  227.                      (/ d (apply 'distance pts))
  228.                    )
  229.                  )
  230.                )
  231.                (if (setq ss (xdrx_pickset_getatpoint
  232.                               (car pts)
  233.                               '((0 . "insert"))
  234.                             )
  235.                    )
  236.                  (setq blklst (mapcar '(lambda (x)
  237.                                          (car (xdrx_getpropertyvalue
  238.                                                 x
  239.                                                 "BlockTableRecord"
  240.                                               )
  241.                                          )
  242.                                        )
  243.                                       (xdrx_pickset->ents ss)
  244.                               )
  245.                  )
  246.                )
  247.                (if (and pl (> (length pts) 2))
  248.                  (progn        (setq n (xdrx_polyline_numverts pl))
  249.                         (xdrx_polyline_setpointat pl (1- n) (car pts))
  250.                         (xdrx_polyline_addvertexat pl (1- n) (cadr pts))
  251.                         (xdrx_polyline_setbulgeat
  252.                           pl
  253.                           (- n 2)
  254.                           (/ d (distance (cadr pts) (caddr pts)))
  255.                         )
  256.                         (xdrx_polyline_setbulgeat
  257.                           pl
  258.                           (1- n)
  259.                           (/ d (distance (car pts) (cadr pts)))
  260.                         )
  261.                  )
  262.                )
  263.                (setq tf3 t)
  264.              )
  265.              (cond
  266.                ((= p "E")
  267.                 (setq tf1 nil
  268.                       tf2 nil
  269.                 )
  270.                )
  271.                ((= p "U")
  272.                 (if pl
  273.                   (progn (xdrx_polyline_removevertexat
  274.                            pl
  275.                            (1- (xdrx_polyline_numverts pl))
  276.                          )
  277.                          (setq pts (cdr pts))
  278.                   )
  279.                 )
  280.                 (setq tf3 nil)
  281.                )
  282.                (t
  283.                 (setq tf2 nil
  284.                       tf3 t
  285.                 )
  286.                )
  287.              )
  288.            )
  289.         )
  290.         (if (and tf1
  291.                  tf3
  292.                  pl
  293.                  (dcl_form_isactive huilu_form1)
  294.                  (if (setq p (getpoint "\n引出点<回车端点>: "))
  295.                    (progn (setq tf nil) p)
  296.                    (setq tf t
  297.                          p  (xdrx_curve_getendpoint pl)
  298.                    )
  299.                  )
  300.                  (setq p1 (getpoint p "\n标注点: "))
  301.                  (dcl_form_isactive huilu_form1)
  302.                  (setq str
  303.                         (strcat        (dcl_control_gettext huilu_form1_strPre)
  304.                                 (dcl_control_gettext huilu_form1_numCur)
  305.                         )
  306.                  )
  307.             )
  308.           (progn
  309.             (setq ctype            (nth (dcl_combobox_getcursel huilu_form1_type)
  310.                                  (cdr (assoc "类型" circuitdict))
  311.                             )
  312.                   cposition (nth
  313.                               (dcl_combobox_getcursel huilu_form1_position)
  314.                               (cdr (assoc "位置" circuitdict))
  315.                             )
  316.                   cpower    (nth (dcl_combobox_getcursel huilu_form1_power)
  317.                                  (cdr (assoc "功率" circuitdict))
  318.                             )
  319.                   ccontrol  (nth (dcl_combobox_getcursel huilu_form1_control)
  320.                                  (cdr (assoc "控制" circuitdict))
  321.                             )
  322.             )
  323.             (setq txt (xdrx_text_make
  324.                         p1
  325.                         (strcase str)
  326.                         (distof (dcl_control_gettext huilu_form1_height))
  327.                         0.0
  328.                       )
  329.                   pl1 (xdrx_polyline_make p p1)
  330.             )
  331.             (vlax-ldata-put txt "Type" ctype)
  332.             (vlax-ldata-put txt "Power" cpower)
  333.             (vlax-ldata-put txt "Control" ccontrol)
  334.             (vlax-ldata-put txt "Position" cposition)
  335.             (if
  336.               (/= (setq
  337.                     lyr        (nth (dcl_combobox_getcursel huilu_form1_layer)
  338.                              (dcl_control_getlist huilu_form1_layer)
  339.                         )
  340.                   )
  341.                   (getvar "clayer")
  342.               )
  343.                (xdrx_entity_setlayer txt lyr)
  344.             )

  345.             (xdrx_polyline_setbulgeat pl1 0 0.5)
  346.             (if        (and blklst (apply '= blklst))
  347.               (xdrx_xdata_setbyproperty
  348.                 txt
  349.                 "XDCircuit"
  350.                 "String"
  351.                 (car blklst)
  352.               )
  353.               (if (setq
  354.                     blk
  355.                      (car (xdrx_entsel
  356.                             "\n拾取图块或文字: "
  357.                             '((0 . "insert,*text"))
  358.                           )
  359.                      )
  360.                   )
  361.                 (xdrx_xdata_setbyproperty
  362.                   txt
  363.                   "XDCircuit"
  364.                   "String"
  365.                   (if (= (xdrx_getpropertyvalue blk "IsA")
  366.                          "AcDbBlockReference"
  367.                       )
  368.                     (car (xdrx_getpropertyvalue blk "BlockTableRecord"))
  369.                     (xdrx_getpropertyvalue blk "textString")
  370.                   )
  371.                 )
  372.               )
  373.             )
  374.             (if        (= (dcl_control_getvalue huilu_form1_group) 1)
  375.               (xdrx_group_make "*" pl txt pl1)
  376.             )
  377.             (vlax-ldata-put
  378.               txt
  379.               "Circuit"
  380.               (xdrx_getpropertyvalue pl "Handle")
  381.             )
  382.             (vlax-ldata-put
  383.               "XD_Circuit_Dict"
  384.               (dcl_control_gettext huilu_form1_strPre)
  385.               (1+ (atoi (dcl_control_gettext huilu_form1_numCur)))
  386.             )
  387.             (dcl_control_settext
  388.               huilu_form1_numCur
  389.               (itoa (vlax-ldata-get
  390.                       "xd_circuit_dict"
  391.                       (dcl_control_gettext huilu_form1_strPre)
  392.                     )
  393.               )
  394.             )
  395.           )
  396.         )
  397.       )
  398.       (dcl_form_close huilu_form1)
  399.       (xdrx_sysvar_pop)
  400.       (setq *error* olderr)
  401.     )
  402.   )
  403.   (princ)
  404. )

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-12-1 16:31:23 | 显示全部楼层
相应的统计程序,写出的 xls 在 dwg 同目录下相同文件名

acad 中的 table 会少一行,这个可能需要在修改 xd::table:make 函数

  1. (defun c:XDTB_CalCircuit (/ ss nl)
  2.   (if (setq ss (ssget '((0 . "text") (-3 ("XDCircuit")))))
  3.     (progn
  4.       (setq
  5.         nl (mapcar
  6.              '(lambda (x / pl)
  7.                 (if (setq pl (handent (vlax-ldata-get x "Circuit")))
  8.                   (list        (xdrx_getpropertyvalue x "textstring")
  9.                         (vlax-ldata-get x "Power")
  10.                         (xdrx_xdata_get x "XDCircuit")
  11.                         (vlax-ldata-get x "Type")
  12.                         (vlax-ldata-get x "Power")
  13.                         (itoa (xdrx_getpropertyvalue pl "numVerts"))
  14.                         (* (vlax-ldata-get x "Power")
  15.                            (xdrx_getpropertyvalue pl "numVerts")
  16.                         )
  17.                         (vlax-ldata-get x "Position")
  18.                         " "
  19.                   )
  20.                 )
  21.               )
  22.              (xdrx_pickset->ents ss)
  23.            )
  24.         nl (cons '("回路" "控制" "编号"        "类型" "功率" "数量" "总功率"
  25.                    "位置" "备注")
  26.                  (vl-sort nl '(lambda (x1 x2) (< (car x1) (car x2))))
  27.            )
  28.       )
  29.       (if (setq p (getpoint "\n插入点<回车显示>: "))
  30.         (xd::table:make nl p 8. 3.)
  31.         (foreach x nl
  32.           (princ "\n")
  33.           (princ x)
  34.         )
  35.       )
  36.       (xd::excel:createToFile
  37.         (strcat        (getvar "dwgprefix")
  38.                 (vl-filename-base (getvar "dwgname"))
  39.                 ".xls"
  40.         )
  41.         nl
  42.       ) ;_写出 excel 文件
  43.       ;|
  44.       (xdrx_system_shellexecute
  45.         (strcat        (getvar "dwgprefix")
  46.                 (vl-filename-base (getvar "dwgname"))
  47.                 ".xls"
  48.         )
  49.       )|;
  50.     )
  51.   )
  52.   (princ)
  53. )

点评

现在是统计工具输不出EXCEL,我下载的是最新的库,之前加载自定义函数库时是可以导出EXCEL的。 另外,插入到CAD的表,可以将表的的文字高度和回路号的高度设置一致吗?现在看插入CAD表中的太小。 [attachimg]11766  详情 回复 发表于 2014-12-1 17:37
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-12-1 17:29:05 | 显示全部楼层

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-12-1 17:33:32 | 显示全部楼层
grs432 发表于 2014-12-1 17:29
画线工具测试完美呀!!太完美了。

旧图处理还需要增加,将这个对话框加入

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

使用道具 举报

 楼主| 发表于 2014-12-1 17:37:14 | 显示全部楼层
st788796 发表于 2014-12-1 16:31
相应的统计程序,写出的 xls 在 dwg 同目录下相同文件名

acad 中的 table 会少一行,这个可能需要在修改 ...

现在是统计工具输不出EXCEL,我下载的是最新的库,之前加载自定义函数库时是可以导出EXCEL的。
另外,插入到CAD的表,可以将表的的文字高度和回路号的高度设置一致吗?现在看插入CAD表中的太小。
444.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-12-2 08:39:25 | 显示全部楼层
grs432 发表于 2014-12-1 17:37
现在是统计工具输不出EXCEL,我下载的是最新的库,之前加载自定义函数库时是可以导出EXCEL的。
另外,插 ...


  1. (if (setq p (getpoint "\n插入点<回车显示>: "))
  2.         (xd::table:make nl p 8. 3.)
  3.         (foreach x nl
  4.           (princ "\n")
  5.           (princ x)
  6.         )
  7.       )

改成
  1. (setq height (xdrx_getpropertyvalue (ssname ss 0) "height"))
  2. (if (setq p (getpoint "\n插入点<回车显示>: "))
  3.         (xd::table:make nl p (* 3 height) height)
  4.         (foreach x nl
  5.           (princ "\n")
  6.           (princ x)
  7.         )
  8.       )

表格即可放大,另外 表格少一行一列问题在和 xd 沟通,是 API 问题

xls 文件写出了,程序中注释掉了外部打开语句,你可以到 dwg 文件夹目录下查看

点评

早上我刚测试了导出EXCEL的那个,没有见CAD图纸下有表格生成,我还把原来注释的那段给恢复了,还是没有导出的动作,是函数问题还是我的问题。其实我现在想验证一下,因为第一次程序在没有加载其它参数的时候,我用11  详情 回复 发表于 2014-12-2 10:08
另外,询问一下ST老师,在CAD中的编号从1~10这样的序号排列和01~10的排列有区别吗?我在使用好多前缀后缀编号的CADlisp工具时,都没有01~10排列的。 但是在EXCEL表中是识别01~10这样的排列升序和降序的,所以发现程  详情 回复 发表于 2014-12-2 09:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-12-2 09:46:26 | 显示全部楼层

另外,询问一下ST老师,在CAD中的编号从1~10这样的序号排列和01~10的排列有区别吗?我在使用好多前缀后缀编号的CADlisp工具时,都没有01~10排列的。
但是在EXCEL表中是识别01~10这样的排列升序和降序的,所以发现程序序号排序有问题。。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 16:34 , Processed in 0.733082 second(s), 64 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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