明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 明经快报

[LISP群(1)] 2013-06-05 明经 AutoLISP 编程(102918348) 群聊记录:(vl-load-com) (defun c:rgj () (setq

 关闭 [复制链接]
 楼主| 发表于 2013-6-5 13:30:01 | 显示全部楼层
[zk2140]Kevin 13:30:01
全选 代码??
就是把CAD中的所有图形包括图块全选,有没有代码?
求解
#?全选
[pzweng]路人 13:32:04
ssget
ya雀无声 13:33:39
这样行么
[zk2140]Kevin 13:40:02
ssget 不行,这个只是选择图元
[mccad][MCCAD] 13:42:36
图块也可以选吧
[zk2140]Kevin 13:44:37
ssget 选不了图块
[soly2006]季鸟 13:45:11
没找你
[mccad][MCCAD] 13:45:29
试过?
[zk2140]Kevin 13:45:33
?全选
[soly2006]季鸟 13:45:59
不是取消了吗?
 楼主| 发表于 2013-6-5 14:04:02 | 显示全部楼层
ya雀无声 14:04:02
(defun dcl_jd()
  (setq dcl_id(load_dialog "jd"))
  (new_dialog "jd" dcl_id)
  (set_tile "kw1" "600")
  (set_tile "kh1" "100")
  (set_tile "kwl" "200")
  (set_tile "khl" "500")  
  (action_tile "accept""(get_dcl_data) (done_dialog 1)")  
  (setq dd (start_dialog))
  (cond ((= dd 1) (c:xt1))

    )

    )
  
(defun get_dcl_data ()
  (setq w1(atof(get_tile "kw1")))
  (setq h1(atof(get_tile "kh1")))
  (setq wl(atof(get_tile "kwl")))
  (setq hl(atof(get_tile "khl")))
  )
为什么 get_dcl_data 不能取值
[zk2140]Kevin 14:04:38
(prompt "选择绘制目标:")
  (setq en1 (ssget))
  (command "T91_TExplode" en1 "")
  (prompt "选择绘制目标:")
  (setq en2 (ssget))
  (command "EXPLODE" en2 "")
ya雀无声 14:04:47
W1 H1 都是nil的
[zk2140]Kevin 14:05:07
ssget为什么选不了块
ya雀无声 14:08:41
[qqimg]oldimg/{40F2D4F7-EBA7-B2EA-878A-81DECB1A9592}.jpg[/qqimg]DCL也没问题啊
ya雀无声 14:14:40
没人回答我的问题吗,求助啊,
 楼主| 发表于 2013-6-5 14:25:47 | 显示全部楼层
C菜 14:25:47
有大哥在么
C菜 14:28:35
能不能编通用程序,
判断条件,按一下是绘制圆,在按一下是绘制弧,可以循环切换的,默认是绘制圆啊
[vormittag]桔子 14:29:58
这种程序一点意义都没有。比hello world还不如。
[蔡__洛]不快乐 14:31:23
有做结构设计的兄弟没?
C菜 14:32:47
是么
C菜 14:33:17
要通用的意思是,换成其他任意的2个命令也是可以执行的
[zk2140]Kevin 14:33:27
@[caoyin] 这样就什么也选不了了
[zylcba]郑丘雨 14:34:03
有搞结构的。
[zk2140]Kevin 14:35:45
选择某一图层的代码
[雨的节奏][雨的节奏] 14:35:48
怎么取得电脑的CPU序号?
C菜 14:38:10
唉,命令太多了,难记,请高手缩小一下命令,如,圆弧自动切换啊,直线,多意线切换啊
能不能编通用程序,
判断条件,按一下是绘制圆,在按一下是绘制弧,可以循环切换的,默认是绘制圆啊,

当然,既然是通用还可以在其他替换成其他2个命令,比如
;;; 调整显示顺序,前置物体
(defun c:xh (/ ss)
 (setq ss (ssget))
 (command "DRAWORDER" ss "" "f")
)
;;; 调整显示顺序,后置物体
(defun c:hx (/ ss)
 (setq ss (ssget))
 (command "DRAWORDER" ss "" "b")
)

做好就加分,说到做到,
C菜 14:39:49
 楼主| 发表于 2013-6-5 15:03:41 | 显示全部楼层
[gzxl] 15:03:41
键盘值可以用getreal获取
 楼主| 发表于 2013-6-5 15:23:21 | 显示全部楼层
[linshiyin2]大地 15:23:21
同志们,沿曲线每隔10绘制长20的法线,怎么搞,好像前一段时间有人搞出来过
参考函数vlax-curve-getsecondDeriv 和vlax-curve-getfirsetDeriv
[linshiyin2]大地 15:25:09
(vlax-curve-getFirstDeriv curve-obj para)         ;得到曲线curve-obj 在para点的切向量。
(vlax-curve-getSecondDeriv curve-obj para)    ;得到曲线curve-obj 在para点的法向量。
[pzweng]路人 15:25:47
阵列
me
[236004]张牙舞爪 15:35:19
[qqimg]oldimg/{1F582AA5-85B0-B290-3AEC-8242C4D8CA12}.jpg[/qqimg]

四个象限弧度值是多少?
C菜 15:39:54
(defun c:dg ()(princ "逐点标注: ")
(if (= nil (vl-vlx-loaded-p "a5逐点标注YY-ZDBZ.fas"))
    (load "a5逐点标注YY-ZDBZ.fas") (command "DIMALIGNED"))
    (if (= nil (vl-vlx-loaded-p "a5逐点标注YY-ZDBZ.fas"))
    (command "DIMALIGNED") (c:YY-ZDBZ))
(princ))
[蔡__洛]不快乐 15:40:09
配筋软件 谁有?
[蔡__洛]不快乐 15:42:01
[qqimg]oldimg/{EDD3A6C5-8EF0-D628-08BF-9C433498E83D}.gif[/qqimg]
 楼主| 发表于 2013-6-5 17:39:48 | 显示全部楼层
ya雀无声 17:39:48
怎么样实现 批量插入
比如CTRL+c,选择插入点, 批量选择插入点。
 楼主| 发表于 2013-6-5 19:24:33 | 显示全部楼层
[weiqi]weiqi 19:24:33
;********单行文本转换为多行文本xofox**********
;en 图元名,endata 图元数据,tid 图元标志(若为TEXT则表示为单行文本),tt 文本,th文本高度
;pt 文本基点,ang 文本旋转角度,ttlen 文本大致长度,tstr 相对坐标形式的多行文本的另一点
(defun c:dtm(/ s1 i en tid tt th pt ang ttlen twid tang tlen tstr)
  (setvar "cmdecho" 0)
  (setq sysvar (getvar "OSMODE")) ;获得并保存对象捕捉设置
  (setvar "OSMODE" 16384)  ;关闭对象捕捉
  (setq s1 (ssget '((0 . "TEXT") ))) ;选取单行文本,构造非空选择集
  (if (/= s1 nil) (print) 
      (progn (setvar "OSMODE" sysvar) (exit) )
  )
  (setq i -1)
  (repeat (sslength s1)
     (setq i (+ i 1))
     (setq en (ssname s1 i))
     (setq endata (entget en))
     (setq tid (cdr (assoc 0 endata)))  ;判断是否单行文本
     (setq tt (cdr (assoc 1 endata)))  ;取得文字
     (setq th (cdr (assoc 40 endata)))  ;取得文字高度
     (setq pt (cdr (assoc 10 endata)))  ;取得文字插入点
     (setq ang (cdr (assoc 50 endata)))  ;取得文字旋转角度
     (setq ttlen (strlen tt))   ;取得文字长度
     (setq twid (* (* th 0.7) ttlen))  ;计算文字宽度
     (setq tang (/ (* 180 (+ ang (atan(/ th twid)))) pi))  ;计算多行文本对角点的旋转角度
     (setq tlen (sqrt (+ (* th  th) (* twid twid))))  ;计算多行文本对角线的长度
     (setq tstr (strcat "@" (rtos tlen) "
 楼主| 发表于 2013-6-5 20:04:01 | 显示全部楼层
[LC100]建筑设计 20:04:01
重复操作的东西做成子程序, 母程序如何将参数传给子程序呢?

(defun c:总程序 (/)
检查图层1,不存在新建
检查图层2,不存在新建
检查图层3,不存在新建

)
像这种的怎么处理。
[weiqi]weiqi 20:04:24
存在的话呢.
[LC100]建筑设计 20:04:52
存在就不操作啊
[weiqi]weiqi 20:05:36
(defun c:`yjhl ()
(print "请确保有DASH线型")
(setq tcmc "E-应急回路")
(setq tcys 6)
(zwdq)
(command "LAYER" "n" tcmc "C" "6" tcmc "l" "dash" tcmc "")
)
那你直接 (command "LAYER")就完了.
[LC100]建筑设计 20:06:05
就像你这个,没有DASH
[weiqi]weiqi 20:06:12
存在不存在 都行
我这个是 确保你有 DASH线型
不是好图层
[LC100]建筑设计 20:07:26
其实我现在也是在搞线型。
只是说成图层而已。
[weiqi]weiqi 20:07:55
线型 不搞咯,呵呵 麻烦得LIN加入吧,也不难,都自己画图
没线形就 复制一个东西进去就有了
[LC100]建筑设计 20:08:14
我用的是系统的线形,只是加载而已。
就觉得代码长。
[weiqi]weiqi 20:17:10
[qqimg]oldimg/{00E00783-634C-5DF9-3338-321AD0B563D4}.jpg[/qqimg]
这个属性
得怎么操作噢?.
[weiqi]weiqi 20:19:46
一说完就找到 帖..
[LC100]建筑设计 20:21:57
特性这里所有的东西都能通过组码来找吗?
 楼主| 发表于 2013-6-5 20:38:40 | 显示全部楼层
[LC100]建筑设计 20:38:40
(defun c:tes (/ xx_name checklayer HANTOM DASH center)
  (setq xx_name "HANTOM")
  (test)
  );


(defun test (/ xx_name)
  
  (setq checklayer (tblsearch "ltype" xx_name))
  (if (= checklayer nil) 
    (command "linetype" "l" xx_name "" "")
    );if

  );end
;线形检查
这个代码是变量出的问题么?
ya雀无声 20:47:37
[qqimg]oldimg/{9294868D-53DD-6450-2A74-27BA71158823}.jpg[/qqimg]
ya雀无声 20:48:09
我这个哪里错了,检查了一天都检查不出问题,
[LC100]建筑设计 20:48:45
发代码上来啊
[偏爱云~小吴] 20:48:49
呵呵
ya雀无声 20:49:02
(defun c:xt(/ p1 h1 w1 hl wl)
  (dcl_jd)
  (prin1)
  )

(defun dcl_jd()
  (setq dcl_id(load_dialog "jd"))
  (new_dialog "jd" dcl_id)
  (set_tile "kw1" "600")
  (set_tile "kh1" "100")
  (set_tile "kwl" "200")
  (set_tile "khl" "500")
  (action_tile "accept""(get_jd)(done_dialog 2)")
  (setq dd(start_dialog))
  (cond ((= dd 2)(c:ya_xt))

    )
  )


(defun get_jd ()
  (setq w1(atof(get_tile "kw1")))
  (setq h1(atof(get_tile "kh1")))
  (setq wl(atof(get_tile "kwl")))
  (setq hl(atof(get_tile "khl"))))
为什么不能实现 get_tile
[LC100]建筑设计 20:50:16
(action_tile "accept""(get_jd)(done_dialog 2)")  估计啊估计啊,我不会的啊
ya雀无声 20:50:39
这里怎么了
(get_jd) 不能吗
ya雀无声 20:51:49
我看 了一天,都没看出问题
痛苦死了
全部代码
[偏爱云~小吴] 20:52:36
真厉害能写这多代码
我今天搞个快速引线搞了一天也没写好
ya雀无声 20:53:08
小吴,帮忙看看前面
我的代码很简单,
[偏爱云~小吴] 20:53:18
我不懂得
ya雀无声 20:53:23
DCL 是对的,有界面
[偏爱云~小吴] 20:53:45
看大地他们能找到不
[偏爱云~小吴] 20:56:41
大神们,要在引线后接快怎么写啊
 楼主| 发表于 2013-6-5 21:07:16 | 显示全部楼层
[偏爱云~小吴] 21:07:16
[qqimg]oldimg/{1D0960D6-0897-E372-268B-A81F45E8DE4E}.jpg[/qqimg]
要选择快参照应该怎么写
(command "qleader" "" b)
ya雀无声 21:17:24
太感谢ZZXXQQ了,帮我找到错误了。
[偏爱云~小吴] 21:17:42
也帮帮我啊
ya雀无声 21:18:02
DCL的变量不能是 局部变量
[偏爱云~小吴] 21:18:12
快速引线后接块怎么搞啊
[236004]张牙舞爪 21:25:34
那们神人,帮我写一个 把一个表分成二个表的 代码
帮我写一个代码,
((0.252626 2.47723 5.61883 408.0 ) (1.2422 5.62193 2.48033 407.0 ) (1.72614 2.45786 5.59945 409.0 ) (2.70592 5.72437 2.58278 406.0 ) (3.06984 2.44577 5.58737 410.0 ) (4.11381 5.7399 2.5983 405.0 ) (4.45384 2.41809 5.55968 411.0 ) (5.66059 5.65146 2.50987 404.0 ) (5.7961 2.42463 5.56622 412.0 ) (7.04394 5.67872 2.53712 403.0 ) (7.22728 2.33133 5.47292 413.0 ) (8.21726 1.5158 4.65739 410.0 ) (8.42573 2.32107 5.46267 414.0 ) (8.52744 5.73013 2.58854 402.0 ) (8.74113 1.38616 4.52776 409.0 ) (9.04734 1.1011 4.24269 407.0 ) (9.12651 1.25116 4.39275 408.0 ) (9.2973 0.973324 4.11492 406.0 ) (9.55145 2.3225 5.46409 415.0 ) (9.96373 5.73933 2.59774 401.0 ))
把这个表,分成二个表,
[LC100]建筑设计 21:27:03
直接得到系统变量值为0.5,是不是需要转换为整数型才能用?
[236004]张牙舞爪 21:27:08
每个表里的规则是 (1 2 3 4 5)
把表这个表分成二个表,分别是,2 一个表,3 一个表,2,3数值取整就会有相同的
[LC100]建筑设计 21:27:15
直接得到系统变量值为0.5,是不是需要转换为整数型才能用?
[236004]张牙舞爪 21:27:31
可以用,
[LC100]建筑设计 21:28:09
[qqimg]oldimg/{C10CA7ED-0397-4B43-849C-72536C7AA4E1}.jpg[/qqimg]
我取得这个变量值,用pedit命令来控制线宽,那为什么用不了。
[236004]张牙舞爪 21:28:47
应该可以的,
[ZZXXQQ] 21:29:04
咋分?看不明白
[236004]张牙舞爪 21:29:27
表里有5个数值,
[LC100]建筑设计 21:30:01
(command "pedit" "m" (ssget) "" "w" (getvar "hpscale"))
[236004]张牙舞爪 21:30:03
以表里的 2 ,3,数值取整相同的分成二个表
[LC100]建筑设计 21:30:05
就这样用不了。
[236004]张牙舞爪 21:30:28
[qqimg]oldimg/{066FC412-997B-0807-D9DB-95B0B3B54CB3}.jpg[/qqimg]
[LC100]建筑设计 21:30:34
测试了,可以用,不知道是其它参数问题。
[236004]张牙舞爪 21:30:39
[qqimg]oldimg/{59693F45-626B-301E-0885-62465A5D855C}.jpg[/qqimg]
[236004]张牙舞爪 21:31:15
[qqimg]oldimg/{9A5DD236-8DB5-A6D8-1376-77F8F739FB1B}.jpg[/qqimg]
[vormittag]桔子 21:31:22
语言表达能力真。。。
[236004]张牙舞爪 21:31:31
[夏生生][x_s_s_1]生无可恋 21:31:37
张牙请讲国语
[阿然][阿然] 21:31:51
捉鸡啊
[236004]张牙舞爪 21:32:55
不好意思,表达能力差,
[vormittag]桔子 21:37:57
母语啊,又不是外语。
[236004]张牙舞爪 21:38:37
不好意思啊,
表我用的少,不知道怎么表达,
[夏生生][x_s_s_1]生无可恋 21:39:00
将其简化
看能表述清楚不
[夏生生][x_s_s_1]生无可恋 21:39:47
[qqimg]oldimg/{10E1ADD5-7E19-9FF8-33B6-C70F66387D9C}.jpg[/qqimg]
为何是分成两个表而不是三个表
[236004]张牙舞爪 21:40:17
[qqimg]oldimg/{12F990B7-9350-0A0C-D40F-B763049C6C64}.jpg[/qqimg]
每个表里的规则是 (1 2 3 4 5)
如果剩下还有没分完的,全部放在一个表里
[vormittag]桔子 21:40:46
表的结构、元素、特征。
[阿然][阿然] 21:41:09
。。。每个表里面有五个原子,要把五个原子分成两个表
[夏生生][x_s_s_1]生无可恋 21:41:19
我的理解是表中第二个原子fix相同的就组成一个表
[阿然][阿然] 21:41:21
要怎么分?2
[ZZXXQQ] 21:41:25
(defun splst (lst)
 (setq tmp1 (list) tmp2 (list) tmp3 (list))
 (foreach x lst
  (cond
   ((= (fix(cadr x)) 2) (setq tmp1 (cons x tmp1)))
   ((= (fix(caddr x)) 3) (setq tmp2 (cons x tmp1)))
   (T (setq tmp3 (cons x tmp3)))
  )
 )
 (list tmp1 tmp2 tmp3)
)
[vormittag]桔子 21:41:26
目标表的元素、结构、特征。
[阿然][阿然] 21:41:29
2、3
分开?
[236004]张牙舞爪 21:42:55
2,3对应的值取整,把整个表分开,
[夏生生][x_s_s_1]生无可恋 21:42:58
从一个嵌套表中提取出fix第二个原子相同的表组成新的嵌套表
[236004]张牙舞爪 21:43:07
如果剩下还有没分完的,全部放在一个表里
[夏生生][x_s_s_1]生无可恋 21:43:21
那不就变成三个表了
是要三个表是吧
[236004]张牙舞爪 21:43:48
是的
[夏生生][x_s_s_1]生无可恋 21:44:01
如果第二个原子全部相等呢?或者第二个和第三个都相等呢?
[VBALISPER]恐龙 21:44:08
要不,让高手们教你怎么拆分表,条件判断你自己去做.
[夏生生][x_s_s_1]生无可恋 21:44:27
[236004]张牙舞爪 21:44:37
第二个原子全部相部的,分成一个表
[ZZXXQQ] 21:44:44
[236004]张牙舞爪 21:44:48
第三个原子相等的分成一个表,
其它的一个表
[vormittag]桔子 21:45:47
我决定不看了。
[236004]张牙舞爪 21:46:21
谢谢各位,谢谢ZZXXQQ
[sqbao] 21:46:21
[qqimg]oldimg/{CA51C7B7-8E8E-AF54-72B0-576C2B44E4A6}.gif[/qqimg]
[236004]张牙舞爪 21:46:25
感谢你们!!
[face140.gif] 请你们K歌去
[夏生生][x_s_s_1]生无可恋 21:47:12
((a1 a2 a3 a4 a5)(b1 b2 b3 b4 b5)(c1 c2 c3 c4 c5)...)(if = a2 b2)list(a1 a2 a3 a4 a5)(b1 b2 b3 b4 b5)是不是这个意思?
[236004]张牙舞爪 21:47:46
[夏生生][x_s_s_1]生无可恋 21:48:49
if and = a2 b2 = a3 b3如何处理?
[夏生生][x_s_s_1]生无可恋 21:49:59
安然兄,有没有好的最小外包框函数
我用鸟版的有bug
[夏生生][x_s_s_1]生无可恋 21:50:58
[qqimg]oldimg/{710DAFAE-5AC1-E292-D321-303D33092EAC}.jpg[/qqimg]对于这样自相交的表判断有问题
[亮]123379932 21:51:22
人之初,群冷淡,你调皮,我捣蛋,群主是个大坏蛋天苍苍,野茫茫,群主经常上错床读书苦,写字累,群主夜夜去敲背情深深,雨朦朦,群主是个毛毛虫问世间群为何物,忙得群主老是走错屋有群就转啊,让群主高兴一下
[夏生生][x_s_s_1]生无可恋 21:56:33
张牙舞爪,想了一下,你的问题不一定成立
我也决定不想了
[阿然][阿然] 21:56:43
vla-getboundingbox不能得到正确的?
[夏生生][x_s_s_1]生无可恋 21:57:03
[qqimg]oldimg/{32D586CF-D128-9087-AE1C-27BCB85CC50D}.jpg[/qqimg]
[夏生生][x_s_s_1]生无可恋 21:57:47
vla-getboundingbox只能得到最大外包框
[VBALISPER]恐龙 21:58:00
张牙,换方法.
[阿然][阿然] 21:58:28
用老迈的试一试
[夏生生][x_s_s_1]生无可恋 21:58:46
谢谢,我试试
张牙的存在问题
a2=b2 c2=d2 a2=c2
出现这样的问题就挠头了
[alwtyp][alwtyp] 21:59:58
请问样知道某个ARX有没有被加载?
[阿然][阿然] 22:00:08
(arx)
[夏生生][x_s_s_1]生无可恋 22:00:10
您还是将全部想法提出来,看看有没有其它办法
arx
返回列表
[阿然][阿然] 22:00:28
(member "abc.arx" (arx))
[VBALISPER]恐龙 22:00:38
好象他想a2=bb2=c2=d2=e2
[alwtyp][alwtyp] 22:02:42
谢了
[夏生生][x_s_s_1]生无可恋 22:04:10
他是要提取n2中相等的,但是没有考虑到有多个值
也就是我前面说的
[夏生生][x_s_s_1]生无可恋 22:05:10
当提取顺序不同结果也不同
[夏生生][x_s_s_1]生无可恋 22:05:47
何况他的表中还带了图元名,后续肯定是要对图元进行操作,前面提错了,后面处理也是错的
[夏生生][x_s_s_1]生无可恋 22:10:13
阿然兄,老迈的死循环
我研究一下
他也是射线法
[429014673]djl 22:20:15
哥,一般都不用天正[qqimg]oldimg/{5C6E5F5B-4BA9-F761-0D77-24871BC47322}.jpg[/qqimg]
[yybu]yy 22:27:56
cad2008中图层操作太慢了,有木有什么方法搞快点啊
[夏生生][x_s_s_1]生无可恋 22:31:21
setvar
[qianzj]太阳 22:32:08
[yybu]yy 22:32:22
同求
[阿然][阿然] 22:42:11
发样图
ya雀无声 22:48:36
(defun c:test (/ id flag str)
  (if (and (>= (setq id (load_dialog "test.dcl")) 0)
           (new_dialog "TEST_DCL" id)
      )
    (progn
      (if $test_str$
        (set_tile "str" $test_str$)
      )
      (action_tile "str" "(setq str $Value)")
      (action_tile "accept" "(done_dialog 1)")
      (action_tile "cancel" "(done_dialog 0)")
      (setq flag (start_dialog))
      (unload_dialog id)
      (if (and (= flag 1) str)
        (setq $test_str$ str)
        $test_str$
      )
    )
  )
)
TEST_DCL
  : dialog { label=" 对话框测试";
    : edit_box { label=" 输入字符串:"; key="str"; }
    ok_cancel;
  }
这个可以记录DCL输入的值么,还有没有更好的办法
[skg123][skg123]刚 22:58:54
本人想写一程序 让坐标标注的文字和线 绘制完毕后直接为"块"的形式,求高手指点.
[tiyi8888]永远痛 22:59:20
有程序 的
[skg123][skg123]刚 23:03:56
那个朋友给个代码,给个例子。谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 03:47 , Processed in 0.187386 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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