找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 947|回复: 5

[求助]:xyp斑竹帮忙改一下

[复制链接]
发表于 2005-9-3 18:01:07 | 显示全部楼层 |阅读模式

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

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

×
下面是你的画窗程序
帮忙改一下
1、在命令行增加一个提示:输入距离或<居中>
2、把1:1出图比例去掉
另能把源码发给我吗
我的邮箱aaa@east-zj.com
谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-9-3 21:55:01 | 显示全部楼层
发表一些你写的程序源码吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-4 09:54:33 | 显示全部楼层
  1. [FONT=courier new](load "xyp_lib")
  2. ;|加载通用函数(可在签名栏直接下载)
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  5. 1.在acad.lsp中增加(load"xyp_lib")
  6. 2.在每个程序内增加(load"xyp_lib")
  7. 3.在command下,输入(load"xyp_lib")
  8. 4.在菜单.mnl中增加(load"xyp_lib")
  9. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR]
  11. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  12. [url]http://www.mjtd.com/bbs/dispbbs.asp?boardID=3&ID=37554&page=1[/url]|;

  13. ;;;等分插窗
  14. (defun c:dfcc ()
  15.   (cmdla0)
  16.   (setvar "osmode" 0)
  17.   (if (= NO3 nil)
  18.     (setq NO3 1500)
  19.   )
  20.   (if (= tx1 nil)
  21.     (setq tx1 "1")
  22.   )
  23.   (setq        TX1        (UKWORD 1 "1 2" "\n插窗方式 : 1-居中/2-输入距离" TX1)
  24.         NO3        (ureal 7 "" "\n窗宽" NO3)
  25.         ent1        (usel1 0 "LINE" "墙线(LINE)")
  26.         e1        (car ent1)
  27.         startpt        (cdr (assoc 10 (entget e1)))
  28.         endpt        (cdr (assoc 11 (entget e1)))
  29.         a1        (angle startpt endpt)
  30.         p1        (_midp startpt endpt)
  31.         et1a        (cdr (assoc 0 (entget e1)))
  32.   )
  33.   (cond        ((= tx1 "2")
  34.          (setq leng (UDIST 1 "" "\n距一侧的距离" leng startpt)
  35.                p1   (polar startpt a1 (+ leng (/ no3 2)))
  36.          )
  37.         )
  38.         (t (princ))
  39.   )
  40.   (setq        lyrnm (cdr (assoc 8 (entget e1)))
  41.         temp1 (osnap p1 "mid")
  42.         atemp (angle (osnap p1 "end") temp1)
  43.         temp1 (polar p1 atemp 8)
  44.   )
  45.   (setvar "aperture" 50)
  46.   (entdel e1)
  47.   (setq temp2 (osnap temp1 "near"))
  48.   (entdel e1)
  49.   (setvar "aperture" 4)
  50.   (setq        up   (/ pi 2)
  51.         dn   (* pi 1.5)
  52.         p1   (polar p1 a1 (* (/ NO3 2) -1.0))
  53.         a2   (angle temp1 temp2)
  54.         p2   (polar p1 a1 NO3)
  55.         p3   (polar p1 a2 (distance temp1 temp2))
  56.         p4   (polar p2 a2 (distance temp1 temp2))
  57.         inpt (_MIDP p1 p4)
  58.   )
  59.   (command "layer" "M" lyrnm "")
  60.   (command "break" e1 p1 p2)
  61.   (command "break" p3 "f" p3 p4)
  62.   (command "line" p2 p4 "")
  63.   (command "line" p1 p3 "")
  64.   (Mkla "窗" 4)
  65.   (command "insert"
  66.            "c1$"
  67.            inpt
  68.            NO3
  69.            (distance p1 p3)
  70.            (* (/ a1 pi) 180)
  71.   )
  72.   (cmdla1)
  73. )
  74. (pxyp "DFCC  (等分插窗)")[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-21 09:27:09 | 显示全部楼层
再次麻烦你改一下
在选择墙线后,增加一个选择基点

选择插入方式[居中(1)/输入距离(2)]<1>:2
输入窗的宽度<1500.00>:
选择墙线 :
指定第一点
输入距离:



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

使用道具 举报

发表于 2005-9-22 13:05:48 | 显示全部楼层
  1. [FONT=courier new];;;等分插窗
  2. (defun c:dfcc ()
  3.   (cmdla0)
  4.   (setvar "osmode" 0)
  5.   (if (= NO3 nil)
  6.     (setq NO3 1500)
  7.   )
  8.   (if (= tx1 nil)
  9.     (setq tx1 "1")
  10.   )
  11.   (setq        TX1        (UKWORD 1 "1 2" "\n插窗方式 : 1-居中/2-输入距离" TX1)
  12.         NO3        (ureal 7 "" "\n窗宽" NO3)
  13.         ent1        (usel1 0 "LINE" "墙线(LINE)")
  14.         e1        (car ent1)
  15.         startpt        (cdr (assoc 10 (entget e1)))
  16.         endpt        (cdr (assoc 11 (entget e1)))
  17.         a1        (angle startpt endpt)
  18.         p1        (_midp startpt endpt)
  19.         et1a        (cdr (assoc 0 (entget e1)))
  20.   )
  21.   (cond        ((= tx1 "2")
  22.          (setq pt0  (getpoint "\n起点 : ")
  23.                leng (UDIST 1 "" "\n距一侧的距离" leng pt0)
  24.                p1   (polar pt0 a1 (+ leng (/ no3 2)))
  25.          )
  26.         )
  27.         (t (princ))
  28.   )
  29.   (setq        lyrnm (cdr (assoc 8 (entget e1)))
  30.         temp1 (osnap p1 "mid")
  31.         atemp (angle (osnap p1 "end") temp1)
  32.         temp1 (polar p1 atemp 8)
  33.   )
  34.   (setvar "aperture" 50)
  35.   (entdel e1)
  36.   (setq temp2 (osnap temp1 "near"))
  37.   (entdel e1)
  38.   (setvar "aperture" 4)
  39.   (setq        up   (/ pi 2)
  40.         dn   (* pi 1.5)
  41.         p1   (polar p1 a1 (* (/ NO3 2) -1.0))
  42.         a2   (angle temp1 temp2)
  43.         p2   (polar p1 a1 NO3)
  44.         p3   (polar p1 a2 (distance temp1 temp2))
  45.         p4   (polar p2 a2 (distance temp1 temp2))
  46.         inpt (_MIDP p1 p4)
  47.   )
  48.   (command "layer" "M" lyrnm "")
  49.   (command "break" e1 p1 p2)
  50.   (command "break" p3 "f" p3 p4)
  51.   (command "line" p2 p4 "")
  52.   (command "line" p1 p3 "")
  53.   (Mkla "窗" 4)
  54.   (command "insert"
  55.            "c1$"
  56.            inpt
  57.            NO3
  58.            (distance p1 p3)
  59.            (* (/ a1 pi) 180)
  60.   )
  61.   (cmdla1)
  62. )
  63. (pxyp "DFCC  (等分插窗)")[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-3 16:02:54 | 显示全部楼层
谢谢xyp大师
插入窗真好用
不知能不能帮我下面的插入门改一下
增加一个双开门


[php](defun c:ed (/ PT1 PT2 PT3 PT4  ang angd  ml)
(setq #osm (getvar "osmode"))
(setvar "osmode" 515)
(setq doorang0 "H")
(setq doorang (getstring (strcat "请指定门放置方向[水平H/纵向V]<" doorang0 ">: ")))
(if (= doorang "") (setq doorang doorang0 ))
(setq ml0 900)
(setq ml (getint (strcat "请输入门长<" (rtos ml0 2 4)">: ")))
(if (= ml nil) (setq ml ml0 ))
(graphscr)
(setq pt1 (getpoint "请输入插入点"))(terpri)
(setq pt3 (getpoint pt1 "请输入方向指向点"))(terpri)
(setq PT2 (list (car PT1)(cadr PT3)))
(setq PT4 (list (car PT3)(cadr PT1)))
(setq ang0 (angle pt1 pt3))
(if (= doorang "H")(indoor1)(indoor2))
(setvar "osmode" #osm)
)

(defun indoor1 ()
(ttrr)
(cond(
         (or (and (> ang0 (*(/ pi 2) 3))(< ang0 (* pi 2)))(and (> ang0 (/ pi 2))(< ang0 pi)))
            (command ".insert" "插门.DWG"  ptmid ml ml  angd "" ))
      (   (or (and (> ang0 0)(< ang0 (/ pi 2)))(and (> ang0 pi)(< ang0 (*(/ pi 2)3))))
            (command ".insert" "反插门.DWG"  ptmid ml ml  angd "" ))
)
)

(defun indoor2 ()
(setq pt0 pt2 pt2 pt4 pt4 pt0)
(ttrr)
(cond(
         (or (and (> ang0 (*(/ pi 2) 3))(< ang0 (* pi 2)))(and (> ang0 (/ pi 2))(< ang0 pi)))
            (command ".insert" "反插门.DWG"  ptmid ml ml  angd "" ))
      (   (or (and (> ang0 0)(< ang0 (/ pi 2)))(and (> ang0 pi)(< ang0 (*(/ pi 2)3))))
            (command ".insert" "插门.DWG"  ptmid ml ml  angd "" ))
)
)

(defun ttrr ()
(command "line" PT1 PT2 "")
(setq pt12 (entlast))
(command "offset" ml pt12 pt3 "")
(setq pt34 (entlast))
(setq angp (angle pt1 pt4))
(setq ptb (polar pt1 angp (/ ml 2)))
(setq ptd (polar pt2 angp (/ ml 2)))
(command "TRIM" pt12 pt34 "" "f" ptb ptd "" "" )
(setq ang (angle pt1 pt2))
(setq angd (angtos ang 0 0))
(setq di (distance pt1 pt2))
(setq ptmid (polar pt1 ang (/ di 2)))
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 04:33 , Processed in 0.429628 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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