找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 713|回复: 12

[求助] 图块合并

[复制链接]

已领礼包: 6个

财富等级: 恭喜发财

发表于 2016-7-18 17:38:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
将两个不同的块,合并成另外一个新块,合并完成后删除原来两个块,请各位大侠提供一下思路。多谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-7-18 17:51:38 | 显示全部楼层
两种方法
1、建立标记,炸开两个块,获得标记后新生成的所有实体到选择集,然后把这个选集建立一个块。你可以用COMMAND
2、直接点,将两个BLOCK内的实体原位拷贝份,然后把拷贝添加到另外一个新快的内部。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2016-7-18 18:22:33 | 显示全部楼层
只炸开一次,使用 ssget p 即可获取炸开后的所有实体
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2016-7-18 18:49:54 | 显示全部楼层
本帖最后由 Lispboy 于 2016-7-18 19:49 编辑

用下 晓东通用LISP函数库,试下下面代码

  1. (defun c:tt()
  2.    (if (and (setq e1 (car (xdrx_entsel "\n第一个块<退出>:" '((0 . "insert")))))
  3.             (setq e2 (car (xdrx_entsel "\n第二个块<退出>:" '((0 . "insert")))))
  4.        )
  5.      (progn
  6.         (setq pj (xd::geom:get9pt (list e1 e2) 5)   ;;两INSERT包围盒中心点做合并块的插入点
  7.               ss (xdrx_entity_explode (list e1 e2))   ;;炸开获得选集                        
  8.         )
  9.         (xdrx_block_make ss pj t)              ;;合并成无名块
  10.      )
  11.   )
  12.   (princ)
  13. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

发表于 2016-7-18 19:30:51 | 显示全部楼层
command 方法

  1. (defun c:tt (/ e1 e2 ss bn)
  2.   (if (and (setq ss (ssget '((0 . "insert"))))
  3.            (= (sslength ss) 2)
  4.            (setq e1 (ssname ss 0))
  5.            (setq e2 (ssname ss 1))
  6.            (/= (cdr (assoc 2 (entget e1)))
  7.                (cdr (assoc 2 (entget e2)))
  8.            )
  9.            (setq bn (getstring "\nBlock Name: "))
  10.            (not (tblsearch "block" bn))
  11.       )
  12.     (progn
  13.       (setvar "qaflags" 1)
  14.       (vl-cmdf ".explode" ss "")
  15.       (command "-block" bn (getvar "viewctr") (ssget "p") "")
  16.       (command ".-insert" bn (getvar "viewctr") 1.0 1.0 0.0)
  17.     )
  18.   )
  19.   (princ)
  20. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-7-18 23:07:16 来自手机 | 显示全部楼层
为什么要炸开?

点评

不炸开的话怎么处理?求指导。  详情 回复 发表于 2016-7-20 09:23
楼主的意思好像是炸开后合并。  详情 回复 发表于 2016-7-19 00:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2016-7-19 00:24:01 | 显示全部楼层

楼主的意思好像是炸开后合并。

点评

感谢各位老大的指导,主要目的是根据别人写的图框程序,做了些修改,想要的结果是根据老大的思路想最终做成一个带属性的块。目前出来的是几个单独的东西,因此需要修改修改。  详情 回复 发表于 2016-7-20 08:25
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

 楼主| 发表于 2016-7-20 08:25:28 | 显示全部楼层
Lispboy 发表于 2016-7-19 00:24
楼主的意思好像是炸开后合并。

感谢各位老大的指导,主要目的是根据别人写的图框程序,做了些修改,想要的结果是根据老大的思路想最终做成一个带属性的块。目前出来的是几个单独的东西,因此需要修改修改。

title.zip

85.66 KB, 下载次数: 2, 下载积分: D豆 -1 , 活跃度 1

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

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

 楼主| 发表于 2016-7-20 09:23:19 | 显示全部楼层

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

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

发表于 2016-7-20 10:04:49 | 显示全部楼层
适合 等比,旋转为 0 的两个块,其它情况需要再处理

  1. (defun c:tt (/ e1 e2 lst1 ls2 ms blks bn1 bn2 el bn p2 p1 v)
  2.   (if (and (setq e1 (car (entsel "\n选择图块1: ")))
  3.            (= (cdr (assoc 0 (setq lst1 (entget e1)))) "INSERT")
  4.            (setq e2 (car (entsel "\n选择图块1: ")))
  5.            (= (cdr (assoc 0 (setq lst2 (entget e2)))) "INSERT")
  6.       )
  7.     (progn
  8.       (setq ms         (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
  9.             blks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
  10.       )
  11.       (setq bn1        (cdr (assoc 2 lst1))
  12.             bn2        (cdr (assoc 2 lst2))
  13.             p1        (cdr (assoc 10 lst1))
  14.             p2        (cdr (assoc 10 lst2))
  15.             v        (mapcar '- p2 p1)
  16.       )
  17.       (setq bn (vla-add blks (vlax-3d-point '(0 0 0)) "*U"))
  18.       (vlax-for        obj (vla-item blks bn1)
  19.         (setq el (cons obj el))
  20.       )
  21.       (vla-copyobjects
  22.         (vla-get-activedocument (vlax-get-acad-object))
  23.         (vlax-safearray-fill (vlax-make-safearray vlax-vbobject (cons 0 (1- (length el)))) el)
  24.         bn
  25.       )
  26.       (setq el nil)
  27.       (vlax-for        obj (vla-item blks bn2)
  28.         (setq el (cons obj el))
  29.       )
  30.       (foreach obj (safearray-value
  31.                      (variant-value
  32.                        (vla-copyobjects
  33.                          (vla-get-activedocument (vlax-get-acad-object))
  34.                          (vlax-safearray-fill (vlax-make-safearray vlax-vbobject (cons 0 (1- (length el)))) el)
  35.                          bn
  36.                        )
  37.                      )
  38.                    )
  39.         (vla-move obj (vlax-3d-point '(0 0 0)) (vlax-3d-point v))
  40.       )
  41.       (entdel e1)
  42.       (entdel e2)
  43.       (vla-insertblock
  44.         ms
  45.         (vlax-3d-point p1)
  46.         (vla-get-name bn)
  47.         (cdr (assoc 41 lst1))
  48.         (cdr (assoc 42 lst1))
  49.         (cdr (assoc 43 lst1))
  50.         (cdr (assoc 50 lst1))
  51.       )
  52.     )
  53.   )
  54.   (princ)
  55. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-7-20 10:30:34 | 显示全部楼层
iLisp 发表于 2016-7-20 10:04
适合 等比,旋转为 0 的两个块,其它情况需要再处理

要取一个英霸一点的名字呀,比如小张同小英结婚,生了一个儿子,就取名张英龙

点评

(setq bn (vla-add blocks (vlax-3d-point '(0 0 0)) "*U")) => (setq bn (vla-add blocks (vlax-3d-point '(0 0 0)) "张英龙")) Acad 里面 张英龙 不允许重名啊! (tblsearc "block" "张英龙")  详情 回复 发表于 2016-7-20 10:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

发表于 2016-7-20 10:35:05 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2016-7-20 10:30
要取一个英霸一点的名字呀,比如小张同小英结婚,生了一个儿子,就取名张英龙

(setq bn (vla-add blks (vlax-3d-point '(0 0 0)) "*U")) => (setq bn (vla-add blks (vlax-3d-point '(0 0 0)) "张英龙"))

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

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

 楼主| 发表于 2016-7-20 11:10:35 | 显示全部楼层
本帖最后由 bikeboy 于 2016-7-20 15:31 编辑

进行了相应修改,提示参数类型错误,什么情况?dcl文件及图块见楼上
  1. (defun title0 (/ p_a p_c viewcp x1 y1 pc p_a1 pn1 what_next n_list m_list di sal sl a0_list a1_list a2_list a3_list a4_list f0_list f1_list f2_list f3_list sl_list d_list ss_in handle_list sl_sel pop1_in p_list edit_in check_in defaults show_list set_status do_frame)
  2.         (if title_data
  3.         (mapcar 'set '(ver_hor sz lb1 lb2 Long Width sal di sl) title_data)
  4.         (setq ver_hor nil sz 1 lb1 T lb2 T Long 841 Width 594 sal 100 di 0 sl 6)
  5.         ) ;end if
  6. ;(setvar "CMDECHO" 0)
  7.     (setq
  8.         ;lb3       (= 0 (getvar "tilemode"))
  9.         ;标准图幅尺寸
  10.         p_list'((841 1189)(594 841)(420 594)(297 420)(210 297))
  11.         ;加长尺寸列表
  12.         a0_list '(1189 1338 1487 1635 1784 1932 2081 2230 2387)
  13.         a1_list '(841 1051 1261 1472 1682 1892 2102)
  14.         a2_list '(594 743 892 1041 1189 1338 1487 1635 1784 1932 2081)
  15.         a3_list '(420 631 841 1051 1261 1472 1682 1892)
  16.         a4_list '(297 445 594)
  17.         ;加长几分之几
  18.         f0_list '("1/8""1/4""3/8""1/2""5/8""3/4""7/8""1")
  19.         f1_list '("1/4""1/2""3/4""1""5/4""3/2")
  20.         f2_list '("1/4""1/2""3/4""1""5/4""3/2""7/4""2""9/4""9/2")
  21.         f3_list '("1/2""1""3/2""2""5/2""3""7/2")
  22.         f4_list '("1/2""1")
  23.         ;比例列表
  24.         sl_list '(1000 500 300 250 200 150 100 50 30 25 20 10 5)
  25.         )

  26. ;(defun check_in(input format kk /)
  27. ;        (if(and (distof input 2) (>(atof input)0) )
  28. ;        (progn(rs_error)input)
  29. ;        (progn
  30. ;        (set_tile "error" (strcat"无效的"format"输入"))
  31. ;        (mode_tile kk 2)
  32. ;        nil);end progn
  33. ;        );end if
  34. ;);end defun
  35.         
  36. (defun handle_list(/ d0 ln)
  37.         (cond
  38.                 ((= sz 0)(setq ln 8 n_list f0_list m_list a0_list))
  39.                 ((= sz 1)(setq ln 6 n_list f1_list m_list a1_list))
  40.                 ((= sz 2)(setq ln 10 n_list f2_list m_list a2_list))
  41.                 ((= sz 3)(setq ln 7 n_list f3_list m_list a3_list))
  42.                 (T(setq ln 2 n_list f4_list m_list a4_list))
  43.        );end cond
  44.       ln;调用函数赋值。
  45. )

  46. (defun set_status()
  47.         (set_tile "size_sel" (strcat"A"(itoa sz)))        ;1 size_sel标准图幅 itoa 转化字符串
  48.        (set_tile "title"   (if lb1 "1""0"))                ;3 title    会签栏
  49.         (set_tile "inside"   (if lb2 "1""0"))                ;2 inside    图标
  50.         (set_tile "type_sel" (if ver_hor "ver""hor"))        ;4 type_sel格式(立式,横式)
  51.         (set_tile "his"      (if lb3 "1""0"))                ;5 his       图纸空间、模型空间
  52.         (set_tile "l_size"   (itoa Long))                ;6 l_size    图纸长度
  53.         (set_tile "w_size"   (itoa Width))                ;7 w_size    图纸宽度
  54.         (set_tile "dim_list" (itoa di))                        ;8 dim_list加长S
  55.         (set_tile "scal"   (itoa sal))                ;9 scal      比例
  56.         (set_tile "scal_list"(itoa sl))                        ;0 scal_list 比例列表
  57. );end defun

  58. (defun defaults(/ d0 d2 d3 i)
  59.         (set_status)
  60.         (setq
  61.                 d3(handle_list)
  62.                 d0(strcat"A"(itoa sz))
  63.                 d_list(list d0)
  64.                 i 0
  65.                 )               
  66.         (repeat d3
  67.                 (setq
  68.                         d2 (nth i n_list) ;nth 此函数将返回n_list中的第i个元素,第一个元素由零开始的
  69.                         i(1+ i)
  70.                         d_list (if(= i 0) d_list(append d_list(list(strcat d0"+"d2))))
  71.                 );end setq
  72.         );end repeat
  73.         ;d_list = (A1 A1+1/4 A1+1/2 A1+3/4 A1+1 A1+5/4 A1+3/2)
  74.         
  75.         ;(show_list "dim_list" d_list)                ;取消没影响....        
  76.         (set_tile "dim_list" "0")
  77.         (do_frame)
  78. );end defun
  79. (defun show_list(k1 l1)
  80.         (start_list k1)
  81.         (mapcar ' add_list l1)
  82.         (end_list)
  83.         )
  84.         
  85. (defun do_frame()
  86.         (setq         p1 '(0 0)
  87.                 ;p_a 25
  88.                 p_c '(10 5)
  89.                 viewcp (getvar"viewctr");viewctr 存储当前视口中视图的中心点。该值用 UCS 坐标表示。
  90.                 pc (if(< sz 3)(car p_c)(cadr p_c))
  91.                 x1 (*(float Width)sal)
  92.                 y1 (*(float Long)sal)
  93.                 pc (*(float pc)sal)
  94.                 ins_scl sal
  95.                 p_a1 (* 25 sal)
  96.                 ;p_a1 (*(float p_a)sal)
  97.                 )
  98.         ;(setvar"tilemode"(if lb3 0 1));tilemode 将“模型”选项卡或最后一个布局选项卡置为当前。
  99. (if ver_hor
  100.         (progn ;progn--aa
  101.                 (setq p2 (list 0 y1) p3(list x1 y1) p4(list x1 0))
  102.                 (if(/= sz 4)
  103.                         (setq         pn1(list pc pc)
  104.                                 pn2(list(- x1 pc)pc)
  105.                                 pn3(list(- x1 pc)(- y1 p_a1))
  106.                                 pn4(list pc(- y1 p_a1))
  107.                                 )
  108.         
  109.                         (setq         pn1(list p_a1 pc)
  110.                                 pn2(list(- x1 pc)pc)
  111.                                 pn3(list(- x1 pc)(- y1 pc))
  112.                                 pn4(list p_a1(- y1 pc))
  113.                                 )
  114.                 );end if
  115.         );end progn--aa
  116.         (setq         p2(list 0 x1)
  117.                 p3(list y1 x1)
  118.                 p4(list y1 0)
  119.                 pn1(list p_a1 pc)
  120.                 pn2(list(- y1 pc)pc)
  121.                 pn3(list(- y1 pc)(- x1 pc))
  122.                 pn4(list p_a1(- x1 pc))
  123.                 )
  124. );end if
  125.                
  126.         ;(setq plist(list nil p1 p2 p2 p3 p3 p4 p4 p1 pn1 pn2 pn2 pn3 pn3 pn4 pn4 pn1))
  127.         ;(start_image"show_ig")
  128.         ;(fill_image 0 0 winx winy -2)
  129.         ;(foreach sublt(apply 'getpfxl plist)(apply 'vector_image sublt)) ;;getpfxl未定义        
  130.         ;(end_image)
  131. );end defun

  132. (defun ss_in(/ d1 d2 d3 i)
  133.         (setq sz(atoi(substr $value 2 1))
  134.               d0(nth sz p_list)
  135.               Width(car d0)
  136.               Long(cadr d0)
  137.               d_list(list $value)
  138.               i 0
  139.               d3(handle_list)
  140.               )
  141.         (repeat d3
  142.                 (setq         d2(nth i n_list)
  143.                         i(1+ i)
  144.                         d_list (if(= i 0) d_list (append d_list(list(strcat $value"+"d2))))
  145.                 )
  146.         );end repeat
  147. (show_list "dim_list" d_list)
  148. (set_tile "dim_list" "0")
  149. (set_tile "w_size" (itoa Width))
  150. (set_tile "l_size" (itoa Long))
  151. (do_frame)
  152. )

  153. (defun edit_in(n val / ppt k1)
  154.         (cond
  155.                 ((= n 1)(setq ppt"图长"k1"l_size"))
  156.                 ((= n 2)(setq ppt"图宽"k1"w_size"))
  157.                 ((= n 3)(setq ppt"比例"k1"scal"))
  158.         )
  159. (if T;(check_in val ppt k1)
  160.         (cond        ((= n 1)(setq long (atoi val)))
  161.                 ((= n 2)(setq width (atoi val)))
  162.                 ((= n 3)(setq sal (atoi val)))
  163.         )
  164. )
  165. (do_frame)
  166. )

  167. (defun list_in(/ a1)
  168.         (setq di(atoi $value))
  169.         (handle_list)
  170.         (setq Long (nth di m_list))
  171.         (set_tile "l_size" (itoa Long))
  172. (do_frame)
  173. )

  174. (defun sl_sel()
  175.         (setq sl (atoi $value) sal (nth sl sl_list))
  176.         (set_tile "scal" (itoa sal))
  177. (do_frame)
  178. );end defun

  179. (if (and (not til_id)(<(setq til_id(load_dialog "title.dcl"))0))
  180.         (exit)
  181. );end if
  182. (setq what_next 5)
  183. (if(not(new_dialog "title" til_id ))(exit))
  184. (setq winx (dimx_tile"show_ig") winy (dimy_tile"show_ig") )
  185. ;(rdshx winx winy)
  186. (defaults)
  187. (action_tile"size_sel"   "(ss_in)")
  188. (action_tile"title"   "(setq lb1 (= $value "1"))")
  189. (action_tile"inside"   "(setq lb2 (= $value "1"))")
  190. (action_tile"type_sel"   "(setq ver_hor (= $value "ver"))(do_frame)")
  191. (action_tile"his"      "(setq lb3 (= $value "1"))")
  192. (action_tile"l_size"   "(edit_in 1 $value)")
  193. (action_tile"w_size"   "(edit_in 2 $value)")
  194. (action_tile"dim_list"   "(List_in)")
  195. (action_tile"scal"       "(edit_in 3 $value)")
  196. (action_tile"scal_list""(sl_sel)")
  197. (action_tile"help"       "(do_help "ddtitle")")

  198. (setq what_next(start_dialog))
  199.         (if(= what_next 1)
  200.                 (progn
  201.                 (setq title_data(list ver_hor sz lb1 lb2 Long Width sal di sl))
  202.                 ;(command".zoom""C" viewcp (*(cadr p3)1.2))
  203.                 ;(getcd"公共图框")
  204.               (start)
  205.               (GX-030)
  206.                 (command".pline"pn1"w"sal sal pn2 pn3 pn4 "c")
  207.                 (setq ssti(ssadd(entlast)))  
  208.               (GX-031)
  209.                 (command".pline"p1"w"0 0 p2 p3 p4"c")
  210.                 (ssadd(entlast)ssti)
  211.               (end)
  212.                 (setq p1 pn1 p2 pn3 p3(list(* 0.5 sal long)(* 0.5 sal width)))
  213.                 );end progn
  214.          nil
  215.         );end if
  216. )


  217. ;;调用幻灯的共享子程序
  218. ;;;调用方法:(slide "DCL中的KEY值" "wjfhdk(key)")

  219. (defun slide(key sld / x y );调
  220.    (setq x (dimx_tile key))
  221.    (setq y (dimy_tile key))
  222.    (start_image key)
  223.    (fill_image 0 0 x y -2);背景色:1白2A黑3蓝4白5灰6白7红8灰9白10蓝
  224.    (slide_image 0 0 x y sld);图像坐标,通常用幻灯片制作时来调整
  225.    (end_image)
  226. );此为共享子程序


  227. (defun start( )
  228.   (setvar "cmdecho" 0)
  229.   (setq os (getvar "osmode"))
  230.   (setq lay (getvar "clayer"))
  231.   ;(command "undo" "be")
  232.   )

  233.   (defun end( )
  234. (setvar "osmode" os)
  235. (setvar "clayer" lay)
  236. (setvar "cmdecho" 1)
  237. ;(command "undo" "e")
  238. )

  239. ;;;;;;;;;;专门加载  GEN-FRAME02  图层 的共享子程序    调用方法(GX-030)
  240. (defun GX-030 ()
  241. (if (tblsearch "layer" "GEN-FRAME02")
  242. (setvar "clayer" "GEN-FRAME02")
  243. (command "-layer" "m" "GEN-FRAME02" "c" "97" "" "l" "continuous" "" "lw" "0.4" "" "")
  244. )
  245. )


  246. ;;;;;;;;;;专门加载  GEN-FRAME01  图层 的共享子程序    调用方法(GX-031)
  247. (defun GX-031 ()
  248. (if (tblsearch "layer" "GEN-FRAME01")
  249. (setvar "clayer" "GEN-FRAME01")
  250. (command "-layer" "m" "GEN-FRAME01" "c" "96" "" "l" "continuous" "" "lw" "0.09" "" "p" "n" "" "")
  251. )
  252. )



  253. (defun c:title(/ ver_hor Long Width sz lb3 lb1 lb2 ins_scl ssti p1 p2 p3 p4 pn2 pn3 pn4 ss1)
  254.     (if (title0)
  255.         (progn
  256.                         (if lb1
  257.                                 (progn
  258.                                         (command".-insert""_TITLE" pn2 ins_scl ins_scl 0) ;两个ins_scl改为100'
  259.                                                  ;insert块名,插入点,X比例,Y比例,旋转角度
  260.                                                 
  261.                                         ;(setq ssti(ssadd(entlast)ssti))
  262.                                     (setvar "qaflags" 1)
  263.                                     (vl-cmdf ".explode" "L" "")
  264.                                     (setq ssti(ssadd (ssget "P")ssti))
  265.                                );end progn
  266.                        );end if                              
  267.                         (if lb2
  268.                                 (progn
  269.                                         (command".-insert""_INSIDE"
  270.                                         pn3 ;(if(and ver_hor (/= sz 4))pn4 pn3)
  271.                                         ins_scl ins_scl ;两个ins_scl改为100                                       
  272.                                         ;90 ;;0是添加后面的是原来的语句。
  273.                                         0
  274.                                     ;(if(and ver_hor (/= sz 4))0 90);;no defun angtos1;;(angtos1 _pi2)改为90
  275.                                         )
  276.                                         ;;ver_hor 值nil为横式,T是立式
  277.                                         ;(setq ssti(ssadd(entlast)ssti))
  278.                                     
  279.                                     (setvar "qaflags" 1)
  280.                                     (vl-cmdf ".explode" "L" "")
  281.                                     (setq ssti(ssadd (ssget "P")ssti))
  282.                                         );end progn
  283.                         );end if

  284.                         (if lb3
  285.                                 (progn
  286.                                         (command".-insert""_HISTORY"
  287.                                         pn3 ;(if(and ver_hor (/= sz 4))pn4 pn3)
  288.                                         ins_scl ins_scl ;两个ins_scl改为100                                       
  289.                                         ;90 ;;0是添加后面的是原来的语句。
  290.                                         0
  291.                                     ;(if(and ver_hor (/= sz 4))0 90);;no defun angtos1;;(angtos1 _pi2)改为90
  292.                                         )
  293.                                         ;;ver_hor 值nil为横式,T是立式
  294.                                         (setq ssti(ssadd(entlast)ssti))
  295.                                         );end progn
  296.                         );end if
  297.                         (if not (tblsearch "block" sz))
  298.       (command ".-block" sz  p1 ssti "")
  299.       (command ".-insert" sz p1 ins_scl ins_scl 0)  
  300.       (princ"\n请点取插入点: ")
  301.       ;;(line1)
  302.         (setvar"orthomode"0)
  303.        (command ".move" "L" p3)
  304.         ;(command ".move"ssti""p3)
  305.         );end progn
  306.    );end if
  307. (princ)
  308. )
  309. ;end defun

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 00:23 , Processed in 0.577796 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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