[code="lisp]

(defun c:lea-dyxtt (/ dcl_id Dcl_File k1 lst n show_lst lst1 lst2 lst3 rb1 rb2 tempname dclname filen lea-dyxtt lea-lst2lst)

;函数功能:生成低压系统图

(defun lea-dyxtt (lst flag /  insert lea-Rectange insertionPnt i item minp maxp PLOT_BL PLOT_TR pdx pdy emkText)

(defun insert(insertionPnt  blockname  )

(vl-load-com)

(setq acadDocument (vla-get-activedocument (vlax-get-acad-object)))

(setq whatspace (vla-get-ActiveSpace AcadDocument))

(setq mSpace (vla-get-ModelSpace acadDocument))

(setq pSpace (vla-get-PaperSpace acadDocument))

(setq DwgProps (vla-Get-SummaryInfo acadDocument))

(if (null (findfile blockname)) (progn (alert "文件没有相应出线数量的馈线柜,请添加") (exit)) blockname)

(if (= whatspace 1)

(vla-InsertBlock mSpace insertionPnt blockname 1 1 1 0)

(vla-InsertBlock pSpace insertionPnt blockname 1 1 1 0)

)

)

(defun lea-Rectange (pt1 pt2)

(entmake

(list

'(0 . "LWPOLYLINE")                          ;轻多段线

'(100 . "AcDbEntity")

'(100 . "AcDbPolyline")

'(90 . 4)                                  ;四个顶点

'(70 . 1)                                  ;闭合

(cons 38 (caddr pt1))                          ;高程

(cons 10 (list (car pt1) (cadr pt1)))          ;左下角

(cons 10 (list (car pt2) (cadr pt1)))          ;右下角

(cons 10 (list (car pt2) (cadr pt2)))          ;右上角

(cons 10 (list (car pt1) (cadr pt2)))          ;左上角

(cons 210 '(0 0 1))                          ;法线方向

)

)

)

(setq        insertionPnt(vlax-3d-point(getpoint "\n请输入图框插入位置点: "))

i    0

;lst  '("BYQ-Z.DWG" "GCS-ZJX.DWG" "GCS-7.DWG")

)

(repeat (length lst)

(insert insertionPnt (nth i lst))

(setq item (vlax-ename->vla-object (entlast)))

(vla-getboundingbox

item

'minp

'maxp

)

(setq PLOT_BL (vlax-safearray->list minp)

PLOT_TR (vlax-safearray->list maxp)

)

(setq PDX (ABS (- (caR PLOT_BL) (caR PLOT_TR)))

PDY  (ABS (- (caDR PLOT_BL) (caDR PLOT_TR)))

)

(setq PLOT_BL (list (- (car PLOT_TR) pdx) (- (cadr PLOT_TR) 90) (last PLOT_BL)))

(lea-Rectange PLOT_BL PLOT_TR)

(defun emkText (pt str h)

(entmake (list '(0 . "TEXT") (cons 1 str) (cons 8 "DM_文字表格") (cons 10 pt) (cons 40 h) (cons 11 pt) (cons 72 1) (cons 73 2)))

)

;绘制眉头

(setq p1 (lea-point-pt PLOT_TR '(0 4 0))

p0 (lea-point-pt PLOT_BL '(0 90 0))

)

(lea-Rectange p0 p1)

(if (= flag "抽屉式") (setq flag1 "GCS") (setq flag1 "GGD"))

(if (or (= i 0) (= i (1-(length lst)))) (emkText (lea-point-mid p0 p1) "低压柜型号" 2) (emkText (lea-point-mid p0 p1) flag1 2))

(setq p2 (lea-point-pt p0 '(0 4 0))

p3 (lea-point-pt p1 '(0 4 0))

)

(lea-Rectange p2 p3)

(if (or (= i 0) (= i (1-(length lst)))) (emkText (lea-point-mid p2 p3) "低压柜编号" 2) (emkText (lea-point-mid p2 p3) (strcat "AA" (rtos i 2 0)) 2))

;眉头结束

(setq insertionPnt (vlax-3d-point PLOT_TR)

i  (1+ i)

)

)

)

;删除列表里其中某个位置的元素

(defun lea-lst2lst (n lst / lst1 n1 i)

(setq n1 (length lst)

i 0

lst1 '()

)

(repeat n1

(if (/= i n )(setq lst1 (cons (nth i lst) lst1)) (setq i n))

(setq i (1+ i))

)

(reverse lst1)

)

(vl-load-com)

(lea-start)

(defun show_lst( key lst)

(start_list key)

(mapcar 'add_list lst)

(end_list)

)

(setq dclname

(cond

((setq tempname (vl-filename-mktemp "temp.dcl")

filen (open tempname "w")

)

(foreach stream '(

"RENAME:dialog {"

"    :boxed_column {label = "lea低压系统图" ;"

"                :row {:radio_button { key = "krb1" ; label = "抽屉式" ; width = 20 ; }"

"                                                                             :radio_button { key = "krb2" ; label = "固定式" ;width = 20 ; }}"

"        :row {"

"                 :list_box { key = "klst1" ; label = "插入顺序从下往上" ; width = 20 ; }"

"        :column {"

"                :row {:button { key = "kb1" ; label = "变压器左" ; width = 20 ; }"

"                                                                            :button { key = "kb2" ; label = "变压器右" ; width = 20 ; }}"

"                :row {:button { key = "kb3" ; label = "进线柜左" ; width = 20 ; }"

"                                                                            :button { key = "kb4" ; label = "进线柜右" ; width = 20 ; }}"

"                :row {:button { key = "kb5" ; label = "电容柜" ; width = 20 ; }"

"                                                                            :button { key = "kb6" ; label = "联络柜" ; width = 20 ; }}"

"                :row {:button { key = "kb7" ; label = "馈线柜" ; width = 20 ; }"

"                                                                            :edit_box { key = "k1" ;  width = 20 ; }}"

"                :button { key = "kb8" ; label = "删除" ; width = 20 ; }"

"                }"

"             }"

"             }"

" spacer_1;"

" ok_cancel;"

"             }"

)

(write-line stream filen)

)

(close filen)

tempname

)

)

)

(setq Dcl_Id (load_dialog dclname))

(new_dialog "RENAME" Dcl_Id)

(setq lst '()

lst1 '("GCS变压器左进.DWG" "GCS变压器右进.DWG" "GCS进线柜左进.DWG" "GCS进线柜右进.DWG" "GCS电容柜.DWG" "GCS联络柜.DWG" "GCS出线柜-");GCS柜

lst2 '("GGD变压器左进.DWG" "GGD变压器右进.DWG" "GGD进线柜左进.DWG" "GGD进线柜右进.DWG" "GGD电容柜.DWG" "GGD联络柜.DWG" "GGD出线柜-");GGD柜

)

(set_tile "k1" (setq na1 "1"))

(set_tile "krb1" "1")

(setq k1(get_attr "krb1" "label"));预设起始值

(action_tile "krb1" "(setq k1(get_attr $key "label"))")

(action_tile "krb2" "(setq k1(get_attr $key "label"))")

;(cond

;        ((= k1 "抽屉式") (setq lst3 lst1))

;        ((= k1 "固定式") (setq lst3 lst2))

;)

(action_tile "kb1" "(if (= k1 "抽屉式") (setq lst3 lst1) (setq lst3 lst2))(setq lst (cons (nth 0 lst3) lst))(show_lst "klst1" lst)")

(action_tile "kb2" "(if (= k1 "抽屉式") (setq lst3 lst1) (setq lst3 lst2))(setq lst (cons (nth 1 lst3) lst))(show_lst "klst1" lst)")

(action_tile "kb3" "(if (= k1 "抽屉式") (setq lst3 lst1) (setq lst3 lst2))(setq lst (cons (nth 2 lst3) lst))(show_lst "klst1" lst)")

(action_tile "kb4" "(if (= k1 "抽屉式") (setq lst3 lst1) (setq lst3 lst2))(setq lst (cons (nth 3 lst3) lst))(show_lst "klst1" lst)")

(action_tile "kb5" "(if (= k1 "抽屉式") (setq lst3 lst1) (setq lst3 lst2))(setq lst (cons (nth 4 lst3) lst))(show_lst "klst1" lst)")

(action_tile "kb6" "(if (= k1 "抽屉式") (setq lst3 lst1) (setq lst3 lst2))(setq lst (cons (nth 5 lst3) lst))(show_lst "klst1" lst)")

(action_tile "k1" "(setq na1 $value)")

(action_tile "kb7" "(if (= k1 "抽屉式") (setq lst3 lst1) (setq lst3 lst2))(setq na2 (strcat (nth 6 lst3) na1 ".DWG"))(setq lst (cons na2 lst))(show_lst "klst1" lst)")

(action_tile "klst1" "(setq n (atoi $value) )")

(action_tile "kb8" "(setq lst (lea-lst2lst n lst))(show_lst "klst1" lst)")

(action_tile "accept" "(done_dialog)")

(start_dialog)

(lea-dyxtt (reverse lst) k1)

(unload_dialog Dcl_Id)

(vl-file-delete  tempname)

(lea-end)

)[/code]

天正电气lisp是什么文件_模仿天正电气低压系统图 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...相关推荐

  1. LISP统计圆弧数量_统计圆数量并列表 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - 统计 - Powered by Discuz!...

    想得到的效果: 1 框选图形,能统计所有圆的数量并列表. 2 圆的右下角以字母标记. 相同半径的圆分别以 A1,A2,A3,命名.以此类推. 不同半径的以B1,C1,,,,,表示. 3.要能过滤圆弧, ...

  2. 特别行政区界线lisp_CAD 系统变量参数大全 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    本帖最后由 1291500406 于 2019-1-29 20:52 编辑 CAD 系统变量参数大全 一.数学运算功能函数 1.1(十  数值 数值-)返回:累计实数或整数数值 1.2(一  数值 数 ...

  3. lisp调用qleader端点_常用函数.lsp - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    本帖最后由 自贡黄明儒 于 2013-11-11 12:57 编辑 ;;各位,把你们收藏都拿出秀一秀呀,放在箱底会生霉的 ;;我的收集是在caoyin发布的通用函数基础上扩展的----自贡黄明儒 20 ...

  4. LISP 圆孔标记_原创,圆孔生成镙丝孔 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    本帖最后由 邹锋 于 2013-4-14 04:10 编辑 好久没来,最近闲着无事,练练手,整个LISP ,比较适合做机械朋友使用 由于我们UG转出来的图档里没有标明哪些孔是镙丝孔,哪些是顶针孔,所以 ...

  5. lisp 角平分线_智能中心线 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - 中心线,智能 - Powered by Discuz!...

    本帖最后由 自贡黄明儒 于 2013-11-23 10:59 编辑 感谢大家帮助 ;;编组开始;(command "_.undo" "be") (defun _ ...

  6. lisp批量生成轴线_求批量插入图纸的程序 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    不明白的是这样一个程序和解密有什么关联 归档文件合并.lsp 1.需要doslib函数库支持 2.需要手动建立c:\QGY_temp文件夹 (defun c:insdwgs() (princ &quo ...

  7. lisp文字上标源码_删除重叠文字源码 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - 源码,程序 - Powered by Discuz!...

    [code="lisp] (defun C:DUPREM (/ F1 SLE SA CA TA LA LB ENTA EA TYPA A1 A2 A3 A4 SC LTEST TES ) ( ...

  8. lisp写标高线_属性块形式的标高标注程序! - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    欢迎来拍砖 说明:由于本人经常要用标高做一些计算(尤其是总图),所以个人认为做成属性标高有利于其他程序直接调用数据(比如说计算总图排水坡度坡向等),所以用标高块的形式做标高,喜欢的可以拿去用用.... ...

  9. lisp修改上一个图素_修改图块基点(已解决) - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    ;;;图块基点修改 ,但图块实际位置保持不变 ;;;明经通道 编制 By Gu_xl 2011年7月 (defun c:CBB () (c:BlockBase)) (defun c:BlockBase ...

最新文章

  1. python music21将音符转为mid格式音乐
  2. windows找不到msconfig解决方法
  3. javascript运行时问题
  4. lol人物模型提取(五)
  5. android px pd sp区别,【求助】我用北京索莱宝质粒小量提取试剂盒提的质粒,电泳图...
  6. 最小生成树之prim
  7. bootstrap table 怎么实现前两列固定冻结?
  8. TMS320C55x之C/C++语言程序设计
  9. 百叶窗式的幻灯片切换效果原理
  10. libiconv库裁剪
  11. 移动平均法,滑动平均模型法(Moving average,MA)
  12. H264格式 详细介绍
  13. @JoinColumn 与mappedBy
  14. 【转载】DDR2 DDR3 PCBlayout规则
  15. CSDN-markdown编辑器的使用
  16. 信息科学技术与创新之“知识升华”
  17. python 拼多多抢券_拼多多满减优惠 AC代码 python
  18. 关于电子科技大学内共享单车使用的调查报告
  19. mysql中日期相减_非凡教育教你excel怎么计算两个日期天数差和时间差
  20. 一文让你通俗理解奇异值分解

热门文章

  1. python笔记3:依次输入3个数排序打印(升序)
  2. 使用SVN管理unityproject
  3. 使用Xcode、Android Studio将项目链接到Git
  4. 词形变换和词干提取工具(英文)
  5. Linux学习笔记 -- 定时任务调度/磁盘分区与挂载
  6. html开发列表搜索,前端实例练习 - 可搜索列表
  7. JavaScript第三章forEach循环第四课
  8. mysql可变数据类型_【Python面试】 说说Python可变与不可变数据类型?
  9. vue.js点击按钮导出_怎样安装vuejs devtools助力vuejs高效开发
  10. C#内存共享通讯示例