明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2069|回复: 15

[LISP群(1)] 2013-05-12 明经 AutoLISP 编程(102918348) 群聊记录:polar 会不会被捕捉影响?

 关闭 [复制链接]
发表于 2013-5-12 09:36:15 | 显示全部楼层 |阅读模式
[mmh1]漫步地球 09:36:15
polar 会不会被捕捉影响?
[夏生生][x_s_s_1]生无可恋 09:36:40
不会
一般只有command会
[mmh1]漫步地球 09:43:01
[qqimg]oldimg/{16A5ED88-82C2-F53D-4259-48DE5DCAF71C}.jpg[/qqimg]
计算平行线间距,往上拉总是出错,
[mmh1]漫步地球 09:44:18
(defun c:rr4()
  (setq ss 0)
  (setq en (entsel))
  (setq pen (osnap (car(cdr en)) "nea"))
  (setq p0 (getpoint pen "  方向:"))
  (setq endata (entget(car en)))
  (setq p1 (cdr(assoc 10 endata)))
  (setq p2 (cdr(assoc 11 endata)))
  (mmh_fangxiang p0 p1 p2);得到j2为垂直方向的弧度
  (setq pen-1 (polar pen j2 1))
  (setq ss (ssget "c" p0 pen-1))
  (setq en1 (ssname ss 0))
  (setq endata1 (entget en1))
  (setq p3 (cdr(assoc 10 endata1)))
  (setq p4 (cdr(assoc 11 endata1)))
  (setq p-jiao (inters pen-1 p0 p3 p4))
  (setq d (distance p-jiao pen))
  (setq p0-z (polar pen-1 j2 d))
  (setq p-jiao2 (inters p0-z pen-1 p3 p4))
  (setq d2 (distance pen p-jiao2))
  (princ)
  )
[夏生生][x_s_s_1]生无可恋 09:44:36
根据两条平行线得出间距吗?
[mmh1]漫步地球 09:44:43
有没有简便的方法?
[夏生生][x_s_s_1]生无可恋 09:46:08
vlax-curve-getClosestPointTo
[夏生生][x_s_s_1]生无可恋 09:47:49
如果直线两个端点的距离均相等就证明是平行的
[mmh1]漫步地球 09:50:48
angle 相等也可以证明
[夏生生][x_s_s_1]生无可恋 09:50:55
[qqimg]oldimg/{FAE91BB8-9FC0-39FD-20B6-1C0626436CEA}.jpg[/qqimg]
[mmh1]漫步地球 09:56:41
厉害,一直以为只能用到曲线上的
[mmh1]漫步地球 09:57:11
没想到可以用求最近点求出
 楼主| 发表于 2013-5-12 10:14:10 | 显示全部楼层
[pzweng]路人 10:14:10
[qqimg]oldimg/{CD0958E2-FFD0-443D-19C0-EEB1A2F3E97E}.gif[/qqimg]
[mmh1]漫步地球 10:15:03
ssget "_C" 有点问题,我把窗口放大后,选中了1个,缩小后就选中了一个。。。。。
缩小后就选中了2个。。。。。
[pzweng]路人 10:15:25
不能这样
[mmh1]漫步地球 10:15:48
[pzweng]路人 10:15:55
一定要把选取的图元都在一个视口里
 楼主| 发表于 2013-5-12 10:30:10 | 显示全部楼层
[夏生生][x_s_s_1]生无可恋 10:30:10
如何不用command "wipeout" 解决覆盖的问题,用SortentsTable?
[pzweng]路人 10:31:49
普通CAD好象没有,只能用wipeout
[夏生生][x_s_s_1]生无可恋 10:32:28
什么意思?
 楼主| 发表于 2013-5-12 10:44:13 | 显示全部楼层
[pzweng]路人 10:44:13
普通CAD只能靠wipeout" 解决覆盖的问题
[夏生生][x_s_s_1]生无可恋 10:44:32
谢谢
[pzweng]路人 10:44:50
[face140.gif]
 楼主| 发表于 2013-5-12 10:55:36 | 显示全部楼层
[夏生生][x_s_s_1]生无可恋 10:55:36
我想实现这样的效果[qqimg]oldimg/{BCE0A7FC-4F82-A828-295F-EE3B31986242}.jpg[/qqimg]
请大家指导,谢谢
[夏生生][x_s_s_1]生无可恋 11:05:12
vla-MoveTotop
[野狼谷]笨鸟 11:06:14
cad基本原理是不是不支持
 楼主| 发表于 2013-5-12 11:27:20 | 显示全部楼层
