'(("150 mm PVC PIPE" 150.0) ("250 mm PVC PIPE" 250.0))
然后以0作为长度初始化列表,稍后进行调整;这一次必须寻找ASSOC:
(setq listPipes '(("150 mm PVC PIPE" 0.0) ("250 mm PVC PIPE" 0.0)))
(if (setq subList (assoc "150 mm PVC PIPE" listPipes))
(setq listPipes (subst (list (car subList) (+ (cadr subList) 150.0))
subList
listPipes)
)
)
幸运的是。。。您可以考虑ATOF函数。 这是我目前的代码状态,我只是想弄清楚在那里/如何放置代码
(defun c:test
(/ ANS n sset count
check item test 2dl psn
size_arrary list_counter tester
check2 pipe_size_list check3
)
(vl-load-com)
(setq test 0) ; tester
(setq n 0) ;loop counter
(setq list_counter 0) ;list counter
(setq part_size_list nil)
(PRINC "SELECT ALL OR MANUAL...")
(PRINC)
(INITGET 2 "ALL MANUAL")
(SETQ ANS (GETKWORD "(A)LL (M)ANUAL)"))
(IF ; CHECK ANSWER FOR SELECTION ALL
(= ANS "ALL")
(PROGN
(setq sset (ssget "X")) ;selection set
(setq count (sslength sset)) ;total number of selection set
) ;END PROGN
) ;END IF - ALL
(IF ; CHECK ANSWER FOR SELECTION ALL
(= ANS "MANUAL")
(PROGN
(setq sset (ssget)) ;selection set
(setq count (sslength sset)) ;total number of selection set
) ;END PROGN
) ;END IF - MANUAL
(while
(< n count) ;while logic statement
(setq item (ssname sset n)) ;get item from selection set
(setq item (vlax-ename->vla-object item))
(setq check (vlax-get-property item 'objectname))
(if ;check to see if pipe
(= check "AeccDbPipe") ;if logic statement for pipe
(progn ; starts comppiling
(setq psn (vlax-get-property item 'PartSizeName))
(setq part_size_list (append part_size_list (list psn)))
) ;end progn
) ;end if
(setq n (+ 1 n)) ; increase loop counter
) ;end while
(foreach x part_size_list
(if (not (vl-position x myList))
(setq myList (cons x myList))
)
)
(reverse myList)
(princ)
(alert
(strcat "Total length of selected objects is " (rtos test))
) ;report pipe length
(princ part_size_list)
(princ MYLIST)
) 如果不需要将每个组的大小作为一个长度来生成,那么可以不使用管道的属性(即长度)吗。鬼鬼祟祟地怀疑“管道长度”
如果在管道上使用转储功能,则应显示该功能。我一直在其他CIV3d的东西上使用这个,比如vlax get point'rawdescription
;;; Dump all methods and properties for selected objects ;
;;;===================================================================;
;;; DumpIt ;
;;;-------------------------------------------------------------------;
;;;===================================================================;
(defun C:DumpIt ( / ent)
(while (setq ent (entsel))
(vlax-Dump-Object
(vlax-Ename->Vla-Object (car ent)) T
)
)
(princ)
)
不,我需要按尺寸分类。
它是pipelength2d,或者可能只是length2d,或者也有3d length
页:
1
[2]