bai2000 发表于 2014-1-6 18:39:40

发布一个线变H型钢的程序,求改为线变5#角钢的

这个程序可能是莫一位前辈的,不好意思


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~绘制H钢
;;;; 选择线,变型钢俯视图, 0.00001版本
;;;; 说明:选用DASH为腹板线型,可自己修改,此时建议的图纸比例是 1:1的绘制法
;;;;       绘制的型钢是在当前层,所以要先定义到 型钢图层,再进行绘制
;;;;       型钢截面,现在是将就定义了一种 200*500*12*20的截面
(defun c:hg ( / c dislst h-section l1type l2type layer linetypelst x)   ; ' b h tw tf
;;;; 分别是 宽度 高度 腹板厚度 翼缘厚度
(setq H-section (list 200 500 12 20))
(setq dislst (list (- (/ (nth 0 H-section) 2.0))
                     (- (/ (nth 3 H-section)2.0))
                     (/ (nth 3 H-section) 2.0)
                     (/ (nth 0 H-section) 2.0)
               )
)
;;线型选用 DASH作为虚线
(setq l1type "CONTINUOUS" l2type "DASH")
;;;俯视图的时候,按 实线虚线 虚线 实线 的排列
(setq linetypelst (list l1type l2type l2type l1type))
(setq layer (getvar "CLAYER"))
(prompt "\n 【江普咨询】提示你:请选择变为H钢的中心线:")
(setq c (ssget '((0 . "LINE"))))
(setq c (std-sslist c))
(foreach x c
    (qffMakeLine x dislst layer linetypelst)
)
(princ)
)
;;; 选择集变列表 from Stdlib
(defun std-sslist (ss / n lst)
(if (eq 'pickset (type ss))
    (repeat (setq n (fix (sslength ss))) ; fixed
      (setq lst (cons (ssname ss (setq n (1- n))) lst))
    )
)
)
;;; entmake line
(defun q:entmake:line (pt1 pt2 layer linetype)
(entmake (list (cons 0 "LINE")       ; ***

yoyoho 发表于 2014-1-7 07:32:18

缺少函数(defun qffMakeLine --------

bai2000 发表于 2014-1-19 22:45:48

ZZXXQQ 发表于 2014-1-20 08:09:54

;;; entmake line
(defun q:entmake:line (pt1 pt2 layer linetype)
(entmake
   (mapcar 'cons '( 0 10 11 8 6) (list "LINE" pt1 pt2 layer linetype))
)
)

bai2000 发表于 2014-1-20 15:08:58

谢Z版,楼上的源码不完整吧?求个完整的

yoyoho 发表于 2014-1-23 16:00:40

ZZXXQQ 发表于 2014-1-20 08:09 static/image/common/back.gif


感谢 Z版 分享简洁得函数!
页: [1]
查看完整版本: 发布一个线变H型钢的程序,求改为线变5#角钢的