明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1705|回复: 3

******求助**************

[复制链接]
发表于 2003-5-31 21:24:00 | 显示全部楼层 |阅读模式
@@求 助 @@ 谁能帮帮我啊??????????
由于刚学CAD不久,请教高手,我想定义一个命令 "duijie"主要动作是 假如CAD图上已经有了2条相交的直线,1。该命令要求输入(或选择)第一点(在其中的一条直线上)  2。要求输入(或选择)第二点(在另外一条直线上),那么就由这2点画出一条直线,和原来的2条直线构成一个三角形,然后制动把这个三角形填充成solid。就用这一个命令 怎么编?????请给我这些代码 。谢谢!!!!!email: qsw12345@21cn.com   
发表于 2003-6-2 10:15:00 | 显示全部楼层

看看行不行

(defun c:sol( / ent1 ent2 sname1 sname2 pt1 pt2 pt1s pt1e pt2s pt2e pt3 pt4 pt5 ptc os)
  (setq ent1 (entsel "选择第一点:"))
  (setq ent2 (entsel "选择第二点:"))
  (setq sname1 (car ent1))
  (setq sname2 (car ent2))
  (setq pt1 (cadr ent1))
  (setq pt2 (cadr ent2))
  (setq pt1s (cdr (assoc 10 (entget sname1))))
  (setq pt1e (cdr (assoc 11 (entget sname1))))
  (setq pt2s (cdr (assoc 10 (entget sname2))))
  (setq pt2e (cdr (assoc 11 (entget sname2))))
  (setq pt3 (getpt pt1s pt1e pt2s pt2e))
  (setq pt4 (list (/ (+ (car pt1) (car pt3)) 2) (/ (+ (cadr pt1) (cadr pt3)) 2)))
  (setq pt5 (list (/ (+ (car pt2) (car pt3)) 2) (/ (+ (cadr pt2) (cadr pt3)) 2)))
  (setq ptc (getpt pt2 pt4 pt1 pt5))
  (command "_.line" pt1 pt2 "")
  (setq os (getvar "osmode"))
  (setvar "osmode" 0)
  (command "_.zoom" "e")
  (command "_.bhatch" ptc "")
  (setvar "osmode" os)
  (princ)

)

(defun getpt(pt1 pt2 pt3 pt4 / ang1 ang2 x2 y2 x4 y4 xf yf)
  (setq ang1 (angle pt1 pt2))
  (setq ang2 (angle pt3 pt4))
  (setq x2 (car pt2))
  (setq y2 (cadr pt2))
  (setq x4 (car pt4))
  (setq y4 (cadr pt4))
  (setq xf (/ (- (+ (- y2 y4) (* x4 (/ (sin ang2) (cos ang2))))
                 (* x2 (/ (sin ang1) (cos ang1)))) (- (/ (sin ang2) (cos ang2)) (/ (sin ang1) (cos ang1)))))
  (setq yf (+ (* (- xf x4) (/ (sin ang2) (cos ang2))) y4))
  (list xf yf)
)
发表于 2003-6-3 08:48:00 | 显示全部楼层

这样吗?

(defun c:sol( / ent1 ent2 sname1 sname2 pt1 pt2 pt1s pt1e pt2s pt2e pt3 pt4 pt5 ptc os)
  (setq ent1 (entsel "选择第一点:"))
  (setq ent2 (entsel "选择第二点:"))
  (setq sname1 (car ent1))
  (setq sname2 (car ent2))
  (setq pt1 (cadr ent1))
  (setq pt2 (cadr ent2))
  (setq pt1s (cdr (assoc 10 (entget sname1))))
  (setq pt1e (cdr (assoc 11 (entget sname1))))
  (setq pt2s (cdr (assoc 10 (entget sname2))))
  (setq pt2e (cdr (assoc 11 (entget sname2))))
  (setq pt3 (getpt pt1s pt1e pt2s pt2e))
  (setq pt4 (list (/ (+ (car pt1) (car pt3)) 2) (/ (+ (cadr pt1) (cadr pt3)) 2)))
  (setq pt5 (list (/ (+ (car pt2) (car pt3)) 2) (/ (+ (cadr pt2) (cadr pt3)) 2)))
  (setq ptc (getpt pt2 pt4 pt1 pt5))
  (command "_.line" pt1 pt2 "")
  (setq os (getvar "osmode"))
  (setvar "osmode" 0)
  (command "_.zoom" "e")
  (command "_.bhatch" ptc "p" "s" "")
  (setvar "osmode" os)
  (princ)

)

(defun getpt(pt1 pt2 pt3 pt4 / ang1 ang2 x2 y2 x4 y4 xf yf)
  (setq ang1 (angle pt1 pt2))
  (setq ang2 (angle pt3 pt4))
  (setq x2 (car pt2))
  (setq y2 (cadr pt2))
  (setq x4 (car pt4))
  (setq y4 (cadr pt4))
  (setq xf (/ (- (+ (- y2 y4) (* x4 (/ (sin ang2) (cos ang2))))
(* x2 (/ (sin ang1) (cos ang1)))) (- (/ (sin ang2) (cos ang2)) (/ (sin ang1) (cos ang1)))))
  (setq yf (+ (* (- xf x4) (/ (sin ang2) (cos ang2))) y4))
  (list xf yf)
)
 楼主| 发表于 2003-6-3 14:18:00 | 显示全部楼层

谢谢你meflying

谢谢你meflying
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 11:46 , Processed in 0.173084 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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