Assgarth Opublikowano 21 Grudnia 2011 Zgłoś Udostępnij Opublikowano 21 Grudnia 2011 Witam, chcę utworzyć grupę obiektów z zadanym filtrem: (ssget '((-4 . "")(-4 . "")(-4 . "AND>"))) problem w tym, że ni cholerę to działa. W HELP dla ZwCAD istnieją tylko takie możliwości: Operator Meaning "&" Bitwise AND (integers only). "&=" Bitwise masked equals (integers only). "*" All. "=" Equals. "!=" Not equal to. "/=" Not equal to. "<>" Not equal to. "<" Less than. "<=" Less than or equal to. ">" Greater than. ">=" Greater than or equal to. ale najlepsze jest to, że sam zapis w postaci: (setq lstObj (ssget '((-4 . "")))) działa bez problemu - zatem postać " Jak zatem uzyskać filtr, który potrzebuję - czy traktować to jako bug ZwCAD? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assgarth Opublikowano 21 Grudnia 2011 Autor Zgłoś Udostępnij Opublikowano 21 Grudnia 2011 Dokopałem się jeszcze do takiej dokumentacji z HELP: Use logical operator in filter list The logical operators used in filter list must appear in pair, same as the logical functions provided by AutoLISP, the operators of each logical operator group must be the expression whose return value is True or False in the filter list. The logical operators can be used in filter list include "", "or>", "xor>" and "not>". If there is not the specified logical operator in the filter list, all the elements in the list should be tested by the operators "". The above logical operators can't be used in filter list unless constructing its string form and dxf code -4 to dotted pair. Executing the following sample code to add the line entities and circle entities in the entire drawing database to the selection set: command : (ssget "X" '((-4 . ""))) User can also use logical operators in the filter list to add the entity which contains any one of the two application names (“ZWCAD_ELEC” or “ZWCAD_MECH”) to the selection set. Please refer to following code: command : (ssget "X" '((0 . "LINE") (-4 . ""))) Zatem wynika, że mój kod jest prawidłowy, a nie działa... Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assgarth Opublikowano 21 Grudnia 2011 Autor Zgłoś Udostępnij Opublikowano 21 Grudnia 2011 Dorzucam plik w załączniku. Mój filtr powinien wyłapać tylko białe linie. W AC działa bez problemu. Poleceniem: (entget(car(entsel)) '("*")) można sprawdzić, że różowe linie posiadają XDATA: (-3 ("tmpLine" (1002 . "{") (1000 . "tmpLine") (1002 . "}") Sprawdziłem też pod ZwCAD2011: _VERNUM = "2011.06.30(16923)" i problem również występuje. pozdrawiam, ZK test.dwg Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 23 Grudnia 2011 Zgłoś Udostępnij Opublikowano 23 Grudnia 2011 Pierwsze przeczucie mówi mi, że problem jest w NOT. ale jeszcze to sprawdzę i skonsultuje z ZWSOFT Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assgarth Opublikowano 4 Stycznia 2012 Autor Zgłoś Udostępnij Opublikowano 4 Stycznia 2012 Pierwsze przeczucie mówi mi, że problem jest w NOT. ale jeszcze to sprawdzę i skonsultuje z ZWSOFT I jak tam, coś więcej już wiadomo w powyższym temacie? :) pozdrawiam Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 4 Stycznia 2012 Zgłoś Udostępnij Opublikowano 4 Stycznia 2012 tak wiadomo. sprawdziłem takie coś: (ssget '((-3 ("tmpLine")) )) działa OK natomiast (ssget '((-4 . "") )) już niestety nie numer tego zgłoszenia to T4548. Pozostaje nam czekać na rozwiązanie Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.