[ds-limt]-厨师木 11:27:20
(defun c:pp (/ ax_ent_1 ax_ent_2 intpoints points i)
   (setq ent1 (car (entsel "多段线")))
   (setq ent2 (car (entsel " 直线")))
  (setq ax_ent_1 (vlax-ename->vla-object ent1)
        ax_ent_2 (vlax-ename->vla-object ent2)
  )
  (setq intpoints (vla-intersectwith ax_ent_1 ax_ent_2 acextendnone))
  (setq intpoints (vlax-variant-value intpoints))
  (setq i 0)
  (if (> (vlax-safearray-get-u-bound intpoints 1) 0)
    (repeat (/ (+ 1
              (- (vlax-safearray-get-u-bound intpoints 1)
                 (vlax-safearray-get-l-bound intpoints 1)
              )
           )
           3
        )
      (setq points (append points (list (list
        (vlax-safearray-get-element intpoints i)
        (vlax-safearray-get-element intpoints (+ i 1))
        (vlax-safearray-get-element intpoints (+ i 2))
      )))
      )
      (setq i (+ 3 i))
    )
  )
  points
)
[236004]张牙舞爪 11:29:03
干嘛用的
[pzweng]路人 11:29:07
啥子功能哟
[ds-limt]-厨师木 11:29:22
一个直线和多段线的交点
[ds-limt]-厨师木 11:30:16
(vlax-safearray-get-element intpoints (+ i 2))
      )))
      )
      (setq i (+ 3 i))
    )
  )
  points
) (defun GetInterPoint (ent1 ent2 / ax_ent_1 ax_ent_2 intpoints points i)
  (setq ax_ent_1 (vlax-ename->vla-object ent1)
        ax_ent_2 (vlax-ename->vla-object ent2)
  )
  (setq intpoints (vla-intersectwith ax_ent_1 ax_ent_2 acextendnone))
  (setq intpoints (vlax-variant-value intpoints))
  (setq i 0)
  (if (> (vlax-safearray-get-u-bound intpoints 1) 0)
    (repeat (/ (+ 1
              (- (vlax-safearray-get-u-bound intpoints 1)
                 (vlax-safearray-get-l-bound intpoints 1)
              )
           )
           3
        )
      (setq points (append points (list (list
        (vlax-safearray-get-element intpoints i)
        (vlax-safearray-get-element intpoints (+ i 1))
[pzweng]路人 11:31:14
太复杂了吧
[ds-limt]-厨师木 11:31:50
Extend ----延伸选项                                                     ;
                 0  acExtendNone                                              ;
                 1  acExtendThisEntity                                        ;
                 2  acExtendOtherEntity                                       ;
                 3  acExtendBoth
[ds-limt]-厨师木 11:32:44
这里的 0 1 2 3 代表怎么延伸啊?
[pzweng]路人 11:33:06
这个要看函数了
函数里说的很清楚
 楼主| 发表于 2013-5-12 13:13:45 | 显示全部楼层
[永不言弃]梦 13:13:45
 楼主| 发表于 2013-5-12 13:34:41 | 显示全部楼层
[yjpzc]-蓝眼泪 13:34:41
(defun yjp-sort1(arcObj lst s3)
  (vl-sort lst
      (function (lambda (s1 s2)
                (> (distance (vlax-curve-getClosestPointTo arcObj (list (car s1)(cadr s1) 0)) (list (car s3)(cadr s3) 0) )
               (distance (vlax-curve-getClosestPointTo arcObj (list (car s2)(cadr s2) 0)) (list (car s3)(cadr s3) 0)))
            )
       )
  )
 )
按点到直线最近点与另一点的排序
 楼主| 发表于 2013-5-12 15:47:12 | 显示全部楼层
[LISP]???IMKYUD 15:47:12
大家好,电脑不能正常打开,系统提示文件丢失怎么办
只能重装系统吗
我没有备份怎么办
[mitenickevin]kevin 15:48:39
提示丢什么文件,去别的电脑复制什么文件吧
 楼主| 发表于 2013-5-12 17:10:42 | 显示全部楼层
[weiqi]weiqi 17:10:42
(command "rectang" 1 )
点下去的 第2个点。
要怎么获得?。
[weiqi]weiqi 17:11:33
如果我先定义个 2的话
(command "rectang" 2) 
这样就看不到那个在画的过程。。。
[q530496591][q530496591]小菜鸟 17:13:06
有个是输入矩形的第二个角点
[weiqi]weiqi 17:13:28
我就是想获得 第2个点。
怎么写比较好。。
(defun C:TR1()
(setq p1 (getpoint "第1点"))
(setq p2 (getpoint "第2点"))
(command "rectang" 1 p2)
)
这个的话就看不到 在画的那个过程。。
[q530496591][q530496591]小菜鸟 17:15:22
(setq p1 (getpoint "第1点"))
[weiqi]weiqi 17:15:34
然后
[weiqi]weiqi 17:18:14
我的目的是又画了一个框,又获得 第2个点。。
[夏生生][x_s_s_1]生无可恋 17:18:18
(setq gr (grread t 8 1))为何还是显示十字光标?
[weiqi]weiqi 17:18:49
算咯,我用 (ssget "L")算了 谢谢你了。
[夏生生][x_s_s_1]生无可恋 17:18:54
(vl-cmdf "rectang" (setq p2(getcorner p1 " 第二点:")))
[weiqi]weiqi 17:21:23
谢咯(vl-cmdf "rectang" (setq p2(getcorner p1 " 第二点:")) p1)
[夏生生][x_s_s_1]生无可恋 17:21:32
[qqimg]oldimg/{6BEC34F5-CC77-E189-CE7A-3F488ACE90AF}.gif[/qqimg]
我就怪了,为何不能去除十字光标呢?
(setq gr (grread t 8 1))
[夏生生][x_s_s_1]生无可恋 17:27:03
改为(setq gr (grread t 12 1))可以了,迷糊中
[jicqj]大力水手 17:34:55
把多行单行文字 整合成多行文字 CAD有现成功能吗
[VBALISPER]恐龙 17:38:02
ET
[jicqj]大力水手 17:39:26
名称叫什么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 11:50 , Processed in 0.222188 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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